Коллеги прошу помощи, есть панель weintek, есть взлет ТСРВ, соединены по RS485, протокол modbus
текущие данные со взлета считываются (у них формат float)
у ТСРВ есть накопленные регистры в формате long+float, вот описание этого типа данных с сайта производителя:
Значение находится в 0х8030 0х8031 0х8032 0х8033. Переменная, состоящая из 4 регистров, число повышенной точности. Запрашивать надо сразу 4 регистра в одном запросе.
Первые два регистра 0х8030 0х8031 это целая часть числа в формате signed long,
вторые два 0х8032 0х8033 это дробь в формате float. Обе части имеют одинаковый знак, float находиться в пределах от -1 < float < 1.
Их надо сложить в одно 8 байтовое число типа double после прочтения
пробую читать скриптом:
short a[4]
int b
float c
GetData(a[0], "MODBUS RTU (Zero-based Addressing)", 4x, 32817, 4)
b=a[0]
c=a[2]
SetData(b, "Local HMI", LW, 0, 1)
SetData(c, "Local HMI", LW, 2, 1)
в ответ ноль,
подскажите как прочитать этот формат