ЖУРНАЛ СТА 3/2009

ОБ ЗОР / П РОМЫШЛ Е ННЫЕ С Е Т И дущему устройству клиенты выдают команды серверу. Аналогично ведомому устройству серверы отвечают на ко- манды клиента. Однако в точной терми- нологии взаимодействия между клиен- том и сервером подразумевается, что клиенты выдают запросы, а серверы от- вечают на них. В действительности про- цесс несколько сложнее: ● клиент с целью инициировать тран- закцию посылает запрос (request); ● сервер посылает уведомление (indica- tion), чтобы подтвердить, что запрос получен; ● сервер посылает ответ (response) во ис- полнение запроса клиента; ● клиент посылает подтверждение (con- firmation) о получении ответа. Важно подчеркнуть, что согласно этой модели в IP-сети может быть несколько клиентов, которые имеют доступ к об- щей группе серверов. В этом заключа- ется фундаментальное отличие в работе данного варианта протокола Modbus. Здесь нет одного-единственного веду- щего устройства, управляющего опреде- лённым набором ведомых устройств. Любое число клиентов может обра- щаться к любому числу серверов. Воз- можны ли конфликты, когда клиенты посылают несовместимые запросы к од- ному и тому же серверу? Да, возможны, но риск – это та цена, которую прихо- дится платить за гибкость, предлагаемую данной моделью. З АГОЛОВОК MBAP На рис. 7 показано, как формируется ADU (Application Data Unit) – при- кладной пакет протокола Modbus TCP/IP. Традиционный Modbus PDU в прило- жении к последовательной линии пере- дачи данных сохраняется – поля кода функции и данных присутствуют. В до- полнение к PDU появляется заголовок MBAP, структура которого показана на рис. 8. Идентификатор транзакции посту- пает от клиента и используется для от- слеживания индивидуальных запросов. Сервер при ответе должен возвратить клиенту тот же самый идентификатор. Это позволяет клиенту посылать сер- веру множество запросов и не дожи- даться получения ответа на каждый от- дельный запрос. Наличие идентифика- тора протокола позволяет системе поддерживать несколько протоколов. Для Modbus этот идентификатор имеет значение 0. Поле длины содержит значение, равное длине всех остальных полей, включая поля PDU. И, наконец, поле идентификатора устройства содер- жит адрес ведомого устройства Modbus, доступ к которому должен осуществ- ляться через шлюз. При взаимодействии клиентов и сер- веров Modbus TCP адресация станций реализуется с применением IP-адресов. Но если ведомое устройство Modbus подключено к последовательной линии передачи данных, то необходимо указать его фактический адрес. В этом случае в качестве IP-адреса будет выступать адрес шлюза. Для того чтобы переслать ADU по протоколу TCP, необходимо пользо- ваться зарегистрированным номером порта TCP. Сайт Modbus.org зарегистри- ровал для этой цели порт 502. З АКЛЮЧЕНИЕ Популярность протокола Modbus объ- ясняется его простотой. А благодаря тому что знаниями Modbus обладает множество практикующих специалистов и этот открытый стандарт поддержива- ется ассоциацией Modbus-IDA, он про- должает оставаться популярным. ● Автор — президент компании Contemporary Controls 26 www.cta.ru CTA 3/2009 Клиент Modbus TCP/IP Клиент Modbus TCP/IP Клиент – линия последовательной передачи данных Modbus Клиент TCP/IP Сервер Modbus TCP/IP Сервер Modbus TCP/IP Шлюз сервера TCP/IP Линия последовательной передачи данных Modbus Сервер – линия последовательной передачи данных Modbus Сервер – линия последовательной передачи данных Modbus Рис. 6. В модели Modbus TCP используются клиенты и серверы вместо ведущих и ведомых Таблица 2 Пятиуровневая модель для Интернет в Modbus ТСР Уровень Функция в модели OSI Функция в модели Modbus 5, 6, 7 Прикладной уровень Прикладной протокол Modbus 4 Транспортный уровень Протокол управления передачей 3 Сетевой уровень Интернет-протокол 2 Канальный уровень IEEE 802.3 1 Физический уровень IEEE 802.3 Заголовок МВАР Код функции Данные Modbus TCP/IP ADU Modbus PDU Рис. 7. К PDUModbus добавляется заголовок MBAP Рис. 8. Заголовок MBAP имеет длину 7 байтов Идентификатор транзакции Идентификатор протокола Длина Идентификатор устройства 2 байта 2 байта 2 байта 1 байт © СТА-ПРЕСС

RkJQdWJsaXNoZXIy MTQ4NjUy