Обмен по протоколу MODBUS TCP/IP

Шаблоны каналов обмена по протоколу MODBUS TCP/IP конфигурируются в редакторе переменных MODBUS (см. Обмен по MODBUS ), некоторые параметры обмена могут быть заданы в файле *.cnf (см. Задание параметров работы мониторов ).

При экспорте проекта в папке узла создается файл IP_modBus (без расширения). В первой строке этого файла описывается соответствие номера устройства его IP адресу (эту строку не следует редактировать вручную):

<id> <IP_address>

В файле также могут присутствовать следующие редактируемые строки:

<произвольное_число> CSC

отработка пакетов ответа от контроллеров, формирующих контрольную сумму во фрагменте Modbus-пакета Modbus/TCP (по стандарту в части пакета TCP, отведенного под Modbus, контрольная сумма не формируется). По умолчанию, монитор не создает эту строку в файле IP_modBus.

Пример: 2 CSC

<число_hex> PORT

задание номера порта для обмена.

Пример задания обмена через порт 502: 1F6 PORT

<число> TIMEOUT

задержка запроса после получения ответа от контроллера (в миллисекундах).

Пример: 200 TIMEOUT

<число> RECTIMEOUT

если за указанное в данной строке время (в миллисекундах) ответ не получен, каналу устанавливается признак аппаратной недостоверности.

<число> ERROR

при отсутствии соединения монитор будет пытаться установить его с заданным в этой строке периодом (в миллисекундах).

<число> OFFCOUNT

если установка каналу признака аппаратной недостоверности вследствие отсутствия ответа на запрос произошла указанное в этой строке количество раз, канал отключается от источника. При <число>=0 данная строка игнорируется.

<число> TMDICONN

таймаут в миллисекундах на удаление подключения к IP-адресу при наличии постоянных ошибок обмена с ним (возможно, подключение не было корректно удалено ОС).

0 NONDBIDNT

отключение проверки идентификатора транзакции (все транзакции нумеруются, узел Slave должен возвращать номер транзакции). Этот ключ может быть также задан в файле *.cnf.

Если описание устройства в файле отсутствует, каналу выставляется признак недостоверности, и он отключается.

Если ответ содержит информацию об ошибке, то канал @e_MODBUS (см. Группа ДИАГНОСТИКА ) принимает значение 7.

Ошибки протокола записываются в канал @e_TCP_ModBus (см. Группа ДИАГНОСТИКА ).

Максимальная длина группового запроса – 255.

По умолчанию для соединения используется порт 502 (стандартный порт для MODBUS TCP/IP).

Если установлен бит 10 (0x400) переменной @Debug, то по завершении работы профайлера в файл <имя файла prj>_<порядковый номер узла>.txt записываются следующие сообщения:

   TCP_UNIT=<номер устройства>;

   AVRSPEED=<среднее время транзакции, мс>(a), где a – зарезервированный параметр;

   TCP_LOOP=<ч1>(<ч2>)(<ч3>), где ч1, ч2 и ч3 – число миллисекунд, затраченное на сканирование базы каналов соответственно в потоке 1, 2 и 3.