Открыть сервис

Modbus TCP

Modbus TCP — это открытый коммуникационный протокол, основанный на архитектуре «клиент-сервер», предназначенный для обмена данными между электронными устройствами в промышленных сетях автоматизации. Является одной из реализаций стандарта Modbus, адаптированной для передачи данных по сетям Ethernet, использующим стек протоколов TCP/IP. Протокол определён в спецификации Modbus Messaging on TCP/IP Implementation Guide (V1.0b) и опубликован организацией Modbus Organization (ранее Modbus-IDA).

История

Протокол Modbus был разработан компанией Modicon (ныне Schneider Electric) в 1979 году для программируемых логических контроллеров (ПЛК). Изначально он работал через последовательные интерфейсы (RS-232, RS-485) и использовал формат RTU (Remote Terminal Unit) или ASCII. С развитием промышленного Ethernet в конце 1990-х годов возникла потребность в унификации доступа к устройствам через IP-сети. В 1999 году компания Schneider Electric совместно с рядом других производителей (включая Omron, Rockwell Automation) предложила спецификацию Modbus TCP, которая была опубликована в 2002 году. В 2004 году протокол был стандартизирован как рекомендация IEC 61158 (полевые шины). В 2007 году Modbus TCP стал частью международного стандарта IEC 61784-2 (профили промышленных сетей).

Архитектура и принцип работы

Modbus TCP использует модель OSI, работая на прикладном уровне (уровень 7). Передача данных осуществляется поверх транспортного протокола TCP (порт 502), что обеспечивает надёжную доставку с подтверждением получения. В отличие от последовательного Modbus, где используется полудуплексная связь (ведущий-ведомый), Modbus TCP поддерживает полнодуплексную связь и множественные одновременные соединения.

Клиент-серверная модель

В Modbus TCP устройство, инициирующее запрос, называется клиентом (ранее — ведущий, master), а устройство, обрабатывающее запрос и отправляющее ответ, — сервером (ранее — ведомый, slave). Один клиент может одновременно обслуживать несколько серверов, а один сервер может обрабатывать запросы от нескольких клиентов. Каждое устройство в сети идентифицируется по IP-адресу и, опционально, по номеру порта (по умолчанию 502).

Формат кадра (PDU)

Протокольный блок данных (PDU) Modbus TCP состоит из трёх частей:

Максимальный размер PDU — 260 байт (253 байта данных + 7 байт заголовка). Реальный размер кадра Ethernet может быть больше из-за заголовков TCP/IP и Ethernet (до 1518 байт).

Классификация кодов функций

Коды функций Modbus TCP делятся на три категории:

Стандартные (общедоступные)

Определены в спецификации и поддерживаются большинством устройств:

Пользовательские (определяемые производителем)

Диапазон 65–72 (0x41–0x48) и 100–110 (0x64–0x6E). Используются для расширения функциональности (например, диагностика, чтение истории).

Зарезервированные

Коды 0x09–0x0F, 0x11–0x14, 0x17–0x1F и другие — не используются в стандартной реализации.

Типы данных

Modbus TCP оперирует четырьмя основными типами данных, адресуемых через номера регистров (от 0 до 65535):

Данные могут объединяться: два 16-битных регистра образуют 32-битное значение (float, integer, unsigned long). Порядок байт (endianness) может различаться: стандартный Modbus использует big-endian (старший байт первым), но некоторые производители применяют little-endian.

Применение

Modbus TCP широко используется в промышленной автоматизации, системах управления зданиями (BMS), энергетике, водоснабжении и транспорте. Основные области:

Преимущества и недостатки

Преимущества

Недостатки

Отличия от последовательного Modbus

ПараметрModbus RTU/ASCIIModbus TCP
Физическая средаRS-232, RS-485Ethernet (витая пара, оптоволокно)
ТопологияШина (линия)Звезда, дерево, кольцо
СкоростьДо 115,2 кбит/с10/100/1000 Мбит/с
Макс. устройств32 (RS-485)255 (по ID)
Контроль ошибокCRC (RTU) или LRC (ASCII)Контроль TCP (checksum)
АдресацияSlave ID (1 байт)IP-адрес + Slave ID
Тип связиПолудуплексПолнодуплекс

Реализации и программное обеспечение

Для работы с Modbus TCP существует множество библиотек и инструментов:

Безопасность

В связи с отсутствием встроенных механизмов защиты, Modbus TCP часто критикуется за уязвимости. В 2019 году исследователи из компании Claroty выявили несколько критических уязвимостей в реализациях протокола от разных производителей (CVE-2019-13991 и др.). Для повышения безопасности рекомендуется:

Источники

  1. Modbus Organization. Modbus Messaging on TCP/IP Implementation Guide V1.0b. 2006.
  2. IEC 61158-5-10:2010. Industrial communication networks — Fieldbus specifications — Part 5-10: Application layer service definition — Type 10 elements.
  3. IEC 61784-2:2014. Industrial communication networks — Profiles — Part 2: Additional fieldbus profiles for real-time networks based on ISO/IEC 8802-3.
  4. Schneider Electric. Modbus Protocol Reference Guide. 2004.
  5. Claroty Research. Modbus TCP Vulnerabilities in Industrial Control Systems. 2019.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →