PDA

Просмотр полной версии : modbus bool требует переменной с доступом по записи



MichailG
19.03.2025, 05:28
Здравствуйте! Настраиваю сетевой обмен по modbus. Переменные типа Real конфигурируются нормально, а вот с bool возникли проблемы. Есть элемент 8 bits, подэлемент показывает типа BYTE, а его "биты" - bool. Привязываю к 0 каналу переменную типа bool. Codesys 2.3 выдает ошибку "Параметр VAR_IN_OUT ... в ФБ... требует переменной с доступом по записи". Помогите пожалуйста, может какие преобразования нужно сделать?

In_Da_Cher_A
19.03.2025, 06:36
Codesys 2.3 выдает ошибку "Параметр VAR_IN_OUT ... в ФБ...вы можете связно объяснить, что вы делаете и где? без этих многоточий
и второе - прочтите что такое VAR_IN_OUT и объясните, какое он отношение имеет к

сетевой обмен по modbus.?

1exan
19.03.2025, 07:53
Из справки:

"4063
"Параметр 'VAR_IN_OUT' '<имя>' из '<имя>' не может быть использован с битовыми адресами."
Биты не имеют физических адресов. Измените переменную или прямой адрес."

Объявляйте вход VAR_IN_OUT с типом BYTE, внутри ФБ к битам обращайтесь через точку

kondor3000
19.03.2025, 08:19
С таким же успехом можно использовать тип WORD вместо BYTE, в Маске бит до 16 бит можно упаковать (распаковать) через точку.
А вот прямые адреса типа AT%QW3.0 лучше совсем не использовать, а просто дать имя регистру.

johnny0000
20.03.2025, 12:43
Привязываю к 0 каналу переменную типа bool.Как вы это делаете? В конфигурации ПЛК вы можете только дать символьное обозначение "канала" (адрес в памяти вх./вых.), что бы взаимодействовать с ним как с глобальной переменной.


Параметр VAR_IN_OUTИ откуда у вас в конфигурации ссылочные переменные?

Дайте больше информации!