This is topic Вопрос по подключению Trace Mode 6.09 к оборудованию по Modbus RTU. in forum Общие вопросы / Common questions at Форум TRACE MODE: техническая поддержка.
Здравствуйте! Есть система Trace Mode 6.09 на 256 точек. Цель – дистанционно смотреть параметры оборудования, давать сообщения об их выходе за установленный диапазон, архивировать состояния. Хотели подключиться к оборудованию по Modbus RTU через USB к локальному компьютеру. Порт определился как COM 15. Видео с сайта не помогло. Выделенные каналы показывают нули. В описание следующая инфо. (см. ниже, приведена не полностью) Карта адресов Modbus Код функции 0x01 считать с катушки Примечание 1: контроль Modbus используется, чтобы сообщить генератор для запуска и остановки. Это не указывает на состояние выполнения генератора.
Modbus адрес данные адреса (шестнадцатеричный) Описание Тип данных Примечания
1 0x0000 Бит управления Modbus Modbus управления Это дискретное значение ON / OFF: "0" - Стоп "1" - Начало 2 0x0001 релейный выход Y1 "Выравнивание" Реле Это дискретное значение ON / OFF: "0" - реле обесточено "1" - реле под напряжением.
3 0x0002 релейный выход Y2 "N2 Выход А" Реле 4 0x0003 релейный выход Y3 "N2 Выход B" Реле 5 0x0004 релейный выход Y4 "Вход А" Реле 6 0x0005 релейный выход Y5 "Выпуск А" Реле 7 0x0006 релейный выход У6 "Выпуск В" Реле 8 0x0007 релейный выход Y7 "вход B" Реле
Пробывали установить разные каналы W_word, w_single coil, rout_word, rout_byte, rin_word. Корректно ли выбраны каналы? Чем и как (какими функциями) распознать данные адресов Modbus и перевести их в текстовые сообщения? Заранее спасибо.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Для чтения состояния релейных выходов следует использовать функцию Rout_Byte(1). При этом в поле "Канал" (адрес Modbus-переменной) следует задать 0 - в залинкованный на этот "Источник" канал HEX16_INPUT будут считаны все 8 сигналов с адресами 0 - 7.
Вывод значений на экран осуществляется штатными функциями ГЭ "Текст".
Для записи надо использовать функции W_SingleCoil(5). В поле "Канал" соответствующего "Приемника" (адрес Modbus-переменной) следует задавать конкретный адрес релейного выхода - 0 до 7. Значение залинкованного на соответствующий "Приемник" канала HEX16_OUT при изменении должно передаваться в соответствующий COIL устройства.
Надо обратить внимание на правильное задание в настройках "Источников/Приемников" номера COM-порта (в Вашем случае - 0xE) и номера устройства в Modbus-сети (поле "Адрес") - он должен соответствовать реальному номеру устройства (не равного 0).
Настройки COM15 в узле RTM должны соответствовать настройкам COM-порта в устройстве и используемому конвертору RS 232/485.
Для диагностики можно использовать ключ DEBUGON=200 в файле конфигурирования запуска узла *.cnf. При этом в профайлерном протоколе будут выведены сообщения об ошибках обмена. Можно также воспользоваться программой перехвата трафика COM-порта типа PortMon.
Posted by Prokop78 (Участник № / Member № 6350) on :
Здравствуйте!
Попробую, хотя w_single coil 5 уже использовал с результатом ноль. Параллельный вопрос. А если не релейный выход, а например код ошибки или цифровой вход? Какие функции при этом можно использовать? Заранее спасибо.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Используемая для запроса Modbus-переменной функция должна быть задана в документации на устройство.
Можно предположить, что для чтения числовых переменных нужно использовать Rout_Word(3) и/или Rin_Word(4). Формат считываемых данных должен быть оговорен в документации на устройство.