Вариант 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 Написать программу, загрузить и проверить в работе. Ошибки исправить.