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

Тема: Программа для ПЛК на языке SFC

  1. #1

    По умолчанию Программа для ПЛК на языке SFC

    В исходном состоянии все клапаны закрыты, а смеситель 5 выключен.
    Когда аппарат пустой и нажимается кнопка "Пуск", открывается клапан 1 и
    первая жидкость заполняет аппарат до уровня "b". Клапан 1 закрывается,
    включается мешалка 5 и открывается клапан 2 подачи концентрированной
    жидкости. Через 3с дополнительно открывается клапан 3. После этого через 5с закрываются клапаны 2 и 3, выключается смеситель 5 и открывается клапан 4. Смесь выливается из аппарата. После достижения уровня "a" - цикл повторяется.

    Можете проверить программу, может у меня где то ошибки.
    Вложения Вложения
    • Тип файла: rar ПЗ.rar (41.8 Кб, Просмотров: 126)

  2. #2

    По умолчанию

    с расширенным не работал.
    Работал с простым (без МЭКшагов).
    Суть Вы уловили правильно.
    Единственно не увидел где Вы таймер взводите.
    В SFC если выбрать шаг и левой кнопкой выбрать опции шага есть параметры минимальное и максимальное время. Можно просто задать минимальное время T#3s и на следующий шаг переход случится не ранее, чем через 3 сек.

  3. #3

    По умолчанию

    Step3.t>T#3S
    step6.t>T#5s -- условия перехода в следующий шаг, это системная переменная шага, можно обходиться без отдельного таймера

  4. #4

    По умолчанию

    Всё пропало!
    В версии 2.3.9.30 (а может и раньше) все не так.
    Свойств шагов уже нет, зато есть булевая переменная с именем шага, и переменная с прочерком в начале, типа _STEP. Обе трушные во время активности шага.
    А время шага содержится в _timeSTEP (вместо STEP - название), и появляется только в случае добавления времени в атрибуты.

  5. #5
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,823

    По умолчанию

    Цитата Сообщение от VitVir Посмотреть сообщение
    Всё пропало!
    В версии 2.3.9.30 (а может и раньше) все не так.
    Свойств шагов уже нет, зато есть булевая переменная с именем шага, и переменная с прочерком в начале, типа _STEP. Обе трушные во время активности шага.
    А время шага содержится в _timeSTEP (вместо STEP - название), и появляется только в случае добавления времени в атрибуты.
    Ни чего не пропало.
    В кодесис программы можно писать либо в упрощенном SFC либо с использованием МЭК шагов.
    Цитата Сообщение от vasylye Посмотреть сообщение
    Step3.t>T#3S
    step6.t>T#5s -- условия перехода в следующий шаг, это системная переменная шага, можно обходиться без отдельного таймера
    будет работать именно при использовании SFC с МЭК шагами.
    В отличие от упрощенного SFC МЭК шаги могут включать несколько действий (до девяти).

    Действия МЭК шагов описываются отдельно от них и могут неоднократно использоваться в пределах данного POU, для чего их надо связать с шагом с помощью команды главного меню "Дополнения" "Связать действие".

    Кроме действий, с шагом можно связывать логические переменные.

    С помощью так называемых классификаторов, действия и логические переменные могут активироваться и деактивироваться, возможно, с задержкой времени.

    Например: действие может продолжать работу, даже если запустивший его шаг утратил активность; с помощью классификатора S (установка) можно программировать параллельные процессы и т.д.
    Для того чтобы использовать шаги с МЭК действиями, необходимо установить опцию "Дополнения" "Использовать МЭК-шаги" и подключить к проекту специальную библиотеку IECSFC.lib.

    А вообще нужно справку по кодесис читать внимательно
    Неявные переменные в SFC
    В SFC существуют неявно объявленные переменные, которые могут быть полезны для определения состояния шагов, действий и контроля времени активности шагов. Все они устанавливаются в начале каждого рабочего цикла.

    Для МЭК шагов данные переменные поддерживаются библиотекой iecsfc.lib (структуры SFCStepType и SFCActionType), автоматически включаемой в проект. Для упрощенного SFC неявные переменные реализованы непосредственно в CoDeSys.

    Логические переменные активности шагов:

    Для МЭК шагов определены две переменные: StepName.x и StepName._x.
    Переменная StepName.x содержит признак активности шага в текущем цикле.
    Переменная StepName._x содержит признак активности шага в следующем цикле. Если StepName.x=TRUE, то шаг будет выполняться в текущем цикле. Если StepName._x=TRUE и StepName.x=FALSE, то шаг будет выполняться в следующем цикле. Соответственно значение StepName._x будет скопировано в StepName.x в начале цикла.

    Для простых шагов определены аналогичные по смыслу переменные с именами StepName и _StepName. Первая имеет значение ИСТИНА, когда соответствующий шаг активен, и ЛОЖЬ, когда неактивен.

    Для МЭК действий переменная: ActionName.x приобретает значение ИСТИНА, как только действие становится активным. (Не используйте переменную ActionName._x она служит для внутренних целей).

    Переменные контроля времени активности шагов (TIME):

    С помощью следующих неявных переменных можно узнать время, истекшее с момента получения шагом активности. Для их использования необходимо задать минимальное время активности в конфигурации шага.

    Для МЭК шагов определена переменная StepName.t (StepName._t служит для внутренних целей).

    Для простых шагов соответствующая переменная называется _timeStepName. Ее необходимо явно объявить, например "_timeStep1: TIME;"

    Для МЭК действий неявные переменные контроля времени активности недоступны.

    Неявные переменные доступны в любом действии или переходе SFC. Кроме того, к ним разрешен доступ даже из другой программы.

    Например: boolvar1:=sfc1.step1.x; Где step1.x - неявная логическая переменная, представляющая состояние МЭК шага step1 в POU sfc1.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Похожие темы

  1. Цикл на языке ST
    от servo в разделе ПЛК1хх
    Ответов: 17
    Последнее сообщение: 06.06.2019, 16:00
  2. Задержка на языке ST
    от burn в разделе ПЛК1хх
    Ответов: 14
    Последнее сообщение: 13.10.2017, 11:38
  3. LD. программирование ПЛК на языке LD
    от 82Andrey в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 23.11.2012, 16:13
  4. Вызов POU на языке LD
    от ZPavel в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 28.02.2012, 00:55
  5. Несколько AND и OR в языке ST
    от Wanted в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 18.11.2008, 15:19

Ваши права

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