Modbus TCP

Протокол Modbus TCP [Modbus] (или Modbus TCP/IP) используется для того, чтобы подключить устройства с протоколом Modbus к Ethernet или Internet сети. Он использует кадры Modbus RTU на 7-м (прикладном) уровне модели OSI, протоколы Ethernet на 1-м и 2-м уровне модели OSI и TCP/IP на 3-м и 4-м уровне, т. е. Ethernet TCP/IP используется для транспортировки модифицированного кадра Modbus RTU.

Рис. 2.32. Часть фрейма Modbus TCP, встраиваемая в поле "Данные" фрейма Ethernet (рис. 2.31)

Кадр Modbus RTU (рис. 2.25) используется без поля контрольной суммы, поскольку используется стандартная контрольная сумма Ethernet TCP/IP. Не используется также поле адреса, поскольку в Ethernet используется иная систем адресации. Таким образом, только два поля: "Код функции" и "Данные" (блок PDU) встраиваются в протокол Ethernet TCP/IP. Перед ними вставляется новое поле - заголовок MBAP (ModBus Application Protocol- "прикладной протокол MobBus"), рис. 2.32.

Поле "Идентификатор обмена" используется для идентификации сообщения в случае, когда в пределах одного TCP соединения клиент посылает серверу несколько сообщений без ожидания ответа после каждого сообщения.

Поле "Идентификатор протокола" содержит нули и зарезервировано для будущих применений. Поле "Длина" указывает количество следующих за ним байт.

Поле "Идентификатор устройства" идентифицирует удаленный сервер, расположенный вне сети Ethernet (например, в сети Modbus RTU, которая соединена с Ethernet с помощью межсетевого моста). Чаще всего это поле содержит нули или единицы, игнорируется сервером и отправляется обратно в том же виде (как эхо).

Рис. 2.33. Процесс передачи кадра Modbus RTU по уровням модели OSI через стек протоколов Ethernet TCP/IP в сетях с протоколом Modbus TCP

Изображенный на рис. 2.32 фрейм называется фреймом ADU (Application Data Unit), встраивается в поле "Данные" фрейма Ethernet (рис. 2.31) и посылается через TCP порт 502, специально зарезервированный для Modbus TCP (порты назначаются и контролируются организацией IANA (Internet Assigned Numbers Authority), www.iana.org). Клиенты и серверы Modbus посылают, получают и прослушивают сообщения через TCP порт 502.

Таким образом, структура кадра и смысл его полей "Код функции" и "Данные" для Modbus и Modbus TCP совершенно идентичны, поэтому для работы с Modbus TCP не требуется дополнительного обучения по сравнению с Modbus RTU. Те же самые коды функций и данные, что и в Modbus RTU, передаются по очереди с прикладного (7-го) уровня модели OSI (рис.2.33) на транспортный уровень, который добавляет к блоку PDU кадра Modbus RTU (рис. 2.25) заголовок с протоколом TCP. Далее новый полученный кадр передается на сетевой уровень, где в него добавляется заголовок IP, затем он передается на канальный уровень Ethernet и на физический. Дойдя до физического уровня, блок PDU оказывается "обросшим" заголовками протоколов всех уровней, через которые он прошел. Пройдя по линии связи, сообщение продвигается снизу вверх по стеку протоколов (уровням модели OSI) в устройстве получателя, где на каждом уровне из него удаляется соответствующий заголовок, а на прикладном уровне выделяется блок PDU (код функции и данные) кадра протокола Modbus RTU.

В сети c протоколом Modbus TCP устройства взаимодействуют по типу "клиент-сервер", где в качестве клиента выступает ведущее устройство, в качестве сервера - ведомое. Сервер не может инициировать связи в сети, но некоторые устройства в сети могут выполнять роль как клиента, так и сервера.

Modbus TCP не имеет широковещательного или многоабонентского режима, он осуществляет соединение только между двумя устройствами.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: