5813
правок
Kilpio (обсуждение | вклад) |
Kilpio (обсуждение | вклад) |
||
Строка 310: | Строка 310: | ||
<div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | <div class="mw-collapsible mw-collapsed" style="width:500px; overflow: hidden;" > | ||
<syntaxhighlight lang="JSON"> | <syntaxhighlight lang="JSON" highlight="6-10"> | ||
{ | { | ||
"device_type": "WBIO-DO-R10A-8", | "device_type": "WBIO-DO-R10A-8", | ||
Строка 415: | Строка 415: | ||
В этом шаблоне следует обратить внимание на следующие параметры устройства. | В этом шаблоне следует обратить внимание на следующие параметры устройства. | ||
<syntaxhighlight lang="JSON"> | <syntaxhighlight lang="JSON"> | ||
"protocol": "modbus_io", | |||
"stride": 1000, | |||
"shift": 500, | |||
"max_read_registers": 0, | |||
"setup": [ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Параметр '''"protocol": "modbus_io"''' указывает, что устройство подключается оп специальному протоколу к модулю расширения. Параметры '''"stride": 1000''' и '''"shift": 500''' задают сдвиг регистров в зависимости от того, в каком порядке подключены модули к модулю расширения. | Параметр '''"protocol": "modbus_io"''' указывает, что устройство подключается оп специальному протоколу к модулю расширения. Параметры '''"stride": 1000''' и '''"shift": 500''' задают сдвиг регистров в зависимости от того, в каком порядке подключены модули к модулю расширения. | ||
Сдвиг регистров (число, которое нужно добавить к базовому номеру регистра) вычисляется по формуле: <syntaxhighlight lang=" | Сдвиг регистров (число, которое нужно добавить к базовому номеру регистра) вычисляется по формуле: <syntaxhighlight lang="C++">Shift = (((SlaveId.Secondary - 1) % 4) + 1) * DeviceConfig()->Stride + DeviceConfig()->Shift;</syntaxhighlight> | ||
Каждое подключенное устройство имеет порядковый номер (SlaveId.Secondary), начинающийся с 1 для первого устройства. (Здесь знаком "%" обозначается деление по модулю.) | Каждое подключенное устройство имеет порядковый номер (SlaveId.Secondary), начинающийся с 1 для первого устройства. (Здесь знаком "%" обозначается деление по модулю.) | ||
Например, подставляя значения shift и stride в формулу, получаем: <syntaxhighlight lang=" | Например, подставляя значения shift и stride в формулу, получаем: <syntaxhighlight lang="C++">Shift = ((( 1 - 1) % 4) + 1) * 500 + 1000 = (0 + 1) * 500 + 1000 = 1500</syntaxhighlight> То есть ко всем регистрам, указанным в шаблоне, надо добавить 1500. | ||
Еще один важный параметр — setup-секция, массив | Еще один важный параметр — setup-секция, массив |
правок