Электросчетчик LE-03M — различия между версиями
Материал из WebHMI Wiki
Строка 1: | Строка 1: | ||
[[Файл:LE-03M.gif | right]] | [[Файл:LE-03M.gif | right]] | ||
− | Особенностью данного счетчика является то, что читать показания необходимо групповой операцией длиной 3. Поэтому в свойствах соединения для данного счетчика необходимо разрешить группировку длиной 3. | + | Счетчик поддерживает протокол Modbus RTU. Особенностью данного счетчика является то, что читать показания необходимо групповой операцией длиной 3. Поэтому в свойствах соединения для данного счетчика необходимо разрешить группировку длиной 3. Полученные байты необходимо "сцепить" в одно число с помощью скрипта и сохранить во внутреннем регистре WebHMI. |
− | Полученные байты необходимо "сцепить" в одно число с помощью скрипта и сохранить во внутреннем регистре WebHMI. | + | |
Текст скрипта: | Текст скрипта: | ||
<syntaxhighlight lang = "lua"> | <syntaxhighlight lang = "lua"> |
Версия 11:35, 8 декабря 2016
Счетчик поддерживает протокол Modbus RTU. Особенностью данного счетчика является то, что читать показания необходимо групповой операцией длиной 3. Поэтому в свойствах соединения для данного счетчика необходимо разрешить группировку длиной 3. Полученные байты необходимо "сцепить" в одно число с помощью скрипта и сохранить во внутреннем регистре WebHMI. Текст скрипта:
function main (userId)
-- прочитать регистры в лок. переменные
local reg1 = GetReg(21); -- Регистр 0 (HR0@LE-03M)
local reg2 = GetReg(22); -- Регистр 1 (HR1@LE-03M)
local reg3 = GetReg(23); -- Регистр 2 (HR2@LE-03M)
-- отфильтровать
if (reg1 == nil) or (reg2 == nil) or (reg3== nil) then
return 0;
end;
-- преобразовать в строковое представление шестн. числа
local str1 = string.format("%X",reg1);
local str2 = string.format("%X",reg2);
local str3 = string.format("%X",reg3);
-- склеить строку в одно число
local result = str1..str2..str3;
-- печать в лог для отладки
DEBUG(" LE result = "..result);
WriteReg("Result", ((tonumber(result,16))/10)+0.0);
end