logo

2.9.3. Канальный уровень

Рис. 2.31. Структура фрейма Ethernet. Общая длина 72 байта. Пакеты TCP/UDP и IP инкапсулированы в поле "Данные"

Канальный уровень модели OSI состоит из подуровня управления логическим соединением LLC (Logical Link Control) и подуровня доступа к физической линии передачи MAC (Media Access Control).

На рис. 2.31 представлена структура Ethernet-фрейма. Он начинается с преамбулы, которая представляет собой чередующиеся единицы и нули и указывает получателю, что начинается передача фрейма. Поле "Флаг начала" указывает получателю, что сразу по окончании этого поля начнется передача содержательной части фрейма. Адрес отправителя и получателя представляют собой MAC-адреса. Поле "Тип" указывает, какой тип протокола более высокого уровня (TCP/UDP и IP) инкапсулирован в поле данных. Поле CRC содержит значение циклического избыточного кода (CRC) для всего фрейма.

Поле данных содержит пакеты протокола более высокого уровня, например, TCP/UDP и IP, и данные. Это поле может также содержать протоколы прикладного уровня других промышленных сетей, образуя гибридные сетевые протоколы Modbus TCP (на основе Modbus RTU, от компании Schneider Electric), EtherNet/IP (на основе DeviceNet, разработан Rockwell Automation и ODVA), HSE (на основе Foundation Fielbus), ProfiNet (Profibus в Ethernet), Interbus-TCP/IP и другие (более 14 протоколов). В этих протоколах остаются следующие общие черты Ethernet:

2.9.4. 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 не имеет широковещательного или многоабонентского режима, он осуществляет соединение только между двумя устройствами.

2.9.5. Profinet

Profinet (Profibus + Ethernet) является одним из современных стандартов (IEC 61158 и IEC 61784), который обеспечивает простую интеграцию устройств Profibus, ASI и Interbus c промышленным Ethernet. Протокол ProfiNet разработан Profibus International на базе Ethernet как совместимый с протоколом Profibus, поддерживаемым компанией Siemens.

*Брандмауэр - межсетевой экран для защиты от несанкционированного доступа. Другие названия: файервол, фильтр.