Тема / Topic: Modbus чтение отрицательного значения из регистра
ViktorMaleika
Junior Member / Новичок
Участник № / Member № 9669
отправлено / posted
Здравствуйте. После нового релиза снова поднимаю этот вопрос, надеюсь появилось адекватное решение, а не через канал call. У меня есть регистр modbus, к примеру holding 1, он отображает температуру от - 500 до 500 (что соответствует -50.0 до 50.0 градусов). Соответственно это 16 bit signed (int 16).Как правильно сделать источник, чтобы он отображал отрицательную температуру? Перепробовал все форматы (246). Каналы создавал типа int(16), uint(16), real. Всегда когда температура становится меньше нуля, показания начинаются от 65535 и на уменьшение.
Сообщения / Posts 30 | Из / From: Беларусь
| IP / IP: IP адрес / IP address |
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342
отправлено / posted
канал ANALOG на который заведен источник MODDBUS c командой(305) R_1HReg или R_1InReg далее сами масштабируете
Сообщения / Posts 900 | Из / From: Россия
| IP / IP: IP адрес / IP address |
ViktorMaleika
Junior Member / Новичок
Участник № / Member № 9669
отправлено / posted
Не работает. Вычитывается цифра в районе 65000. Если у вас работает, напишите пожалуйста что вы указываете в источниках (какой тип канала у вас выбран) и непосредственно в МРВ в свойствах аналогового канала какой формат выбран
Сообщения / Posts 30 | Из / From: Беларусь
| IP / IP: IP адрес / IP address |
отправлено / posted
Можно сразу читать каналом Analog (см. Справочная Система Источники - Net/RS - Modbus - Команды)
ANALOG INPUT c (56, nBits)=Float или Double – чтение 1 регистра (16 бит). Полученное значение интерпретируется как целое без знака (если нижний предел (27, LL) канала ANALOG неотрицательный) или как целое со знаком (если (27, LL) < 0).
Сообщения / Posts 17354 | Из / From: Россия
| IP / IP: IP адрес / IP address |