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

Тема: Язык SFC переход на Init

  1. #1

    По умолчанию Язык SFC переход на Init

    Здравствуйте. Пишу основную программу на SFC. Есть набор шагов от Step0 - Step10. При нажатии кнопки сброс (reset := TRUE) нужно вернуться на шаг Init,
    т. е. в начало программы. Как это проще сделать, что бы в каждом шаге не рисовать альтернативный шаг с проверкой условия reset и безусловным переходом на Init?
    Есть ли переменная (типа Step0.x) или функция принудительного перехода на шаг Init?

  2. #2

    По умолчанию

    Цитата Сообщение от Антон_Б Посмотреть сообщение
    Здравствуйте. Пишу основную программу на SFC. Есть набор шагов от Step0 - Step10. При нажатии кнопки сброс (reset := TRUE) нужно вернуться на шаг Init,
    т. е. в начало программы. Как это проще сделать, что бы в каждом шаге не рисовать альтернативный шаг с проверкой условия reset и безусловным переходом на Init?
    Есть ли переменная (типа Step0.x) или функция принудительного перехода на шаг Init?
    Для этого Вам понадобится:
    1) у Вашего POU объявить входную переменную SFCInit (или SFCReset) типа BOOL;
    2) Зайти в настройки проекта
    SfcInitSettings.png
    3) И отметить одну из переменных SFCInit или SFCReset.
    SfcInitVariables.png
    Разница между ними:
    3.1) До тех пор, пока переменная SFCInit равна TRUE ФБ будет "висеть" на шаге Init, но шаг Init не будет выполняться
    т.е. чтобы сбросить ФБ нужно будет выполнить приблизительно следующее:
    Код:
    IF m_xNeedToInitSfc THEN
    	// Сбрасываю FB на шаг Init
    	m_fb_SfcInitTest.SFCInit:= TRUE;
    	m_fb_SfcInitTest();
    	// Разрешаю дальнейшую работу ФБ
    	m_fb_SfcInitTest.SFCInit:= FALSE;
    	
    	m_xNeedToInitSfc := FALSE;
    END_IF
    3.2) До тех пор, пока переменная SFCReset равна TRUE ФБ будет "висеть" на шаге Init, и шаг Init будет выполняться
    Т.е. значение этой переменной можно обнулить уже на шаге Init
    Например в теле программы делаем так:
    Код:
    IF m_xNeedToResetSfc THEN
    	// Сбрасываю FB на шаг Init
    	m_fb_SfcInitTest.SFCReset := TRUE;
    	m_xNeedToResetSfc := FALSE;
    END_IF
    а уже внутри Init так:
    Код:
    SFCReset := FALSE;
    Архив проекта с обоими вариантами реализации прикладываю.
    На визуализации кнопки "ResetSfc" и "InitSfc" выполняют описанные выше действия.
    Вложения Вложения
    Последний раз редактировалось Осинский Алексей; 19.03.2018 в 15:58.
    OSCAT.ru читать стандарты и статьи по автоматизации на русском без регистрации и СМС

  3. #3

    По умолчанию

    Спасибо, добрый человек.

  4. #4

    По умолчанию

    А можно ли переходить на какой - либо шаг SFC из ST пограммы типа JUMP Step7 ?

  5. #5

    По умолчанию

    Цитата Сообщение от Антон_Б Посмотреть сообщение
    А можно ли переходить на какой - либо шаг SFC из ST пограммы типа JUMP Step7 ?
    Зачем это понадобилось?
    SFC как раз удобен тем, что все переходы заранее прописаны и видны на диаграмме.
    OSCAT.ru читать стандарты и статьи по автоматизации на русском без регистрации и СМС

  6. #6

    По умолчанию

    Согласен. Хотел упростить "картинку" ;-)

  7. #7

    По умолчанию

    Цитата Сообщение от Антон_Б Посмотреть сообщение
    Согласен. Хотел упростить "картинку" ;-)
    Такое упрощение привело бы к сложностям отладки.
    Мы видим картинку, а работает она совсем не так, как нарисована

    Я не совсем уверен, что под Вашу задачу подойдет, но в SFC для организации программы есть "макросы" (по сути набор шагов SFC, которые отображаются как один блок).
    Макрос должен начинаться с шага и заканчиваться переходом
    SfcMacro.png
    Вход и выход из макроса осуществляются кнопками на панели инструментов (обвел их рамкой).
    Последний раз редактировалось Осинский Алексей; 19.03.2018 в 17:50.
    OSCAT.ru читать стандарты и статьи по автоматизации на русском без регистрации и СМС

Похожие темы

  1. язык St
    от жекон в разделе ПЛК1хх
    Ответов: 13
    Последнее сообщение: 12.08.2017, 20:00
  2. Ответов: 1
    Последнее сообщение: 04.07.2014, 13:25
  3. Овен МВ110-8ас проблема с командой INIT
    от Lonely Spirit в разделе Мх110
    Ответов: 2
    Последнее сообщение: 15.04.2013, 08:06
  4. Овен МВ110-8ас проблема с командой INIT
    от Lonely Spirit в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 15.04.2013, 08:06
  5. язык il
    от iman в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 10.08.2010, 11:36

Ваши права

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