Добрый день!
Помогите разобраться с тем, как правильно обращаться к переменным типа var_in_out в функциональных блоках.
Создал проект, в котором прописал три переменные: di_1 - первый вход контроллера, dq_1 - первый выход контроллера, set - битовая переменная передаваемая с панели СП270.
Создал функциональный блок (ФБ), в котором 1 вход, 1 выход и 1 вход-выход.
Переменную set завел на вход-выход.
При компилировании выдает ошибку о том, что Параметру 'VAR_IN_OUT' требуется переменная с доступом по записи
Сам проект (var1) прикрепил к сообщению.
Далее в вел программу локальную переменную ss, которой перед вызовом ФБ присваиваю значение переменной set. Потом вызываю ФБ куда на вход-выход завожу ss, потом присваиваю set значение ss.
Все компилируется и работает. Измененный проект (var2) тоже прикрепил к сообщению.
Но остался вопрос, почему я не могу записывать новое значение в переменную set используя ФБ со входом типа var_in_out?
Аналогичное предположение я сделал сразу как только у меня не получилось использовать переменную в области ModBus. Более того предполагаю, что переменные определяемые в конфигураторе ПЛК (или ссылающиеся на адреса описанные в конфигураторе) использовать как "VAR_IN_OUT" нельзя.
Вероятно, все дело в принципе обращения (чтения/записи) в эти переменные.
У меня похожая ситуация.
Имеется переменная Х байтовая определенная в регистрах ModBus для связи с СП270. Для того чтоб при выключении панели (панель мастер по rs232) данные не терялись в ПЛК я эту переменную Х объявил RETAIN. После этого создал ФБ с переменной VAR_IN_OUT и назначил Х на этот вход. Компилятор ошибку не выдал и проект я еще не заливал в ПЛК. Вот наткнулся в форуме на эту тему. И теперь засомневался будет ли работать моя прога?