Лабораторные
работы по программированию ПЛК Twido в графической среде разработки Twido Suite
Выполняются на базе программного пакета Twido
Suite, программного
симулятора, интегрированного в Twido Suite, и программируемых контроллеров Twido.
Лабораторная работа 6
Программирование по технологии Grafcet
Цель работы: Составление и отладка программ с
использованием процедур предварительной, последовательностной и пост-обработки,
инструкций активации и деактивации шагов
- Создайте проект с именем "Ваша фамилия_6”
- Изучите раздел программирования на языке Grafcet в справочном пособии.
- В секции №1 реализуйте управление от сигнала %I0.0 системным битом %S21,
реализующим инициализацию начального состояния Grafcet.
- В секцию №2 введите фрагмент Grafcet
с линейной последовательностью шагов 1, 2 и 3 . Переход от первого ко
второму этапу происходит по сигналу %I0.21, от
второго к третьему - по сигналу %I0.22, от
третьего к первому - по сигналу %I0.23
- В секции №3 первую цепь секции определите как начало
секции пост-процессора (признак =*= в спецификации типа цепи Rung: Step post) и введите элементы управления выходом %Q0.8 от сигнала %X1. В
последующих цепях осуществите управление выходами %Q0.2
… %Q0.3 от сигналов %X2 …
%X3 соответственно
- Перед секцией пост-процессора вставьте новую секцию (№3) и
введите фрагмент Grafcet, состоящий из шагов 4 …
7 с альтернативным ветвлением по или
- Перед секцией пост-процессора вставьте новую секцию (№4) и
введите фрагмент Grafcet, состоящий из шагов 8 …
13 с параллельным ветвлением по и. В предыдущей секции задайте переход от
шага 7 к шагу 8.
- После шага 13 организуйте цикл, состоящий из
последовательных шагов 14, 15 и 16. Выход из цикла и переход к шагу №1
задается сигналом %I0.11 = 1.
- Измените условия перехода от шага 14 к 15 и от 15 к 16 на
выдержки времени, реализуемые на таймерах %TM0 и %TM1. Для этого
функциональные блоки таймеров поместите в секцию пост-процессора, а
контакты их выходов в цепи управления соответствующих шагов.
- Переместите функциональные блоки таймеров из секции пост-процессора
в секции соответствующих шагов.
- В секции №1 реализуйте управление от сигнала %I0.0 системным битом %S21,
реализующим инициализацию начального состояния Grafcet.

- В секцию №2 введите фрагмент Grafcet
с линейной последовательностью шагов 1, 2 и 3 . Переход от первого ко
второму этапу происходит по сигналу %I0.21, от
второго к третьему - по сигналу %I0.22, от
третьего к первому - по сигналу %I0.23. Обратите
внимание на то, что цепь с инструкцией активации шага 2 “2–(#)-”
имеет метку спецификации начального шага =*= 1 (Rung:
Ini. step), а все последующие цепи - метку
спецификации начала программы активации/деактивации для очередного шага
Графсета -*- i (Rung:
Start step). В общем случае номера меток в последовательности
записи шагов в программе можно расставлять произвольным образом. Другими
словами, размещение шагов в программе может быть произвольным, а
последовательность их выполнения задается инструкциями активаций
последующих шагов.

- Первую цепь секции №3 определите как начало секции пост-процессора
(признак =*= в спецификации типа цепи Rung: Step post)
и введите элементы управления выходом %Q0.8 от
сигнала %X1. В последующих цепях осуществите
управление выходами %Q0.2 … %Q0.3
от сигналов %X2 … %X3 соответственно.

Проверьте правильность функционирования этих секций,
последовательно включая и отключая входные сигналы %I0.20
… %I0.23. Как функционирует программа при одновременном
включении трех сигналов %I0.21 … %I0.23?
- Перед секцией пост-процессора вставьте новую секцию (№3) и
введите фрагмент Grafcet, состоящий из шагов 4 …
7 с альтернативным ветвлением по или. Обратите внимание на то, что и в
цепи -*- 5, и в цепи -*-6 используется одинаковые инструкции активизации
седьмого шага 7–(#)-.
В предыдущей секции на шаге -*- 3 измените инструкцию повторной
активации шага 1 на переход к шагу 4.

Проверьте правильность функционирования программы после этих
модификаций. Наблюдайте за последовательностью изменения активности шагов в
соответствующей анимационной таблице или дополните секцию пост-процессора
управлением выходами %Q0.4 … %Q0.7
от сигналов %X4 … %X7
соответственно.
- Перед секцией пост-процессора вставьте новую секцию (№4) и
введите фрагмент Grafcet, состоящий из шагов 8 …
13 с параллельным ветвлением по и. В предыдущей секции задайте переход от
шага 7 к шагу 8.


Проверьте правильность функционирования вновь добавленного
фрагмента программы после этих модификаций.
- После шага 13 организуйте цикл, состоящий из
последовательных шагов 14, 15 и 16. Выход из цикла и переход к шагу №1
задается сигналом %I0.11 = 1.
Проверьте последовательное функционирование шагов 14, 15 и
16 в цикле Графсета и возможность выхода из этого цикла.
- Измените условия перехода от шага 14 к 15 и от 15 к 16 на
выдержки времени, реализуемые на таймерах %TM0 и %TM1. Для этого
функциональные блоки таймеров поместите в секцию пост-процессора, а
контакты их выходов в цепи управления соответствующих шагов.
Проверьте последовательное функционирование шагов 14, 15 и
16 в цикле Графсета и возможность выхода из этого цикла.



- Переместите функциональные блоки таймеров из секции
пост-процессора в секции соответствующих шагов.
Проверьте правильность функционирования цикла в этом случае.
Протестируйте задачу на контроллере