Не могу понять модель данных Modbus'а. У нас есть 4 таблицы данных, адрес в такой таблице — 16-байтовое число. А как понять последний абзац?
Следует отметить, что со способом адресации данных связана определённая путаница. Modbus был первоначально разработан для контроллеров Modicon. В этих контроллерах для каждой из таблиц использовалась специальная нумерация. Например, первому регистру ввода соответствовал номер ячейки 30001, а первому регистру хранения — 40001. Таким образом, регистру хранения с адресом 107 в команде Modbus соответствовал регистр № 40108 контроллера. Хотя такое соответствие адресов больше не является частью стандарта, некоторые программные пакеты могут автоматически «корректировать» вводимые пользователем адреса, например, вычитая 40001 из адреса регистра хранения.
Я не понял. Таки если я запишу 00ff в Holding Register с адресом 40108 это же число будет в Input Register 30108? Таки у нас 4 отдельных таблицы, или они на самом деле обязательно пересекаются? Могу я записать что-то в Holding Register с адресом 20, читать и Input Register'а с адресом 65000?