serbobtom » Ср окт 07, 2015 4:04 pm
Классический или стандартный(что лучше подойдет) modbus, который изначально придумал и реализовал modicon, имеет структуру в котором 1 регистр занимает 2 байта. Как их интерпретировать - это другое дело. Либо это signed(int), либо unsigned, либо real и тд. А вот в Октопусе сделано строго - один регистр - 4 байта, и воспринимать их нужно как REAL. Но в настоящих моделях (не знаю как раньше) есть возможность настроить передачу по modbus как:
1. 1reg = 4byte, real
2. 1reg = 2byte (modicon)
3. 1reg = 2byte inversia
между 1 и 2,3 видимо идет внутренняя конвертация между ИВК и встроенным в ИВК modicon
Так вот номера регистров, которые указаны в документе - это номер регистра для первого случая - внутренняя адресация ИВК по 4 байтам.
Но я работаю через modbus poll, который понимает нормальный modbus то есть 2х байтовый. Если я обращаюсь по адресу 1001 - адресу первого регистра в таблице регистров из документа, то мне выдается ошибка что нет такого адреса.
Итого, что бы попасть 2х байтовым modicon modbus в адрес 4х байтового Oktopus modbus нужна вышеприведенная формула.