MGate с протоколом Modbus – это шлюзы протоколов, которые позволяют подключить приборы с интерфейсами RS-232, RS-422 и RS-485 к сети Ethernet с преобразованием протоколов из Modbus RTU/ASCII в Modbus TCP или наоборот.

Инженеры часто не могут определить, когда нужно применять MGate или NPort. Если кратко, то NPort преобразует только интерфейсы СОМ в Ethernet и не изменяет данные, а MGate преобразует интерфейсы и протоколы.

Посмотрите видео с обзором серии MGate и примером настройки шлюза:


Режим преобразования Modbus TCP Slave в Modbus RTU Master

У нас есть Modbus TCP Master и нам нужно подключить к нему Modbus RTU Slave устройство, но без шлюза это сделать не получится. Шлюз в этой схеме будет выступать Modbus TCP Slave/Server по отношению к TCP Master/Client и Modbus RTU Master по отношению к RTU Slave устройству.

Для настройки шлюза воспользуемся утилитой MGate Manager, также шлюз можно настроить через WEB-интерфейс.

  • Найдем шлюз через Поиск и разблокируем его. Заводской логин/пароль: admin/moxa, он указан в документации.
  • Перейдем в настройки, нажав кнопку Настройка.

  • На вкладке Основное можно указать имя шлюза и установить время.

  • Во вкладке Сеть можно изменить IP адрес шлюза и маску подсети. Установить статический или задать динамическое получение IP-адреса от DHCP-сервера.

  • Во вкладке Последовательный интерфейс можно настроить тип последовательного интерфейса RS-232/422/485, скорость, четность и другие параметры.

  • На вкладке Протокол можно настроить логику работы шлюза.
  • На вкладке Режим работы мы выбираем роль шлюза Master или Slave.
  • Чтобы было легче разобраться, посмотрите на картинку сверху.

    Если вы подключаете RTU Slave устройство к СОМ порту, то выбирайте Режим RTU Slave, а если RTU Master устройство, то Режим RTU Master. Мы выберем режим RTU Slave и снимем галочку Включить ProCOM.

  • На вкладке Modbus можно задать задержки и тайм-ауты. Эти настройки можно оставить по умолчанию и вернуться к ним позже.

  • На вкладке Modbus-маршрутизация нужно настроить алгоритм отправки команд в соответствии с Modbus ID. Когда команда попадает в шлюз, то ее нужно переслать либо на последовательный порт, либо на IP адрес.
  • Основное поле обязательное для заполнения — это таблица ID подчиненных устройств.

    В этой таблице мы выбираем куда отправить команду.

    На картинке выше: если команда адресована устройствам с Modbus ID от 1 до 5, то шлюз отправит ее в 1 порт, а команды для устройств с Modbus ID от 6 до 10 шлюз отправит на 2 порт.

    Еще в поле Порт таблицы маршрутизации можно указать дополнительные условия пересылки Modbus команд в зависимости от IP адреса или TCP порта, но это не обязательно.

    Также мы можем задать смещение Modbus ID, что позволяет на разных портах иметь устройства с одинаковыми Modbus ID. Это нужно, например, когда вы не можете изменить Modbus ID конечных устройств.

  • На вкладке Управление приоритетом можно указать какие команды будут обрабатываться первыми. Задать приоритет можно по IP адресу, TCP порту, Slave ID или коду функции.

  • Во вкладке Дополнительно можно активировать специфические функции, которые не влияют на преобразование протоколов, но влияют на безопасность. Доступны следующие настройки:

    • Список разрешенных IP адресов
    • Журнал сообщений
    • Типы оповещений по Email, SNMP Trap или через реле
    • Тип доступа к шлюзу HTTP, HTTPS, Telnet
    • Политика в отношении доступа к шлюзу

    Мы завершили настройку, нажимаем кнопку ОК и ждем перезагрузки шлюза. После короткого сигнала, шлюз готов к работе.

    Проверка шлюза

    Для проверки работы шлюза можно использовать любое ПО. Например, для эмуляции Modbus TCP Master можно использовать компьютер с ПО ModScan, а для Modbus RTU Slave ПО ModSim.

    После настройки ПО Modbus TCP Master посылает команды в шлюз, а шлюз преобразует их в команды Modbus RTU и отправляет на нужный СОМ порт в соответствии с таблицей Modbus маршрутизации.

    Чтобы посмотреть какие команды куда отправляются, можно запустить Мониторинг.

    Нажимаем кнопку Мониторинг, а затем кнопку Пуск, мы видим команду Modbus TCP Request от Master устройства, шлюз преобразует ее в команду Modbus RTU Request и пересылает ее в Slave устройство на 1 порт. Далее шлюз получает ответ Modbus RTU Response, преобразует его в Modbus TCP Response и пересылает ответ для Master устройства.

    Режим преобразования Modbus TCP Master в Modbus RTU Slave

    У нас есть Modbus RTU Master и нам нужно подключить к нему Modbus TCP Slave устройство. Шлюз в этой схеме будет выступать Modbus TCP Master/Client по отношению к TCP Slave/Server и Modbus RTU Slave по отношению к RTU Master устройству.

    Сетевые настройки и параметры СОМ порта будут такие же как выше.

    Перейдем к настройкам преобразования протоколов.

  • На вкладке Протокол переходим к вкладке Режим работы.
  • Т.к. теперь мы подключаем RTU Master устройство к СОМ порту, значит выбираем Режим RTU Master.

    Для примера настроим оба порта в режим RTU Master и снимем галочку Включить ProCOM.

    Перейдем на вкладку Modbus-маршрутизация.

    Т.к. у нас оба порта в режиме RTU Master, то в Таблице ID подчиненных устройств нет условия пересылки Modbus команд на СОМ порты.

    Теперь добавим условие пересылки команд на IP адрес Modbus TCP Slave/Server устройства.

    Если команда адресована устройствам с Modbus ID от 1 до 10, то шлюз отправит ее на IP адрес Modbus TCP Slave/Server устройства.

    Мы завершили настройку, нажимаем кнопку ОК и ждем перезагрузки шлюза. После короткого сигнала, шлюз готов к работе.

    Чтобы посмотреть какие команды куда отправляются, можно запустить мониторинг.

    Режим ProCOM для эмуляции виртуального СОМ порта

    Режим ProCOM позволяет создать на компьютере виртуальный СОМ порт с поддержкой протокола Modbus RTU, когда ПК подключен к шлюзу через Ethernet. Такой функционал необходим для совместимости с ПО, которое может работать только с СОМ портом по протоколу Modbus RTU.

    Покажем на следующем примере, у нас есть компьютер, который может работать только с Modbus RTU протоколом и не имеет встроенных СОМ портов. К нему нужно подключить Modbus TCP Slave/Server устройство (также можно подключить Modbus RTU Slave).

    Перейдем к настройкам преобразования протоколов.

  • На вкладке Протокол переходим к вкладке Режим работы.
  • Для создания виртуального СОМ порта поставим галочку Включить ProCOM.

    Если мы не используем СОМ порты, то их можно отключить, для примера оставим их в режиме RTU Slave.

  • Перейдем на вкладку Modbus-маршрутизация.
  • В Таблице ID подчиненных устройств нужно добавить условие для пересылки команд на IP адрес Modbus TCP Slave/Server устройства. Т.к. мы оставили включенными СОМ порты, то для них также доступны условия.

    Мы завершили настройку, нажимаем кнопку ОК и ждем перезагрузки шлюза. После короткого сигнала, шлюз готов к работе.

  • Теперь добавим виртуальный СОМ порт через утилиту MGate Manager, для этого нажмем кнопку Настройка ProCOM.

  • После нажатия кнопки Добавить, в окне появятся 4 СОМ порта. При необходимости можно удалить ненужные СОМ порты.

    После нажатия кнопки Ок, у нас появится СОМ3 порт. В диспетчере устройств он не отображается.

    Чтобы посмотреть какие команды куда отправляются, можно запустить Мониторинг.

    Подтягивающие и согласующие резисторы

    В MGate есть встроенные резисторы, которые обеспечивают правильную работу линий RS-422/485.

    Согласующий резистор или терминатор 120 Ом – ставится в начале и конце линии для предотвращения отражения сигнала от конца линии и искажении полезного сигнала в RS-422/485.

    Подтягивающие резисторы (pull high/low resistors) – предназначены для ограничения тока, протекающего по сигнальным цепям, и чтобы сделать состояние цифрового входа по умолчанию высоким или низким.

    Пример расположения резисторов для модели MGate MB3270 (подробности в руководстве пользователя к конкретной модели MGate):

    Распиновка разъемов СОМ портов

    Рекомендации по устранению неисправностей

    Если возникли проблемы с передачей данных, то проверьте через Мониторинг приходят ли команды и куда они отправляются.

    Если команды не приходят со стороны Ethernet, то проверьте:

    • Правильно ли указан IP адрес шлюза в ПО
    • Находится ли он в одной подcети с Master устройством
    • Правильно ли настроена пересылка команд во вкладке Modbus-маршрутизация, а именно в таблице ID подчиненных устройств
    • Воспользуйтесь другим ПО для проверки

    Если проблема со стороны СОМ порта, то проверьте:

    • Параметры СОМ порта: скорость, четность, тип интерфейса, протокол данных
    • Правильность подключения проводов к порту
    • Настройки во вкладке Modbus-маршрутизация
    • Измените номинал подтягивающих резисторов
    • Добавьте согласующий резистор (для RS-422/485)
    • Воспользуйтесь другим ПО для проверки

    Недавно просмотренные