Скачать презентацию SFC В cреде Co De Sys 2 3 Скачать презентацию SFC В cреде Co De Sys 2 3

SFC.pptx

  • Количество слайдов: 37

SFC В cреде Co. De. Sys 2. 3. 9 SFC В cреде Co. De. Sys 2. 3. 9

2 Язык SFC Язык последовательных функциональных схем SFC (Sequential Function Chart), использующийся совместно с 2 Язык SFC Язык последовательных функциональных схем SFC (Sequential Function Chart), использующийся совместно с другими языками (обычно с ST и IL), является графическим языком, в котором программа описывается в виде схематической последовательности шагов, объединенных переходами. Язык SFC построен по принципу, близкому к концепции конечного автомата, что делает его одним из самых мощных языков программирования стандарта IEC 61131 -3.

3 Язык SFC Наиболее простым и естественным образом на языке SFC описываются технологические процессы, 3 Язык SFC Наиболее простым и естественным образом на языке SFC описываются технологические процессы, состоящие из последовательно выполняемых шагов, с возможностью описания нескольких параллельно выполняющихся процессов, для чего в языке имеются специальные символы разветвления и слияния потоков (дивергенции и конвергенции, в терминах стандарта IEC 61131 -3). Как и любому другому языку, SFC свойственны некоторые недостатки. Хотя SFC может быть использован для моделирования конечных автоматов, его программная модель не совсем удобна для этого. Это связано с тем, что текущее состояние программы определяется не переменной состояния, а набором флагов активности каждого шага.

4 Пример программы на языке SFC 4 Пример программы на языке SFC

5 Язык SFC - это графический язык, который позволяет описать хронологическую последовательность различных действий 5 Язык SFC - это графический язык, который позволяет описать хронологическую последовательность различных действий в программе. Для этого действия связываются с шагами (этапами), а последовательность работы определяется условиями переходов между шагами.

6 Шаг SFC POU состоит из набора шагов, связанных переходами. Существуют 2 вида шагов: 6 Шаг SFC POU состоит из набора шагов, связанных переходами. Существуют 2 вида шагов: Шаг простого типа (упрощенный SFC) может включать единственное действие. Графический флажок (небольшой треугольник в верхнем углу шага) показывает, пустой шаг или нет. МЭК шаг (стандартный SFC) связан с произвольным числом действий или логических переменных. Связанные действия располагаются с правой стороны от шага.

7 Действие может содержать список инструкций на IL или ST, схемы на FBD или 7 Действие может содержать список инструкций на IL или ST, схемы на FBD или LD, или снова схемы на SFC. При использовании простых шагов действие всегда связывается с этим шагом. Помимо основного действия, шаг может включать одно входное и одно выходное действие. Действия МЭК шагов показаны в Организаторе Объектов, непосредственно под вызывающей их POU. Новые действия добавляются командой главного меню 'Проект' 'Добавить действие'. Вы можете сопоставить одному шагу до 9 действий.

8 Входной и выходной шаг В шаг можно добавить входное и выходное действие. Входное 8 Входной и выходной шаг В шаг можно добавить входное и выходное действие. Входное действие выполняется один раз при активизации шага, выходное - при деактивизации. Шаг, который имеет входное действие, обозначается буквой "Е" в левом нижнем углу, шаг с выходными действиями - буквой "Х" в правом нижнем углу. Входные и выходные действия могут описываться на любом языке. Для того, чтобы отредактировать входное или выходное действие, надо дважды щелкнуть мышкой в соответствующем углу шага. Пример простого шага с входным и выходным действиями:

9 Переход и условие перехода Между шагами находятся так называемые переходы. Условием перехода может 9 Переход и условие перехода Между шагами находятся так называемые переходы. Условием перехода может быть логическая переменная или константа, логический адрес или логическое выражение, описанное на любом языке. Условие может включать несколько инструкций, образующих логический результат, в виде ST выражения (например (i<= 100) AND b) либо на любом другом языке. Условие не должно содержать присваивания, вызова программ и экземпляров функциональных блоков!

10 Активный шаг После вызова SFC POU начальный шаг (шаг, выделенный двойной рамкой) выполняется 10 Активный шаг После вызова SFC POU начальный шаг (шаг, выделенный двойной рамкой) выполняется первым. Шаг, выполняемый в данный момент, называется активным. Действия, связанные с активным шагом, выполняются один раз в каждом управляющем цикле. В режиме online активные шаги выделяются синим цветом. Следующий за активным шагом шаг станет активным, только когда условие перехода к этому шагу примет значение TRUE. В каждом управляющем цикле будут выполнены действия, содержащиеся в активных шагах. Далее проверяются условия перехода, и, возможно, уже другие шаги становятся активными, но выполнятся они будут уже в следующем цикле.

11 Шаг МЭК В отличие от упрощенного SFC МЭК шаги могут включать несколько действий 11 Шаг МЭК В отличие от упрощенного SFC МЭК шаги могут включать несколько действий (до девяти). Действия МЭК шагов описываются отдельно от них и могут неоднократно использоваться в пределах данного POU, для чего их надо связать с шагом с помощью команды главного меню "Дополнения" "Связать действие". Для того чтобы использовать шаги с МЭК действиями, необходимо установить опцию "Дополнения" "Использовать МЭК-шаги" и подключить к проекту специальную библиотеку lecsfc. lib.

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

13 Классификаторы действий МЭК шага N Не сохраняемое R Внеочередной Сброс S Установка Ограниченное 13 Классификаторы действий МЭК шага N Не сохраняемое R Внеочередной Сброс S Установка Ограниченное по L времени D Отложенное P Импульс Сохраняемое и SD отложенное Отложенное и DS сохраняемое Сохраняемое и SL ограниченное по времени Действие активно в течение активности шага Деактивация действия Действие активно вплоть до сброса Действие активно в течение указанного времени, но не дольше времени активности шага Действие активируется по прошествии указанного времени, если шаг еще активен и продолжает быть активным. Действие выполняется один раз, если шаг активен Действие активно после указанного времени до сброса Действие активно после указанного времени, если шаг еще активен, вплоть до сброса Активно после указанного Классификаторы L, D, SD, DS, SL требуют указания временной константы (например "L T#5 s") или переменной типа в формате TIME.

14 МЭК шаг 14 МЭК шаг

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

16 Параллельные ветви Две и более ветви SFC могут быть параллельными. Каждая параллельная ветвь 16 Параллельные ветви Две и более ветви SFC могут быть параллельными. Каждая параллельная ветвь должна начинаться и заканчиваться шагом. Параллельные ветви могут содержать альтернативные ветви и другие параллельные ветви. Параллельная ветвь наносится двойной горизонтальной линией (параллельное начало) и заканчивается двойной горизонтальной линией (конец параллели) или переходом на произвольный шаг. Если шаг активен, условие перехода после этого шага истинно и за этим переходом следуют параллельные ветви, то активируются первые шаги этих ветвей (см. активные шаги ). Эти ветви выполняются параллельно другу. Шаг, находящийся после параллельных ветвей, становится активным только тогда, когда все предыдущие шаги активны и условие перехода истинно.

17 Переход на произвольный шаг - это соединение на шаг, имя которого указано под 17 Переход на произвольный шаг - это соединение на шаг, имя которого указано под знаком "jump". Такие переходы нужны для того, чтобы избежать пересекающихся и идущих вверх соединений.

18 Графический редактор SFC 18 Графический редактор SFC

19 Шаг-переход (сверху) С помощью этой команды вы можете вставить шаг, следующий за переходом, 19 Шаг-переход (сверху) С помощью этой команды вы можете вставить шаг, следующий за переходом, перед выделенным блоком.

20 Шаг-переход (снизу) С помощью этой команды вы можете вставить шаг, следующий за переходом, 20 Шаг-переход (снизу) С помощью этой команды вы можете вставить шаг, следующий за переходом, после выделенного блока.

21 Альтернативная ветвь (справа) Вставляет альтернативную ветвь вправо от выделенного блока. Для этого выделенный 21 Альтернативная ветвь (справа) Вставляет альтернативную ветвь вправо от выделенного блока. Для этого выделенный блок должен начинаться и заканчиваться переходом. После выполнения этой команды новая ветвь состоит только из одного перехода.

22 Альтернативная ветвь (слева) Вставляет альтернативную ветвь влево от выделенного блока. Для этого выделенный 22 Альтернативная ветвь (слева) Вставляет альтернативную ветвь влево от выделенного блока. Для этого выделенный блок должен начинаться и заканчиваться переходом. После выполнения этой команды новая ветвь состоит только из одного перехода.

23 Параллельная ветвь (справа) Вставляет параллельную ветвь вправо от выделенного блока. Для этого выделенный 23 Параллельная ветвь (справа) Вставляет параллельную ветвь вправо от выделенного блока. Для этого выделенный блок должен начинаться и заканчиваться шагом. После Выполнения этой команды новая ветвь состоит только из одного шага.

24 Параллельная ветвь (слева) Вставляет параллельную ветвь влево от выделенного блока. Для этого выделенный 24 Параллельная ветвь (слева) Вставляет параллельную ветвь влево от выделенного блока. Для этого выделенный блок должен начинаться и заканчиваться шагом. После Выполнения этой команды новая ветвь состоит только из одного шага.

25 Безусловный переход Вставляет произвольный безусловный переход (jump) в конец ветви, к которой принадлежит 25 Безусловный переход Вставляет произвольный безусловный переход (jump) в конец ветви, к которой принадлежит выделенный блок.

26 Переход – безусловный переход Данная команда вставляет переход вместе со следующим после него 26 Переход – безусловный переход Данная команда вставляет переход вместе со следующим после него произвольным переходом (jump) в конец Выбранной Параллельной ветви.

27 Добавить входное дейсвтие Добавляет входное действие в шаг. Такое действие выполняется только один 27 Добавить входное дейсвтие Добавляет входное действие в шаг. Такое действие выполняется только один раз при активации шага и описывается на любом из языков МЭК. Шаг с Входным Действием имеет букву "E" в левом нижнем углу.

28 Добавить выходное действие Добавляет выходное действие в шаг. Такое действие выполняется только раз 28 Добавить выходное действие Добавляет выходное действие в шаг. Такое действие выполняется только раз при деактивации шага и описывается на любом из языков МЭК. Шаг с входным действием имеет букву "X" в правом нижнем углу.

29 Метка параллельных ветвей Для того чтобы связать метку с параллельной ветвью, нужно выбрать 29 Метка параллельных ветвей Для того чтобы связать метку с параллельной ветвью, нужно выбрать переход перед разветвлением и выполнить команду "Добавить метку параллельных ветвей". По умолчанию параллельная ветвь получит имя, состоящее из слова "Parallel" и порядкового номера. Это имя можно заменить на требуемое.

30 Действие переход Действие первого шага или условие перехода выделенного блока выводятся в окне 30 Действие переход Действие первого шага или условие перехода выделенного блока выводятся в окне редактора того языка, на котором написан данный переход или шаг. Если же действие или переход не описаны, то появится диалоговое окно, в котором можно выбрать один из языков. Обратите внимание, что условие, заданное в окне редактора, имеет превосходство над условием, заданным непосредственно рядом с переходом. Пример: здесь условие i>100 не выполняется, поэтому условие перехода FALSE, несмотря на то, что рядом с переходом задано TRUE!

31 Атрибуты шага Вы можете воспользоваться тремя полями ввода в этом окне. В поле 31 Атрибуты шага Вы можете воспользоваться тремя полями ввода в этом окне. В поле Мин. время введите минимально возможное время в активности шага. В поле Макс. время должно стоять максимально возможное время активности шага. Заметим, что вводить можно либо константы в формате Time (например, T#3 s), либо переменные типа Time.

32 Редактор SFC в online режиме 32 Редактор SFC в online режиме

33 Пример программы на языке SFC № 1 33 Пример программы на языке SFC № 1

34 Пример программы на языке SFC № 2 34 Пример программы на языке SFC № 2

35 Пример программы на языке SFC № 3 35 Пример программы на языке SFC № 3

36 Пример программы на языке SFC № 4 36 Пример программы на языке SFC № 4

Конец Каждый настоящий программист подтвердит, что при помощи десяти пальцев на руках можно сосчитать Конец Каждый настоящий программист подтвердит, что при помощи десяти пальцев на руках можно сосчитать не только до 10, но и до 1024!