Доброго времени суток! Подскажите пожалуйста, в чем может быть проблема: долгое время, сервер собирал с прибора верные данные. В очередной раз, после приобретения свежего выпуска 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 ?