Цитата Сообщение от kondor3000 Посмотреть сообщение
Это называется выравнивание, в вашем случае, при использовании структуры, выравнивание может сдвинуть адреса от 1 до 4 регистров вроде.
Здесь показано выравнивание на примере BYTE, WORD, DWORD
https://owen.ru/forum/showthread.php...age=1042#10416

В СDS3.5 так же как в 2.3 работает, в ПЛК слейве.
Проверить можно, создав в панели тиражированием, штук 8 дисплеев, с адресами по порядку, вернуть структуру и смотреть в какой адрес пишется ваш регистр.
Да, я подозревал выравнивание памяти в структуре, читал про это.
Была структура данных для чтения панелью СП310. В структуре были вперемешку и WORD, и BOOL, плюс еще объединения. Убрал все BOOL и упаковал в прорамме их все в WORD'ды. Проблема решилась.
Все равно не очень понимаю сути, как влияет привязка булевской переменной к полю bit в регистре ModbusTCP_Slave_Device на другой регистр. Для чего тогда эти поля бит нужны в регистрах?
Я ведь когда читаю из модуля ввода битовую маску, я присваиваю битовым полям булевские переменные, которые в свою очередь также упакованы в структуры. Так тоже получается нехорошо делать?