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

м
→‎WBIO-DO-R10A-8: Вычитка
м (→‎Вложенные устройства (subdevices): Вычитка + изображение)
м (→‎WBIO-DO-R10A-8: Вычитка)
Строка 561: Строка 561:


=== WBIO-DO-R10A-8 ===
=== WBIO-DO-R10A-8 ===
Устройство [[WBIO-DO-R10A-8_Relay_Module|WBIO-DO-R10A-8]] — релейный боковой модуль, который подключается непосредственно к WBIO-разъему контроллера, и не управляется по Modbus. Но при подключении его через устройство расширения WB-MIO или WB-MIO-E становится полноценным modbus-устройством, для которого есть соответствующий шаблон.  
Устройство [[WBIO-DO-R10A-8_Relay_Module|WBIO-DO-R10A-8]] — релейный боковой модуль, который подключается непосредственно к WBIO-разъему контроллера, и не управляется по Modbus. Но при подключении его через устройство расширения [[WB-MIO]] или [[WB-MIO | WB-MIO-E]] становится полноценным modbus-устройством, для которого есть соответствующий шаблон.  


<syntaxhighlight lang="JSON">
<syntaxhighlight lang="JSON">
Строка 673: Строка 673:
</syntaxhighlight>
</syntaxhighlight>


Параметр '''"protocol": "modbus_io"''' указывает, что устройство подключается оп специальному протоколу к модулю расширения. Параметры '''"stride": 1000''' и '''"shift": 500''' задают сдвиг регистров в зависимости от того, в каком порядке подключены модули к модулю расширения.  
Параметр <code>"protocol": "modbus_io"</code> указывает, что устройство подключается оп специальному протоколу к модулю расширения. Параметры <code>"stride": 1000</code> и <code>"shift": 500</code> задают сдвиг регистров в зависимости от того, в каком порядке подключены устройства к модулю расширения.  


Сдвиг регистров (число, которое нужно добавить к базовому номеру регистра) вычисляется по формуле: <syntaxhighlight lang="C++">Shift = (((SlaveId.Secondary - 1) % 4) + 1) * DeviceConfig()->Stride + DeviceConfig()->Shift;</syntaxhighlight> Здесь stride — ''DeviceConfig()->Stride'', a shift — ''DeviceConfig()->Shift''. Каждое подключенное устройство имеет порядковый номер (''SlaveId.Secondary''), начинающийся с 1 для первого устройства. (Здесь знаком "%" обозначается деление по модулю.)
Сдвиг регистров (число, которое нужно добавить к базовому номеру регистра) вычисляется по формуле: <syntaxhighlight lang="C++">Shift = (((SlaveId.Secondary - 1) % 4) + 1) * DeviceConfig()->Stride + DeviceConfig()->Shift;</syntaxhighlight> Здесь stride — <code>DeviceConfig()->Stride</code>, a shift — <code>DeviceConfig()->Shift</code>. Каждое подключенное устройство имеет порядковый номер ''SlaveId.Secondary'', который начинается с <code>1</code> для первого устройства. В формуле знаком <code>%</code> обозначается деление по модулю.


Например, подставляя значения shift и stride в формулу, получаем: <syntaxhighlight lang="C++">Shift = ((( 1 - 1) % 4) + 1) * 500 + 1000 = (0 + 1) * 500 + 1000 = 1500</syntaxhighlight> То есть ко всем регистрам, указанным в шаблоне, надо добавить 1500.
Например, подставляя значения '''shift''' и '''stride''' из шаблона в формулу, получаем: <syntaxhighlight lang="C++">Shift = ((( 1 - 1) % 4) + 1) * 500 + 1000 = (0 + 1) * 500 + 1000 = 1500</syntaxhighlight> То есть ко всем регистрам, указанным в шаблоне, надо добавить 1500.


Еще один важный параметр — setup-секция, массив
Еще один важный параметр — [[#Секция инициализации (setup-секция) | setup-секция]]:
<syntaxhighlight lang="JSON">
<syntaxhighlight lang="JSON">
     "setup": [    {
     "setup": [    {
Строка 689: Строка 689:
     ...]  
     ...]  
</syntaxhighlight>
</syntaxhighlight>
Он описывает регистры и значения, которые однократно заносятся в эти регистры при инициализации устройства (при запуске или перезапуске wb-mqtt-serial). Его можно использовать для конфигурирования устройств для работы в каком-то определенном режиме, задавать изначальные значения яркости, положения сервоприводов, состояния реле, режима работы с входами релейных модулей и т. п.


=== WB-MAP3H ===
=== WB-MAP3H ===