Доброго времени суток, столкнулись с очередной проблемой в связи с переходом с MasterSCADA 1.3(+OPC Modbus Server) на 4D. В OPC сервере использовался прибор ВТЭ-2 К2 который не имеет встроенного протокола modbus, для считывания данных был написан скрипт на языке Lua, который формировал запрос, обрабатывал полученный ответ и распределял данные по заранее созданным тегам соответственно. Проблема в том, что в MasterSCADA 4D нет языка Lua и перенести готовый скрипт невозможно.
Вот кусок скрипта на языке Lua в MasterOPC Modbus Server:
Есть ли аналогичные функции ( table.insert и server.SendAndReceiveDataByMask) в MasterSCADA 4D ?Код:-- запрос текущего состояния командой 01h -- table.insert(ArrCMD, 6); --длина блока 6 байт table.insert(ArrCMD, 225); --тип устройства table.insert(ArrCMD, 59);-- мл.байт серийного номера (для экземпляра #01595) table.insert(ArrCMD, 6);-- ст.байт серийного номера (для экземпляра #01595) table.insert(ArrCMD, 1); --код команды table.insert(ArrCMD, CheckSum(ArrCMD)); --Контрольная сумма блока запроса ArrCMD_Mask={"byte", "byte", "byte", "byte", "byte", "byte"}; --маска отсылаемого запроса ArrCMD_DestMask={"byte", "byte", "int16:1:01", "byte", "float:1:0123", "int16:3:01", "float:5:0123", "byte:6"}; --маска для текущего состояния len,ArrDest=server.SendAndReceiveDataByMask(0,6,ArrCMD_Mask,ArrCMD,ArrCMD_DestMask,41); --ожидаем 41 байт в ответ
Может есть у кого примеры на С# или любом другом языке доступном в MasterSCADA 4D по общению с приборами через скрипты?





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