_S_h_u_r_a_
Junior Member / Новичок
Участник № / Member № 1583
отправлено / posted
Нужно запросить значение канала (целое число 8 байт в длину) с контроллера по МодВас. Как не пробовали, ТМ не хочет запрашивать значение свыше 4 байт (float или HEX). В контроллере обычный модбас РТУ (самодельный конечно, но на запросы 8 байт другими програмками (тестилками МодБас протокола) отвечает исправно, например счтитать (03) из устройства 4 регистра входа (по 2 байта каждый), т.е. 8 байт. В ТМ почему-то больше 4 байт не приходит. Не могли бы вы выслать подробное описание протокола, который поддерживает ТМ 5, и (или) порекомендовать выход из даной ситуации (не очень хочется городить програмки по склеиванию байт, да и какого рода переменной призвоить знаение ?
отправлено / posted
В ТМ реализован стандартный ModBus! И в стандарте нигде нет описания значений 8 байт в длину, Вы скорее всего путаете групповой запрос на 8 байт. Даже тот же 4-байтовый Float согласно стандарту ModBus представляет собой групповой запрос из двух регистров типа Word. Что касается интерпретации 8 байт, из полученного ответа, то в рамках 5-й версии Вы даже не сможете его никуда поместить, потому как максимальная разрядность значений не превышает стандартного FLOAT (32-бита). Для реализации групповых запросов каналы с настройками должны располагаться друг за другом в списке базы. И если они имеют одну и ту же функцию ModBus, адрес модуля, а настройки адреса следуют друг за другом, такие каналы объединяются в групповой запрос. Таким образом - 8-байтовый запрос - это 4 канала функции ModBus №3 в базе с адресами регистров с шагом в 2 байта.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
_S_h_u_r_a_
Junior Member / Новичок
Участник № / Member № 1583