Электросчетчик LE-03M — различия между версиями

Материал из WebHMI Wiki
Перейти к: навигация, поиск
(Новая страница: « right Особенностью данного счетчика является то, что читать показания необх…»)
 
Строка 19: Строка 19:
 
     end;
 
     end;
  
-- преобразовать в строки
+
-- преобразовать в строковое представление шестн. числа
 
      
 
      
 
     local str1 = string.format("%X",reg1);  
 
     local str1 = string.format("%X",reg1);  

Версия 11:03, 8 декабря 2016

LE-03M.gif

Особенностью данного счетчика является то, что читать показания необходимо групповой операцией длиной 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); 

 -- stick together 

    local result = str1..str2..str3;
    
 -- печать в лог для отладки 
   DEBUG(" LE result =  "..result);
  
   WriteReg("Result", ((tonumber(result,16))/10)+0.0);
  
end