PDA

Просмотр полной версии : Как подобное реализовать?



Kotov666
30.06.2022, 09:49
1. В консоле windows выполняю команду:
adb shell cat sys/class/thermal/thermal_zone1/temp
Получаю ответ следующего вида:
32000
2. Во первых как эту команду "выполнить" в Скаде. ну и как из этого значения рисовать график? Команда должна повторятся один раз в секунду

Очень давно не пользовался скадой, многое позабыл уже.

SCADAMaster
30.06.2022, 11:09
Используйте ФБ "Запуск процесса", в режиме "Ожидать завершения" она будет выдавать значение которое вернет программа.
Выход ФБ кидаете на тренд.
Но вообще довольная странная задача. Что делает это приложение?

Kotov666
30.06.2022, 11:38
Имеется два Андройд (Android 4.1) планшета. У них удалены аккумуляторы, питание у них от сети и используются в качестве "фоторамки".
Захотелось попробовать собирать с них значения температуры, на небольшой сервер на котором бы работала SCADA система (пока не определился).

Пока все чего смог добиться это с помощью команды: "adb shell cat sys/class/thermal/thermal_zone1/temp" получать в ответ значение 32000 что соответствует температуре 32 градуса по Цельсию.

Все устройство подключены к одной беспроводной сети.

В итоге хочется получить на экране "АРМ" :) графики температуры, суточный, месячный.
В дальнейшем может как то еще получится получить данный с остальных датчиков.

SCADAMaster
30.06.2022, 11:47
Не очень конечно понятно как планшет передает температуру, но скорее всего будет лучше решить задачу формирования запросов через Скрипт C#.

EFrol
30.06.2022, 13:45
Можно слепить Андройд приложение, которое будет имитировать Modbus-сервер с поддержкой ModbusTCP. Главное настроить точку доступа на выделение статическойго IP-адреса планшету в момент его подключения к точке. Зная IP планшета в сети можно настроить любую скаду на считывание этих данных. Только вот зачем Вам температура процессора в планшете? Не вкурю?

Kotov666
30.06.2022, 17:25
Можно слепить Андройд приложение, которое будет имитировать Modbus-сервер с поддержкой ModbusTCP. Главное настроить точку доступа на выделение статическойго IP-адреса планшету в момент его подключения к точке. Зная IP планшета в сети можно настроить любую скаду на считывание этих данных. Только вот зачем Вам температура процессора в планшете? Не вкурю?
Ту пока больше интерес, как это сделать.

keysansa
30.06.2022, 21:28
Захотелось попробовать собирать с них значения температуры, на небольшой сервер на котором бы работала SCADA система (пока не определился).

Данные задачи решает SNMP протокол. Для Android - есть много решений. Если MfsterSCADA его поддерживает, тогда все просто.

SCADAMaster
30.06.2022, 21:42
У нас есть OPC для SNMP:
https://insat.ru/products/?category=1272

keysansa
30.06.2022, 21:57
У нас есть OPC для SNMP:
https://insat.ru/products/?category=1272

Да, это решение.

ЗЫ. Еще такие данные предоставляет HomeAssistant приложение для Android.

Kotov666
01.07.2022, 10:07
Немного сдвинулся с мертвой точки. )
На планшет установил программу HWmonitor, она по 25021 порту отдает данные (как на скриншоте). Ясно что они сырые, теперь пытаюсь понять как их загнать в скаду.

SCADAMaster
01.07.2022, 11:09
Просто валит на TCP порт?
Варианты:
1. В ОРС сервере. Создаете узел типа TCP в режиме "TCP сервер". В устройство с периодом например 100 мс читаете порт через функцию скрипта SendAndRecive или SendAndReciveDataByMask
2. В самой скаде с помощью ФБ "Скрипт C#" делаете TCP сервер и обрабатываете:
https://metanit.com/sharp/net/3.2.php
Только это нужно обязательно сделать в отдельном потоке, или хотя бы положить ФБ в отдельный объект и у поставить у объекта флаг "Собственный цикл" - тогда он тоже будет крутится в потоке.
Подробнее тут:
https://support.mps-soft.ru/MasterSCADAHelp/index.html?sluzhebnie_skript_rukovodstvo_i_primery _rabota_s_arhivom_dannyh_vypolnenie_asinhronnyh_za prosov.html