Alex210271
Active Forum Member / Активный участник форума
Участник № / Member № 4421
отправлено / posted
Добрый день. Имеется устройство с обменом по протоколу Modbus RTU. Данные 4 байтные беззнаковые целые числа. Поддерживает 3 и 4 функции Modbus. Создал источник Rin_Float(4), привязал к каналу НЕХ32, все работает замечательно данные идут идеально. Создал канал CALL ChGroupReq привязал к тому же источнику, аргументы типа UDINT - Обмен идет а аргументы всегда нули (даже если всего один аргумент канала ChGroupReq). Сканер портов показывает что обмен идет нормально, также как в случае с НЕХ32: Запрос:09.08.2012 (A108-1) 11:22:43.09064 (+0.1016 seconds)
01 04 04 00 00 55 78 C4 F6 должен бы показывать значение аргумента 21880 а там ноль. Если Аргумент задать типа REAL он начинает показывать числа, но неправильно. Как использовать канал ChGroupReq для данных типа 4 байтные беззнаковые целые?
Сообщения / Posts 80 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
По стандарту Modbus нет стандартных функций для чтения 4-байтовых беззнаковых целочисленных переменных. Поэтому Вам надо использовать ChGroupReq с привязкой к переменной Rin_word(4), задать у него 2 аргумента типа UINT, а затем программно объединить эти 2 регистра в одно число типа UDINT. Другой вариант - привязать ChGroupReq к переменной R_FIFO_Queue и в его аргументах скунструировать нужный запрос и разборку ответа в нужном Вам формате.
Сообщения / Posts 17338 | Из / From: Россия
| IP / IP: IP адрес / IP address |