Я создаю в Lectus узел, как сервер ModbusTCP (если у ПР есть Ethernet) или узел, который работает как Slave-устройство для ПР (подключаю через АС4 или любой преобразователь Ethernet - RS485). Узлу даю имя, например "Server". В него добавляю нужные переменный (тип, адрес и указываю куда дублировать записанное значение).
Добавляю еще один базовый узел с именем "SQL" и добавляю те же переменные, но с типом "SQL".
Для каждой переменной можно записать скрипты на Transact-SQL для чтения и для записи значения.
Получается, что как только ПР запишет новое значение в Modbus-переменную, Lectus дублирует это значение в SQL-переменную, вызывая, например скрипт
INSERT INTO myTable (val1) VALUES (Item(<переменная>))
который вставляет запись в таблицу myTable, в которой в поле val1 запишет значение Modbus-переменной.
Я использую хранимую процедуру (EXEC SetValue Item(<переменная>)), которая выполняет всякую дополнительную обработку:
- разложение на биты
- масштабирование
- преобразование
- округление
- логирование
- передача в другую SQL-переменную
короче всё что умеет Transact-SQL.
Далее уже 1С программисты выуживают из SQL что им надо.
Формируют графики, журналы и отчеты.
Ещё можно из SQL записывать в ПР.
Lectus может подключаться к OPC-серверам как OPC-клиент и перегонять из Modbus в не-Modbus.
Т.е. приборы, которые имеют свой хитрый протокол и свой OPC-сервер, тоже можно подключить к Lectus
и данные перегонять в SQL и обратно.




Ответить с цитированием