Доброго времени суток! Подскажите пожалуйста, в чем может быть проблема: долгое время, сервер собирал с прибора верные данные. В очередной раз, после приобретения свежего выпуска SCADA и Modbus server , некоторые данные стали отображаться некорректно. А именно - получаемое значение умножается на 100. Допустим должны считать температуру 22,05 гр., а в сервер получаем 2205 (целое число).
Скрипт для считывания :
Скрипт писал бывший сотрудник, несколько лет назад.Код:-- запрос текущего состояния командой 01h -- local send2={}; --массив под запрос текущих параметров local chsm, qu; --error ещ тут был table.insert(send2, 6); --длина блока 6 байт table.insert(send2, 225); --тип устройства table.insert(send2, 98);-- мл.байт серийного номера (для экземпляра #19077) table.insert(send2, 128);-- ст.байт серийного номера (для экземпляра #19077) table.insert(send2, 1); --код команды table.insert(send2, CheckSum(send2)); --Контрольная сумма блока запроса local sendmask2={"byte", "byte", "byte", "byte", "byte", "byte"}; --маска отсылаемого запроса local destmask2={"byte", "byte", "int16:1:01", "byte", "float:1:0123", "int16:3:01", "float:5:0123", "byte:6"}; --маска для текущего состояния local dest2={}; err,dest2,len=server.SendAndReceiveDataByMask(0,6,sendmask2,send2,destmask2,41);
Подскажите, как правильно считать текущее состояние с ВТЭ-1 К2 ?



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