16 583
правки
м (→WB-MAP3H: WB-MAP3H → WB-MAP3E) |
м (→WBIO-DO-R10A-8: опечатка) |
||
Строка 715: | Строка 715: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Параметр <code>"protocol": "modbus_io"</code> указывает, что устройство подключается | Параметр <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 — <code>DeviceConfig()->Stride</code>, a shift — <code>DeviceConfig()->Shift</code>. Каждое подключенное устройство имеет порядковый номер ''SlaveId.Secondary'', который начинается с <code>1</code> для первого устройства. В формуле знаком <code>%</code> обозначается деление по модулю. | Сдвиг регистров (число, которое нужно добавить к базовому номеру регистра) вычисляется по формуле: <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> обозначается деление по модулю. |