PDA

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



Евгений Мотренко
11.12.2007, 18:27
добрый день всем.
возможно ли в языке Sfc выполнить программу один раз и выйти из Pou на последнем шаге (или переходе к Init)?
заранее большое спасибо!!

RV9WFJ
12.12.2007, 08:34
можно в конце поставить пустое действие с выходом False, эффект будет тот же.

Малышев Олег
12.12.2007, 09:32
можно в конце поставить пустое действие с выходом False, эффект будет тот же.

Кроме того есть возможность прервать исполнение программы (переход в начальное состояние), тактировать исполнение, контролировать время исполнения. Это делается через переменные в параметрах программы
в справке см SFCReset,SFCInit и.т.д.

Евгений Мотренко
12.12.2007, 10:46
уточню вопрос.как выйти из Pou после одного циклавыполнения, если Pou написан на Sfc?

Малышев Олег
12.12.2007, 12:19
Цикл выполнения SFC это не правильно. Можно говорить о цикле выполнения состояния SFC. Даже если у Вас все переходы = true сеть из n последовательных состояний будет выполняться n циклов ПЛК. Т.е. по умолчанию (цикл плк=1 мс) n мс.

Прекратить выполнение программы sfc можно установив переменную программы на SFC (важно - не глобальную - а именно локальную) SFCReset в true.

Евгений Мотренко
13.12.2007, 11:50
Спасибо всем!! Зделал с использованием флага Step. Работает как надо

незарегистрированный
13.05.2008, 04:34
Немного запоздало, но ничего.
Вообще все зависит от среды разработки! Если Вы разрабатываете в ISAGraf то завершение проги производится командой GKILL("имя проги").
Если используется, скажем ABB Freelance, то можно указать в свойствах программы переменную, для включения/выключения активного режима работы.
Или на крайняк, если надо, чтобы программа отрабатывала один раз, то в конце всей цепочки поставить невыполнимое условие. Например во Freelance поставить .RESULT:=false; Но этот способ не очень хорош, так как прога остается в оперативной памяти контроллера, НО не работает, а следовательно не занимает ресурсов процессора.