Uw opmerkingen
Давайте уточним:
1) В ПЛК у вас тип Holding Register, размер Word(16 bit).
2) Проект панельный или серверный?
3) Совпадают ли значения, которые получают из этого регистра сторонний клиент и Иридиум?
4) Что, по-вашему должно приходить в фидбэк драйвера Modbus RTU, если в ПЛК вы записали значение -1349?
Отрицательное число в данном случае это функция пользователя. Поэтому в канале всегда будет 2 байта без знака.
1) Какое значение получаете сторонним клиентом Modbus?
2) Совпадает ли оно с получаемым значением в Иридиум?
Если совпадает, то получайте значение в HEX, а потом обрабатывайте. Кстати, шаблоны позволяют в панельном проекте получать HEX без использования скриптов. Например, в ПЛК вы записали десятичное число -1349. В панель получили FFFFFAB. Decimal from signed 2's complement = -1349.
Всё верно. В драйвер приходит "как есть". После - можем обрабатывать как надо (через скрипты, через шаблоны).
Добрый день.
В драйвер Modbus RTU приходит значение "как есть", Иридиум его не обрабатывает. Если на контроллере настроен нужный тип, то в драйвер должно прийти то, что есть по факту. Сейчас что получаете?
To solve your problem with JSON, you may find these projects useful as an example.
Hello.
In Javascript, use the IR.SetTimeout method to get the delay.
В примере использован один фидбэк. Можете использовать три. Код:
var device = IR.GetDevice("Modbus TCP");
IR.AddListener(IR.EVENT_TAG_CHANGE, device, function(name, value)
{
if ((name == "mb_CtrlLight_00") && (value == 0))
{
IR.Log("Value = 0.");
IR.GetPage("Page 1").GetItem("Item 1").State = 0;
}
if ((name == "mb_CtrlLight_01") && (value == 1))
{
IR.Log("Value = 1.");
IR.GetPage("Page 1").GetItem("Item 1").State = 1;
}
if ((name == "mb_CtrlLight_02") && (value == 2))
{
IR.Log("Value = 2.");
IR.GetPage("Page 1").GetItem("Item 1").State = 2;
}
});
Фидбэки mb_CtrlLight_00, mb_CtrlLight_01 и mb_CtrlLight_02 должны существовать в драйвере.
The upgrade version of JavaScipt in iRidium is not planned. Perhaps the situation will change in the future.
Добрый день.
Если под состояниями имеются в виду States, то можете использовать в качестве образца приложенный проект.
Customer support service by UserEcho
В крайнем бите будет ноль при использовании значения без знака.
Драйвер получит набор бит по опросу. Мы не против внести доработку, если это действительно облегчит разработку интеграторам. Однако нам нужно знать - что ожидается в драйвере, если в ПЛК записано отрицательное число? Например, в регистре значение -1349. Что должно прийти в драйвер по опросу?