PDA

Просмотр полной версии : неявные переменные в Sfc



sfera
07.06.2010, 11:33
Всем день добрый!

Вопрос: как прописать в SFC правильно неявную переменную типа "ИмяШага.t"?
после шага пишу условие перехода ИмяШага.t>t#5s,
но при компиляции указываются ошибки 4001 и 4120,
подскажите в чем проблема ...

4120: needs structure variable
"Слева от точки должен быть идентификатор структуры, экземпляра, функционального блока или имя
функции либо программы"
4001: "Variable '<Name>' not declared"
Объявите переменную локально или глобально.

Малышев Олег
07.06.2010, 12:58
По-моему надо писать имя_SFC_программы.ИмяШага.t

sfera
07.06.2010, 18:55
... справился, но вопросы остались...
оказалось (и где бы про это почитать?), что в упрощенном SFC (т.е. без "взведенной" опции "Extras"/"Use IEC-Steps") не удается прописать условие перехода в виде _timeStep.t>t#XXs, результат ошибка 4120...

но и при "взведенной" опции "Extras"/"Use IEC-Steps" все равно не удастся прописать условие перехода в "стиле SFC МЭК" Step.t>t#XXs по отношении к шагу, созданному в упрощенном SFC (т.е.без "взведенной" опции "Extras"/"Use IEC-Steps"), результат тот же ...

а получилось прописать условие перехода, только по отношению к шагу, созданному в SFC МЭК (т.е. при "взведенной" опции "Extras"/"Use IEC-Steps"), и при этом прогой были предложены варианты, как Step.t>t#XXs, так и Step._t>t#XXs .

Игорь Петров
08.06.2010, 12:07
Это все есть в мануале! Подробнее:

Упрощенному SFC хватает примитивного исполнителя. На каждый шаг уходит всего 2 байта. Таймеров никаких тянуть не нужно. Есть признак активности с именем шага и все. Контрольная структура шага отсутствует (отсюда ругательства компилятора, при попытке в нее залезть).

Включаем поддержку МЭК шагов и создаем новый POU на SFC. Вот теперь CoDeSys соображает, что на каждый шаг нужно заводить большую структуру признаков всевозможных действий, включая задержанные по времени и т.п. + нужно включать неявные блоки, контролирующие время активности. Теперь можно и .t и пр.

Никто не смешивает упрощенный и полный SFC. Это глобальный выбор. Если человек освоил стандартный SFC, то упрощенный он применять уже не станет.