16 583
правки
м (→Вложенные устройства (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> | ||
Параметр | Параметр <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 — | Сдвиг регистров (число, которое нужно добавить к базовому номеру регистра) вычисляется по формуле: <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-MAP3H === | === WB-MAP3H === |