Wb-mqtt-serial driver: различия между версиями

м
Строка 52: Строка 52:
=== Структура файла ===  
=== Структура файла ===  


Файл <code>/etc/wb-mqtt-serial.conf</code> имеет структуру <code>порты (ports)</code> → <code>устройства (devices)</code> → <code>каналы (channels)</code>: в файле есть описание физических портов контроллера, внутри них — список устройств подключенных к этому порту, а внутри устройств описаны каналы.
Файл <code>/etc/wb-mqtt-serial.conf</code> имеет структуру <code>порты (ports)</code> → <code>устройства (devices)</code> → <code>каналы (channels)</code>: в файле есть описание физических портов контроллера, внутри них — список подключенных к этому порту устройств, а внутри устройств описаны их каналы.


Для каждого порта указываются настройки: скорость, четность и т.п., а также протокол: Modbus, Uniel и т.п. Для каждого устройства обязательно указывается его уникальный адрес на шине — <code>slave_id</code>, остальные параметры указываются по необходимости.  
Для каждого порта указываются настройки: скорость, четность и т.п., а также протокол: Modbus, Uniel и т.п. Для каждого устройства обязательно указывается его уникальный адрес на шине — <code>slave_id</code>, остальные параметры указываются по необходимости. Если параметр не указан — будет подставлено значение по умолчанию.


Структура файла:
Структура файла:
Строка 142: Строка 142:


==== Основные настройки драйвера ====
==== Основные настройки драйвера ====
* debug — опция включает отладочный режим драйвера. Доступные значения: true, false.
* debug — опция включает отладочный режим драйвера. Доступные значения: ''true'', ''false''.
* max_unchanged_interval — Задаёт интервал в секундах, в течение которого не изменяющиеся значения не будут публиковаться в MQTT. По истечении интервала значение будет опубликовано, даже если оно не изменилось. Доступны специальные значения:
* max_unchanged_interval — Задаёт интервал в секундах, в течение которого неизменяющиеся значения не будут публиковаться в MQTT. По истечении интервала значения будут опубликованы, даже если они не изменились. Помимо интервала в секундах можно указать специальные значения:
** <code>0</code> — публиковать все значения;  
** <code>0</code> — публиковать все значения;  
** <code>-1</code> — публиковать только при изменении. Значение по умолчанию.
** <code>-1</code> — публиковать только при изменении. Значение по умолчанию.


==== Порты (ports) ====
==== Порты (ports) ====
* port_type — тип порта:  
* port_type — можно указать один из трех типов порта:  
** serial — последовательные порты RS-485 или RS-232, значение по умолчанию.
** serial — последовательные порты RS-485 или RS-232. Значение по умолчанию.
** tcp — serial over TCP/IP. Пакеты, формируемые для работы с последовательными портами, передаются без изменений через TCP/IP.
** tcp — serial over TCP/IP. Пакеты, формируемые для работы с последовательными портами, передаются без изменений через TCP/IP.
** modbus tcp — передача по Modbus TCP. В секции устройств с таким типом порта могут использоваться только те, что поддерживают Modbus.
** modbus tcp — передача по Modbus TCP. В секции устройств с таким типом порта могут использоваться только те, что поддерживают Modbus.
* path — если выбран тип serial: устройство в системе, которое соответствует порту RS-485.
* path — если выбран тип ''serial'': устройство в системе, которое соответствует порту RS-485.
* address — если выбран тип tcp или modbus tcp: IP-адрес или имя хоста.
* address — если выбран тип ''tcp'' или ''modbus tcp'': IP-адрес или имя хоста.
* port — если выбран тип tcp или modbus tcp: TCP-порт.  
* port — если выбран тип ''tcp'' или ''modbus tcp'': TCP-порт.  
* baud_rate — скорость порта.
* baud_rate — скорость порта.
* parity — четность:  
* parity — четность:  
Строка 163: Строка 163:
* stop_bits — количество стоп-бит, по умолчанию — 2.
* stop_bits — количество стоп-бит, по умолчанию — 2.
* poll_interval — минимальный интервал опроса каждого регистра в миллисекундах.
* poll_interval — минимальный интервал опроса каждого регистра в миллисекундах.
* response_timeout_ms — максимальное время ответа устройств в миллисекундах. По умолчанию — 500 мс.
* response_timeout_ms — максимальное время ожидания ответа устройств в миллисекундах. По умолчанию — 500 мс.
* guard_interval_us — дополнительная задержка перед отправкой данных в порт, микросекунды.
* guard_interval_us — дополнительная задержка перед отправкой данных в порт, микросекунды.
* connection_timeout_ms — если выбран тип tcp или modbus tcp: таймаут соединения. Если в течение указанного времени ни по одному из устройств на порту не поступило данных и истек connection_max_fail_cycles — разорвать соединение и переподключиться.
* connection_timeout_ms — если выбран тип ''tcp'' или ''modbus tcp'': таймаут соединения. Если в течение указанного времени ни по одному из устройств на порту не поступило данных и истек ''connection_max_fail_cycles'' — разорвать соединение и переподключиться.
* connection_max_fail_cycles — если выбран тип tcp или modbus tcp: количество неудачных циклов опроса.
* connection_max_fail_cycles — если выбран тип ''tcp'' или ''modbus tcp'': количество неудачных циклов опроса.
* enabled — включает или отключает порт. Доступные значения: ''true'', ''false''. По умолчанию — ''true''.
* enabled — включает или отключает порт. Доступные значения: ''true'', ''false''. По умолчанию — ''true''.