Коллеги доброго дня ,Прошу не кидать тухлыми яблоками..Вложение 51960
почему не происходит инициализация переменной в цикле FOR?
если инициализирую переменную выше цикла то все нормально работает...
может я что то в синтаксе не понимаю.
Вид для печати
Коллеги доброго дня ,Прошу не кидать тухлыми яблоками..Вложение 51960
почему не происходит инициализация переменной в цикле FOR?
если инициализирую переменную выше цикла то все нормально работает...
может я что то в синтаксе не понимаю.
Максим, судя по предыдущему Вашему вопросу, после END_FOR стоит знак точка с запятой, которого не должно быть.
А так надо смотреть в отладке по шагам, почему не происходит инициализация.
Подскажите, пожалуйста, как убрать букву "М". И что она означает?
Недавно тут задавали такой вопрос, к сожалению, не могу найти.
Добрый день!
Пытаюсь реализовать функцию инвертирования входов ПЛК 210 с помощью переключателей в веб визуализации. Сама функция выглядит следующем образом:
Вложение 52114
aInvRs_DI (массив структур для панельки на экране)
aInvRs_DI[16].xButt - переменная переключателя
aInvRs_DI[16].dwColorBrick - переменная смены цвета индикатора
Вызов функции из программы выглядит так
TargetVars.stRightSide.xDi16:=funInvers(TargetVars .stRightSide.xDi16,aInvRS_DI[16].xButt,Color =>aInvRS_DI[16].dwColorBrick);
при компиляции выдает предупреждение:
'Application.TargetVars.stRightSide.xDi16' - не корректный объект для присваивания", вообще всё работает, как задумано. И если заменить таргет переменную на глобальную переменную, то выдаст то же самое предупреждение, а если задать переменную из plc_prg, то предупреждение отсутствует.
А вопрос вот собственно в чем: Насколько критично это предупреждение и почему оно возникает? Если оставить таргет переменную или глобальную какие могут быть последствия?
Добрый день.
'Application.TargetVars.stRightSide.xDi16' - эта переменная, значение которой зависит только от состояния соответствующего дискретного входа.
Не очень понятно, что вы ожидаете, присваивая туда какое-то значение.
DenisV, насколько я помню, функция может иметь только одну выходную переменную - это сама функция (пусть специалисты меня поправят). У вас же выходных переменных - две. Хотя, я сам пробовал в функции дополнительно изменять глобальную переменную (естественно в вызове функции никакие выходные переменные не указывал) - всё работало как надо и не было ошибок.
Возможно, Вам более подошел бы функциональный блок.
Поправляю - такая возможность (VAR_OUTPUT для функций) появилась уже во второй редакции МЭК 61131-3.Цитата:
насколько я помню, функция может иметь только одну выходную переменную - это сама функция (пусть специалисты меня поправят).
В CODESYS V3.5 это поддержано (а вот в CoDeSys V2.3 - поддержано не было).
https://help.codesys.com/webapp/_cds...tional-outputs
Евгений, спасибо за информацию. Уточните, а с какого сервис пака у функции появились дополнительные выходы, а то "вторая редакция" многим, наверное, ничего не говорит?