По любому оба 8bits+8bits займут один регистр Modbus -0x00
А вот для переменной "tok" нужно два регистра и вроде нач.адрес должен быть четным, значит адрес будет 0x02.
Будет пустое пространство в один регистр между 8bits+8bits и "tok".
Может надо заполнить для выравнивания это пустое место?
Лучше сделать на оборот, первым "tok" с адресом 0x00, а затем 8bits+8bits у них будет адрес 0х02 (если читать регистр) или первые 8bits будут иметь адреса битов 32...39, а вторые 8bits будут иметь адреса битов 40...47.
Для переменных Real еще существует проблема с порядком байт
PS
Картинка не моя, уже не помню кто выкладавал
![]()






Ответить с цитированием