Вариант 3
Для устранения конфликтов используют способ маркировки
действий (или групп) с помощью меркеров (флагов). Для этого по специальному
алгоритму разбивают весь процесс на группы и присваивают каждой группе свой
меркер. Все действия внутри группы связаны логикой AND с меркером.
В самом простом
случае меркер присваивают каждому шагу устройства. Количество битовых меркеров
определяется количеством шагов работы устройства. Например, для 8 шагов можно
использовать переменную память: от M10.0 до M10.7.
5.1 Исходная позиция в
соответствии с рис. 1.
-Выталкивающий цилиндр 1
выдвинут: датчик 1В1 – активен.
-Поворотный цилиндр 3 в позиции приёма детали: датчик 3В1 – активен;
-Вакуумный модуль 2.0–
выключен.
Задание.
Первым шагом поворотный цилиндр движется от магазина в сторону сброса
детали, освобождая линию.
Цилиндр 1.0 выталкивает деталь из стапеля-магазина, а поворотный цилиндр
3.0 с помощью вакуумного устройства
переносит деталь от магазина к позиции сброса.
Устройство имеет два
режима: одиночный и автоматический. В одиночном режиме происходит выталкивание
и перенос только одной детали. В автоматическом режиме процесс повторяется до
тех пор пока не закончатся детали в магазине или будет нажата кнопка «стоп»
S2 или будет нажата аварийная
кнопка Em_Stop.
При нажатии аварийной кнопки Em_Stop происходит остановка работы устройства. Для возврата в исходное
положение нажать кн. S4 (Cancel).
Горит лампа P1, если достигнута исходная позиция приводов и в магазине имеются
детали.
Горит лампа P2, если не достигнута исходная позиция приводов.
Горит лампа P3, если магазин пустой.
5.2 Структура программы.
Таблица.
Nr |
Адрес |
Пояснение |
1 |
OB100 |
Стартовый блок B100 выполняется однократно при включении режима RUN.
В этом блоке все выходы и переменные устанавливаются в исходную позицию. |
2 |
OB1 |
Организационный блок. Вызов рабочего блока FC1 и блока
сброса FC2. |
3 |
FC1 |
Рабочий блок. Управление устройством. |
4 |
FC2 |
Сбрасывает все переменные Q и M при нажатии кнопки S4 (или при
вытягивании кнопки Em_Stop). |
5.3 Стартовый блок
B100 (такой же, как и в п. 3.3).
5.4 Блок сброса FC2 (такой же, как и в п. 3.4).
Устанавливаются все выходы (Q) и переменные (M) в
исходную позицию с помощью операций RESET, RESET_BF или MOVE с условиями: S4
(Stop).
5.5 Организационный блок OB1(такой же, как и в п. 4.5).
5.6 Рабочий блок FC1. Каждому шагу присвоить
меркер.
Таблица 4.
№ |
Меркер |
Действие |
Условия |
1 |
M10.0 |
Поворотный цилиндр движется
от магазина в позицию сброса (3+) |
Стартовый сигнал(S1
or RS_Start) and исходная позиция приводов and световой датчик В4=0
(деталь имеется) and Em_Stop |
2
|
M10.1 |
Выталкивающий цилиндр
выталкивает деталь (1+) |
3B2 and Em_Stop |
3
|
M10.2 |
Поворотный цилиндр
движется к магазину (3-) |
1B1 |
4
|
M10.3 |
Включить вакуум
(2B1=1) (2+) |
3B1 and Em_Stop |
5
|
M10.4 |
Толкатель задвигается
(Цилиндр 1 выдвигается) (1-) |
2B1 |
6
|
M10.5 |
Поворотный цилиндр
транспортирует деталь в поз. Сброса (3+) |
1B1 and Em_Stop |
7
|
M10.6 |
Выключить вакуум (2-) |
3B2 |
8
|
M10.7 |
Поворотный цилиндр
движется к магазину (3-) |
no2B1 |
Аналитическое описание.
Init_Pos
Init_Pos = 1 , если 1B1 and 3B1 and no B4
P1. Исходная позиция
P1 = 1 , если Init_Pos
P2. Исходная позиция не достигнута
P2 = 1 , если no Init_Pos
P3. Магазин пустой
P3 = 1 , если B4
RS_Start . Автоматический режим
set RS_Start
, если (S1
and S3) and EM_Stop
reset RS_Start,
если S2
or no EM_Stop
M10.0 (3+)
set M10.0 , если (S1 or RS_Start) and Init_Pos and EM_Stop
reset M10.0,
если M10.1
M10.1 (1+)
set M10.1 , если 3B2 and M10.0 and EM_Stop
reset M10.1,
если M10.2
M10.2 (3-)
set M10.2 , если 1B2 and M10.1 and EM_Stop
reset M10.2,
если M10.3
M10.3 (2+)
set M10.3 , если 3B1 and M10.2 and EM_Stop
reset M10.3,
если M10.4
M10.4 (1-)
set M10.4 , если 2B1 and M10.3 and EM_Stop
reset M10.4,
если M10.5
M10.5 (3+)
set M10.5 , если 1B1 and M10.4 and EM_Stop
reset M10.5,
если M10.6
M10.6 (2-)
set M10.6 , если 3B2 and M10.5 and EM_Stop
reset M10.6,
если M10.7
M10.7 (3-)
set M10.7 , если no 2B1 and M10.6 and EM_Stop
reset M10.7,
если 3B1
and M10.7
Цилиндр 1.0
set Y1 (1+), если M10.1
reset Y1 (1-),
если M10.4
Поворотный
цилиндр 3.0 (одинаковые операции логически
складываются)
set Y3 (3+), если M10.0 or M10.5
reset Y3 (3-),
если M10.2 or M10.7
Вакуум - генератор
2.0
set 2M1 (2+), если M10.3
reset 2M1
(2-), если M10.6
5.7 Написать программу, загрузить и проверить в работе.
Ошибки исправить.