Добрый день,
Столкнулся с такой проблемой:
В глобальном списке определены булевы переменные. Переменные определены с привязкой к адресам при помощи декларации AT. Например, так:
Привязка необходима для того, чтобы можно было в дальнейшем читать/писать переменные посредством Modbus.Код:{attribute 'qualified_only'} VAR_GLOBAL bVar0 AT %QX10.0 :BOOL; bVar1 AT %QX10.1 :BOOL; bVar2 AT %QX10.2 :BOOL; bVar3 AT %QX10.3 :BOOL; bVar4 AT %QX10.4 :BOOL; bVar5 AT %QX10.5 :BOOL; bVar6 AT %QX10.6 :BOOL; bVar7 AT %QX10.7 :BOOL; bVar8 AT %QX11.0 :BOOL; bVar9 AT %QX11.1 :BOOL; и т.д. END_VAR
Эти же переменные привязаны к элементам управления на визуализации (кнопкам, чекбоксам).
При компиляции проекта генерируются предупреждения:
Если я правильно понял, BIT и BOOL это два разных типа. И если в BOOL можно писать, как в отдельный бит, то при записи в BIT ,будет перезаписан весь байт.Код:C0355: A single bit cannot be referenced. A reference to the complete byte will be stored.
Т.е. при нажатии кнопки, привязанной, например, к bVar3, перезапишутся все переменные от bVar0 до bVar7 значением 2#00001000.
Проверить это на данный момент мне не на чем, нет контроллера под рукой. Если кто-нибудь сталкивался, это действительно так? Как можно обойти это ограничение? Или можно игнорировать предупреждения?


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