MODBUS TCP

Контроллеры, у которых присутствует порт Ethernet, поддерживают протокол Modbus TCP. Основные принципы работы с протоколом такие-же, как и для Modbus RTU.

Режим подчиненного

Этот режим ничем не отличается от работы в режиме Modbus RTU. Все сетевые переменные, присутствующие в контроллере, доступны как по протоколу Modbus RTU, так и по Modbus TCP, без каких-либо ограничений.

Единственным отличием от Modbus RTU является адресация самого устройства. Если для доступа к устройству через Modbus RTU используется его адрес, то при запросе через Modbus TCP необходимо указывать нулевой адрес.

В качестве примера рассмотрим настройку известной программы Modbus Poll.

_images/modbuspoll1.png

В диалоге подключения указываем тип подключения Modbus TCP/IP и IP адрес контроллера. Номер порта должен быть установлен 502.

Затем в диалоге Read/Write Definition устанавливаем параметр SlaveID в ноль и указываем нужный адрес стартового регистра, количество регистров и другие необходимы параметры запроса.

_images/modbuspoll2.png

При установке в запросе адреса отличного от нуля, контроллер будет работать в режиме маршрутизации. Все пакеты он будет перенаправлять в свой RTU порт для устройства с указанным адресом. Если контроллер содержит несколько COM портов, то по умолчанию маршрутизация производится с портом COM0. В некоторых устройствах есть возможность указать номер порта маршрутизации, более подробная информации содержится в описание конкретного контроллера.

Режим мастера

Для отправки запросов по протоколу Modbus TCP используются те же блоки чтения/записи, что и при работе с Modbus RTU. Однако для работы блоков на вход адреса нужно устанавливать значение в формате однобайтового числа. IP адрес имеет другую размерность. Поэтому для работы блока необходимо настроить таблицу диапазонов адресов в порту Ethernet контроллера. Это позволит задать соответствие однобайтового адреса и IP адреса.

_images/modbus_tcp_master1.png

Настройка заключается в установке стартового адреса, количества адресов и стартового IP адрес диапазона. Согласно этим настройкам будет вычисляться IP адрес контроллера, к которому будет отправляться запрос. Диапазонов может быть несколько.

Например, имеется контроллер, с адресом 192.168.1.38. Добавляем в настройку порта диапазон как указан на рисунке. Для доступа к 192.168.1.38 необходимо указать адрес 38 на входе блока Modbus.

_images/modbus_tcp_master2.png

В остальном работа с Modbus TCP в режиме мастера не отличается от работы в режиме Modbus RTU.

Работа с OPC-сервером

В этом разделе описана настройка контроллера и порядок работы с OPC-серверами (на примере Lectus OPC сервер)

Настройка опроса переменных панели Z031

_images/lectus1.png

Первый запуск конфигуратора сервера

_images/lectus2.png

Добавляем узел и производим его настройку согласно рисунку. Особое внимание обращаем на адрес устройства, который установлен в 0. Это означает, что запросы будут адресованы непосредственно панели. Для задания IP адреса панели нажимаем кнопку «Настройка» и в открывшемся окне указываем адрес и порт. Порт всегда равен 502.

_images/lectus3.png

Далее к узлу добавляем необходимое количество переменных.

_images/lectus4.png

Для переменной указывается адрес, права доступа, частота опроса.

Настройка опроса переменных контроллера, подключенного к порту RTU панели Z031

Настройка опроса переменных контроллера, подключенного к порту RTU панели производится аналогичным образом. Единственное отличие состоит в том, что адрес устройства узла должен быть не 0, а равен адресу Modbus подчиненного контроллера. В этом случае панель будет работать в режиме шлюза, пересылая запросы, полученный от OPC сервера в порт RTU.

_images/lectus6.png

На рисунке показана настройка опроса контроллера с адресом 1, подключенного к порту RTU панели с IP адресом 192.168.1.38.