+1
Under review
iRidium для Modbus
Алексей Рябошапко 12 jaar geleden
in Tips and Tricks
•
bijgewerkt door Aleksandr Romanov (CTO) 7 jaar geleden •
4
Оборудование Modbus ТСP
Тип Feedback: Input Register
Можно ли в 16-ти битах передавать 16 дискретных сигналов?
Существуют инструменты для расшифровки значений каждого из 16бит?
Например, от оборудования получено значение Input Register - число 3. В двоичной системе это число будет выглядить как 0011. Таким образом первый и второй биты имеют лог. 1.
Вопрос состоит в том, можно ли состояние графического элемента привязывать к отдельному биту а не к значению регистра.
Тип Feedback: Input Register
Можно ли в 16-ти битах передавать 16 дискретных сигналов?
Существуют инструменты для расшифровки значений каждого из 16бит?
Например, от оборудования получено значение Input Register - число 3. В двоичной системе это число будет выглядить как 0011. Таким образом первый и второй биты имеют лог. 1.
Вопрос состоит в том, можно ли состояние графического элемента привязывать к отдельному биту а не к значению регистра.
Customer support service by UserEcho
Это возможно сделать с помощью скриптов.
IR.AddListener(IR.EVENT_TAG_CHANGE,IR.GetDevice("ModBus TCP"),function(item,value)//Активация слушателя, который сработает когда на модбасе изменится любой тэг
{
if(item == "ModBus Command 1")//проверяем имя изменившегося тега
{
IR.Log(value.toString()+ " (10)");//Выводим в консоль новое значение тега в десятичном представлении
IR.Log(value.toString(2) + " (2)");//Выводим в консоль новое значение тега в двоичном представлении
var NewValue = parseInt(value.toString());//Преобразуем значение тега в число
var somebit = (NewValue >> 1) & 0x1;//смещаем значение на 1 бит и накладываем битовую маску
IR.Log("somebit = " + somebit);//Выводим полученное значение в консоль
}
});
В вашем случае вместо вывода значений в лог нужно будет выводить значение в Value графического элемента:
[font=consolas]IR.GetItem([font=consolas]"Имя страницы"[font=consolas]).GetItem([font=consolas]"Имя Элемента"[font=consolas]).Value = somebit;
Описание всех скриптовых функций вы найдете здесь.
С уважением,
Смирнов С.
Можете попробовать обратиться за помощью к Дмитрию Королеву (dmkor@bk.ru), правда он работает с ОВЕН.
separate bits - read.irpz
separate bits - rw.irpz