Перейти к содержанию

Навигация

Rule Examples: различия между версиями

386 байт добавлено ,  5 месяцев назад
Строка 1625: Строка 1625:
==Работа с последовательным портом через RPC==
==Работа с последовательным портом через RPC==


С помощью правил wb-rules можно отправлять запросы Modbus-устройствам, используя драйвер [[Wb-mqtt-serial_driver |wb-mqtt-serial]]. Это может пригодится, когда устройство на шине работает не по стандартному протоколу и не поддерживается драйвером.
Если устройство на шине работает по протоколу, который не поддерживается драйвером [[Wb-mqtt-serial_driver |wb-mqtt-serial]] можно формировать запросы вручную и отправлять их драйверу через сервис [https://github.com/wirenboard/mqtt-rpc RPC-MQTT].


Для взаимодействия wb-rules и драйвера wb-mqtt-serial используется сервис [https://github.com/wirenboard/mqtt-rpc RPC-MQTT].  
Сервис создает MQTT-топик для отправки запросов, и топик для чтения ответов от драйвера. Поэтому для его использования достаточно отправить запрос в нужный топик функцией <code>publish()</code> и прочитать ответ функцией <code>trackMqtt()</code>. Как узнать адреса топиков описано в [https://github.com/wirenboard/mqtt-rpc документации].


Сервис создает MQTT-топик для отправки запросов, и топик для чтения ответов от драйвера. Поэтому для его использования достаточно отправить запрос в нужный топик функцией <code>publish()</code> и прочитать ответ функцией <code>trackMqtt()</code>. Как узнать адреса топиков описано в [https://github.com/wirenboard/mqtt-rpc документации].
В примере написан скрипт на wb-rules для отправки Modbus-запроса устройству Wiren Board на шине RS-485.  
 
Переменная <code>message</code> содержит Modbus-запрос, сформированный в соответствии со стандартом [[Modbus |Modbus RTU]].  


В примере реализовано чтение Modbus-регистра устройства на шине RS-485.
Переменная <code>pathRPC</code> — это адрес MQTT-топика, в который отправляются запросы для драйвера wb-mqtt-serial. Для каждого сервиса используется свой топик, и узнать его адрес можно из документации на RPC-MQTT.


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
translator, wb_editors
4218

правок