Показано с 1 по 8 из 8

Тема: Вопрос по SFC?

  1. #1
    незарегистрированный_ОЛЕГ
    Гость

    По умолчанию Вопрос по SFC?

    День добрый.Интересует такой вопрос,есть глобальная переменная дискретных вход контроллера к примеру I_1, к нему привязана кнопка стоп без фиксации.В проекте нескольео программ(SFC,ST) и главная PLC_PRG на ST.Как в PLC_PRG сделать так,что при I_1=TRUE в программа SFC перешла на определленный шаг?Заранее благодарен.

  2. #2

    По умолчанию

    другие программы вызываются в PLC_PRG? Что мешает в качестве перехода сделать условие I_1=true?

  3. #3
    незарегистрированный
    Гость

    По умолчанию

    В PLC_PRG вызывается 3 программы-одна связана с ИП320,другая с ТРМ202,а третья SFC.Дело в том что на SFC написан конвеер там датчики оптические потом пневматика стартует и так далее порядка 50 шагов,раньше,когда было шагов 10 просто делал Jump По условию I_1=TRUE.Назначение I_1 это возвращение всей системы на исходку на шаг STOP ,так сказать аварийное отключение.Можно ли как-нить из PLC_PRG прописать условие потипу IF I_1:=TRUE THEN (В программе на SFC перейти на шаг STOP);Пока PLC_PRG у меня выглядит так:

    Klapana();
    TRM_202();
    Panel();

  4. #4

    По умолчанию

    то ,что у вас написано на SFC тоже программа? если да, то достаточно предусмотреть в ней некую входную переменную (ей присваиваем значение вашего I_1), при активации которой извне (в данном случае PLC_PRG) будет происходить переход на нужный вам шаг (скорее всего этот шаг будет Init, верно?). незабудьте только предусмотреть сброс всех внутренних переменных, таймеров и т.д. для корректной работы вашего алгоритма при последующих итерациях.

  5. #5
    незарегистрированный
    Гость

    По умолчанию

    Благодарю за ответ,но можно поподробнее написать как это будет на ST.К примеру программа на SFC называется Klapana,а шаг на который надо перейти STOP?Или надо в самой программе SFC что-то менять.Извеняюсь,если задаю глупые вопросы-только начинаю изучать Codesys.

  6. #6

    По умолчанию

    н5 понOтно, что 2ам не понятно:-)
    В п@ог@амме "клапана" вам нужно добавить пе@еEод на шаг "Aтоп". УAловием для этого будет являтьAя @авенAтво true некой вEодной (var input) пе@еменной. Этого можно не делать, а A@азу п@илепить вашу вEодную пе@еменную, но я п@едпочитаю Aоздавать зак@ытые pou,
    Для удобAтва отладки и поAледующего Aоп@овождения. Затем вы вызываете ваш pou "клапана" в plc_prg подобным об@азом:
    Кlapana("Aозданная вами вEодная пе@еменная":=i_1)
    Ну вот и вAе( иAEодя из того наAколько я понял задачу)


    .



    ,.,

  7. #7

    По умолчанию

    См. в мануале 'Флаги SFC'.
    Внутри программы на SFC объявляем bool переменную c именем SFCInit. Во внешней (в главной) программе ставим ее в 1 по кнопке, вызываем SFC. Она прыгает на Инит и стоит там, пока переменная будет сброшена в 0.

  8. #8

    По умолчанию

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    См. в мануале 'Флаги SFC'.
    Внутри программы на SFC объявляем bool переменную c именем SFCInit. Во внешней (в главной) программе ставим ее в 1 по кнопке, вызываем SFC. Она прыгает на Инит и стоит там, пока переменная будет сброшена в 0.
    Не забывая о маленьком нюансе...
    До тех пор, пока SFCInit = TRUE, даже первый шаг последовательности (Init) выполняться не будет.
    Если в нем описаны какие-то инициализации, приведение оборудования в безопасное состояние и т.п., то прийдется это все скопировать в код главной программы и там вызывать по проверке условия SFCInit = TRUE.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •