sergey UralSteel
Forum Haunter / Завсегдатай форума
Участник № / Member № 1914
отправлено / posted
Здравствуйте! Ответьте пожалуйста на вопрос, возможен ли приём данных с регистрирующего преобразователя Ш9329 А по RS485 протокол Modbus RTU через шлюз Adam4572 (Modbus RTU - Modbus TCP/IP ). Если да, то какие надо установить настойки в компоненте группы MODBUS.
Сообщения / Posts 103 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Trace Mode 6 поддерживает версии протокола MODBUS RTU и TCP. Как будет конвертировать эти протоколы шлюз Adam 4572, мы не знаем. Если в настройках этого шлюза есть корректные настройки коммуникации по COM-порту и сопряжения его с MODBUS TCP, то в Trace Mode 6 надо выбирать протокол MODBUS TCP и задавать соответствующие этому драйверу настройки.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
sergey UralSteel
Forum Haunter / Завсегдатай форума
Участник № / Member № 1914
отправлено / posted
Подскажите пожалуйста, в чём может быть проблема.
Ситуация такая: В сеть RS495 подключены 8 регистраторов Ш9329А. Обмен осуществляется по протоколу Modbus RTU через шлюзы Adam 4572 (Modbus RTU / Modbus TCP).
Ситуация, когда в проекте только один Ш9329А. Поочерёдно меняю адрес устройства, таким образом данные идут от то всех Ш9329А.
Ситуации, когда в проекте настроены и опрашиваются все Ш9329А Файла modbus.set нет в папки проекта ( по умолчанию порядок байтов 3-2-1-0 ). С устройств с адресами 1, 2, 6, 8 идут правильные данные, а с устройств 3, 4, 5, 7 идут исковерканные (неверные) данные. При добавлении файла modbus.set с числом 2 (порядок байтов 1-0-3-2). Всё наоборот, устройства с адресами 3, 4, 5, 7 идут правильные данные, а на устройства 1, 2, 6, 8 идут ложные данные.
Файл modbus.set с другими числами (1, 3), тогда со всех устройства неверные данные.
отправлено / posted
1. Надо задействовать диагностические каналы @e_MODBUS и @e_TCP_ModBus. 2. Надо перехватить трафик шины RS485 и посмотреть точный поток транзакций на выходе Adam 4572. 3. В каком релизе Вы работаете? 4. Что значит "исковерканные (неверные) данные"? Интепретация ответа, задаваемая "порядком байтов", никак не зависит от адреса устройства. 5. Вы осуществляете по этому каналу только мониторинг или и управление тоже? 6. Чем обусловлене применение Adam 4572? Почему нельзя шину RS 485 напрямую подключить к МРВ?
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
sergey UralSteel
Forum Haunter / Завсегдатай форума
Участник № / Member № 1914
отправлено / posted
ТМ 6,05. Только данные Flout. Приходят данные отрицательные, с экспанентой или не те значения. Выолняем только мониторинг. на приямую RS485 нет нет возможности. Понятно, что от адреса не зависит.
нашли что на Ш9329 установлена разная версия ПО в томже порядке, в котором читались/нечитались данные. Пока проверяем эту версию.
Сообщения / Posts 103 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В любом случае имеет смысл реализовать рекомендации п.п.1 и 2 предыдущего ответа.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
sergey UralSteel
Forum Haunter / Завсегдатай форума
Участник № / Member № 1914
отправлено / posted
Заменили ПО на всех устройствах. Результат: все данные передаются правильно. В файле modbus.set стоит значение 2.
Из письма от разработчиков Ш9329. Новые версии ПО отличаются только тем, что в новых версиях обработка запросов компьютера перенесена в прерывающую программу, запускающуюся по окончании приема запроса. Поэтому новые приборы отвечают на запрос гораздо быстрее, минимальное время от последнего байта запроса до первого байта ответа может быть как оговорено в MODBUS - 5 миллисекунд на скорости 9600. Возможно причина в том, что передатчик RS-485 вашего компьютера после выдачи запроса не успевает переключиться с передачи на прием, первый байт посылки не принимается и получается что в принятом массиве байты сдвинуты. Изменение настройки порядка следования байт позволяет правильно выбрать старшие байты, а пропущенный первый младший байт влияет на значение числа мало и незаметно.
Сообщения / Posts 103 | Из / From: Россия
| IP / IP: IP адрес / IP address |
sergey UralSteel
Forum Haunter / Завсегдатай форума
Участник № / Member № 1914
отправлено / posted
Из всей этой ситуации, возникает новый вопрос разработчикам ТМ6. Что мне делать, если у меня в проекте находятся два разных прибора общающиеся по протоколу Modbus, но с разным порядком следования байт (modbus.set)? Оба прибора очень важны в проекте и по другому (по другим протоколам) связаться с ними невозможно.
Сообщения / Posts 103 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В стандарте MODBUS формат FLOAT не определен. Поэтому различные расширения его в этом отношении используют собственные форматы. Наиболее распространенным является реверсивный формат числа с плавающей точкой стандарта IEEE 754-1985 (одиночная точность). Он используется в Trace Mode 6 по умолчанию. Чтобы использовать разные форматы в одном проекте, надо радикально переделывать встроенный драйвер. Сам стандарт MODBUS достаточно прост. Проще написать для "экзотического" прибора собственный пользовательский драйвер.
Что же касается конкретной ситуации с приборами Ш9329, то, если предположение разработчиков верно, можно было бы решить проблему путем введения дополнительного таймаута между транзакциями (в настройках обмена параметр "<число> TIMEOUT - задержка запроса после получения ответа от контроллера (в миллисекундах). Пример: 200 TIMEOUT "). Аналогичный параметр (RS-передача) существует и в настройках COM-порта для MODBUS RTU.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |