СТА 4/2010

94 СТА 4/2010 www.cta.ru В ЗАПИСНУЮ КНИЖК У ИНЖЕ Н Е РА Список кодов Modbus В табл. 2 приведён пример кодов Modbus RTU для моду ля дискретного ввода и вывода типа RealLab! NL 16DI (фирмы НИЛ АП). Для чтения логических состояний вхо дов модуля через интерфейс RS 485 необходимо послать команду в формате, показанном на рис. 1, где в полях «Ад рес» и «Код функции» указываются значения из соответ ствующих граф табл. 2. M ODBUS TCP Протокол Modbus TCP [5] (или Modbus TCP/IP) исполь зуется для того, чтобы подключить устройства с протоко лом Modbus к Ethernet или сети Internet. Он использует кадры Modbus RTU на 7 м (прикладном) уровне модели OSI, протоколы Ethernet на 1 м и 2 м уровнях модели OSI и TCP/IP на 3 м и 4 м уровнях, то есть Ethernet TCP/IP ис пользуется для транспортировки модифицированного кад ра Modbus RTU. Кадр Modbus RTU (рис. 1) в этом случае не имеет по ля контрольной суммы, поскольку используется стан дартная контрольная сумма Ethernet TCP/IP; нет также поля адреса, поскольку в Ethernet используется иная сис тем адресации. Таким образом, только два поля – «Код функции» и «Данные» (блок PDU) встраиваются в прото кол Ethernet TCP/IP. Перед ними вставляется новое поле (рис. 3) – MBAP (Modbus application protocol – приклад ной протокол Modbus). Поле «Идентификатор обмена» используется для идентификации сообщения в случае, когда в пределах одного TCP соединения клиент посы лает серверу несколько сообщений без ожидания ответа после каждого сообщения. Поле «Идентификатор прото кола» содержит нули и зарезервировано для будущих применений. Поле «Длина» указывает количество следую щих за ним байтов. Поле «Идентификатор устройства» идентифицирует удалённый сервер, расположенный вне сети Ethernet (например, в сети Modbus RTU, которая соединена с Ethernet с помощью межсетевого моста). Чаще всего это поле содержит нули или единицы, игно рируется сервером и отправляется обратно в том же виде (как эхо). Изображённый на рис. 3 фрейм называется фреймом ADU, встраивается в поле «Данные» фрейма Ethernet [1] и посылается через 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 (рис. 4) на транспортный уровень, ко торый добавляет к блоку PDU кадра Modbus RTU (рис. 1) заголовок с протоколом TCP. Далее новый полученный кадр передаётся на сетевой уровень, где в него добавляет ся заголовок IP, затем он передаётся на канальный уро вень Ethernet и на физический. Дойдя до физического уровня, блок PDU оказывается «обросшим» заголовками протоколов всех уровней, через которые он прошёл. Прой дя по линии связи, сообщение продвигается снизу вверх по стеку протоколов (уровням модели OSI) в устройстве полу чателя, где на каждом уровне из него удаляется соответ ствующий заголовок, а на прикладном уровне выделяется блок PDU (код функции и данные) кадра протокола Modbus RTU. В сети c протоколом Modbus TCP устройства взаимодей ствуют по типу «клиент–сервер», где в качестве клиента выступает ведущее устройство, в качестве сервера – ведо мое. Сервер не может инициировать связи в сети, но неко торые устройства в сети могут выполнять роль как клиента, так и сервера. Modbus TCP не имеет широковещательного или много абонентского режима, он осуществляет соединение только между двумя устройствами. ● Л ИТЕРАТУРА 1. Денисенко В.В. Компьютерное управление технологическим про цессом, экспериментом, оборудованием. – М. : Горячая линия – Телеком, 2008. – 608 с. 2. Modbus over serial line specification and implementation guide, v1.02 [Электронный ресурс]. – Режим доступа : http://www.modbus.org . – Dec. 20, 2006. – 44 p. 3. Modbus application protocol specification v1.1a [Электронный ре сурс]. – Режим доступа : http://www.modbus IDA.org . – June 4, 2004. – 51 p. 4. Modicon Modbus Protocol Reference Guide. PI MBUS 300 Rev. J. – MODICON, Inc., Industrial Automation Systems. – June 1996. – 121 p. 5. Modbus messaging on TCP/IP implementation guide, v1.0a [Элект ронный ресурс]. – Режим доступа : http://www.modbus IDA.org . – June 4, 2004 – 46 p. Получатель Модуль вывода (Modbus RTU) TCP IP Ethernet канальный Ethernet физический Отправитель Витая пара, оптический кабель SCADA (Modbus RTU) TCP IP Ethernet канальный Ethernet физический Идентификатор обмена 2 байт Идентификатор устройства 1 байт Код функции 1 байт Данные (переменной длины) Идентификатор протокола 2 байт Длина 2 байт ADU для Modbus TCP MBAP DPU Рис. 3. Часть фрейма Modbus TCP, встраиваемая в поле «Данные» фрейма Ethernet [1] Рис. 4. Процесс передачи кадра Modbus RTU по уровням модели OSI через стек протоколов Ethernet TCP/IP в сетях с протоколом Modbus TCP © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy