Последовательный сервер – введение и использование многохостового шлюза
Как упоминалось в предыдущем разделе, протокол ModBus является наиболее широко используемым протоколом в промышленных приложениях. В системе протокола ModBus хостом обычно является ПЛК, HMI, программное обеспечение для настройки и т. д. Однако в немного сложной системе обычно одновременно существует несколько хостов. Поскольку в качестве кабеля связи обычно используется RS485, функция полудуплекса вызывает большую задержку передачи данных, когда несколько хостов собирают данные одновременно. (Поскольку только один ведущий или ведомый может отправлять данные одновременно, в противном случае это приведет к конфликтам данных и искажению символов)
Таким образом, хост обычно использует сетевой порт при обмене данными, что обеспечивает своевременность данных. В предыдущем разделе я рассказал вам, что сервер последовательного порта может преобразовывать данные сетевого порта в данные последовательного порта для связи. Это обеспечивает полнодуплексную связь и в то же время может подключать данные к Интернету, что значительно увеличивает расстояние связи. .
Введение в функцию многохостового шлюза сервера последовательного порта
Хотя сетевая линия может достигать полнодуплексного режима (отправка и прием одновременно), для сценариев приложений с малой задержкой преимущество такой связи «один к одному» не очень очевидно. Сегодня я расскажу вам об одной особенности — режим многохостового шлюза.
Многохостовый шлюз Modbus поддерживает несколько хостов Modbus TCP для одновременной работы устройств RTU, используя связь по протоколу TCP/IP, чтобы преодолеть ограничение, заключающееся в том, что только один хост может одновременно существовать на шине данных RTU.
Режим простого преобразования протокола подходит только для сценариев, в которых один хост используется для связи с подчиненным устройством, поскольку сервер последовательного порта только преобразует данные, а данные последовательного порта будут передаваться всем хостам. Если несколько хостов отправляют данные одновременно, сервер последовательного порта отправит данные напрямую, что приведет к тайм-ауту связи или аномалиям данных.
По сравнению с простым преобразованием протокола, режим многохостового шлюза выполняет отдельную обработку данных для сценариев, когда несколько хостов отправляют данные одновременно. Например, когда хостам 1, 2 и 3 требуется короткое время для отправки данных, сервер последовательного порта перехватит запрошенные данные на стороне сети, и в это время данные будут отправлены на устройство последовательного порта. , устройство последовательного порта отправит данные после получения данных. Вернитесь на хост, и какой хост запрашивает данные, будет указано, на какой хост отправляются данные. Это позволит избежать нарушений связи и повысить надежность связи.
Учебное пособие по применению многохостового шлюза последовательного сервера
Далее в основном описывается метод применения многохостового шлюза. Каждая операция на стороне хоста имеет свои особенности. В этой статье пул Modbus и ведомое устройство Modbus используются только в качестве демонстрации. См. это для подключения по каналу.
Как настраивать параметры, было объяснено в предыдущей главе и не будет рассматриваться отдельно в этом разделе.
Используйте инструмент настройки сети EBYTE, чтобы проверить текущие параметры сервера последовательного порта. IP-адрес необходимо изменить на тот же сегмент сети, что и компьютер, установить для сервера последовательного порта режим TCP-сервера и записать текущий локальный IP-адрес и локальный порт.
Откройте программное обеспечение ведомого устройства ModBus, чтобы смоделировать ведомое устройство, используйте последовательный порт в качестве метода подключения, выберите номер последовательного порта сервера последовательного порта и параметры соединения (скорость передачи данных, биты данных, контрольные биты, стоповые биты, значение по умолчанию 115200). , здесь используется 8Н1)
Для содержимого возвращаемых данных выберите идентификатор подчиненного устройства — 1, код функции — 03, адрес регистра — 0 и количество — 10 (этот параметр также будет прочитан позже).
Откройте программное обеспечение ModBus Pool, выберите ModBus TCP/IP в качестве метода подключения, установите целевой IP-адрес на IP-адрес последовательного сервера и установите целевой порт на локальный порт последовательного сервера (192.168.0.113/8887). тайм-аут по умолчанию.
При чтении параметров идентификатор подчиненного устройства также выбирается равным 1, код функции выбирается равным 03, адрес регистра выбирается равным 0, а количество равно 10. С помощью этого параметра можно подключить 6 хостов, как показано на рисунке ниже.