Шаблоны каналов обмена по протоколу 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.