Путь данных, от датчика до базы данных
В данном посте попробую максимально понятно отобразить суть промышленных сетей управления/диспетчеризации на примере измерения двух параметров.
Мы имеем два регистра хранения в адресном пространстве Modbus Это, один из старейших протоколов построения промышленных информационных сетей https://ipc2u.ru/articles/prostye-resheniya/modbus-rtu/
И так, в качестве источника данных выступает программа симуляции слейвов в сети, ежу понятно, что на её месте может быть любое физическое устройство в сети.
В регистрах хранения, по адресам 40001 и 40002, В устройстве с адресом-1 разместим соответствующие данные. Протокол связи указан вверху.
Для связи нашего устройства с верхним уровнем используем OPC- сервер. Нам вполне хватит демоверсии на 32 тэга. Стоит отметить, что устройства могут связываться по любому физическому и логическому интерфейсу. Нами используется RS232/485
Сконфигурируем сервер
Файл конфигурации https://ru.files.fm/u/pgrquj89p
Для связи использовал
В режиме коннектора через СОМ4.
При запуске, этих трех программ, в окне актуальных значений тегов должны быть значения в слейве, связь не иметь ошибок.
Фух, если все получилось, половина работы сделана! Вы молодцы.
Переходим к верхнему уровню.
В программе SCADA, используем Омрон супервайзер, прописываем эти тэги, В файле конфигурации OPC они отобразятся как:
<CXOPCProject>
<GROUP NAME="Group1" UPDATERATE="1000"
TIMEBIAS="1049" DEADBAND="0.000"
LOCALEID="1049" ISPUBLIC="FALSE"
ISADVISED="FALSE" ISACTIVE="TRUE"
ISENABLED="TRUE">
<ITEM NAME="Node1.Device1.DIN.Tag1" ITEMID="Node1.Device1.DIN.Tag1"
ACCESSPATH="" DATATYPE="3"
ISACTIVE="TRUE">
</ITEM>
<ITEM NAME="Node1.Device1.DIN.Tag2" ITEMID="Node1.Device1.DIN.Tag2"
ACCESSPATH="" DATATYPE="3"
ISACTIVE="TRUE">
</ITEM>
</GROUP>
</CXOPCProject>
При запуске исполняемого файла, сервер запустится в фоне автоматически, будет связь. Для локальной машины путь можно не указывать.
Запускаем на исполнение:
Меняем значение на датчике, меняются в SCADA? если так, то Вы еще раз молодцы! 2/3 работы сделано! Отметим, регистры хранения могут меняться и с верхнего уровня, если в свойствах назначить R/W.
Переходим к отправке данных на хранение в БД.
Создаем базу данных MS-acess, с требуемым количеством столбцов.
Далее, в среде разработки подключаемся к ней, столбы будут видны. Подключаться можно как напрямую, так и через DSN-файл
Для подключения используем следующие параметры:
В третьем поле разместим ссылку на системный тег с информацией о времени(таймштамп) В свойствах обращения к БД зададим интервал 5 сек. Запускаем всё.И в БД каждые пять сек, должны писаться значения трех тэгов.
Если всё получилось, то Вы окончательно молодцы!
Как это работает, логгируются данные с любого физического датчика. А уж как использовать, тут не хватит фантазии!