Упражнение S8. Управление манипулятором 3D с помощью операции сдвига ROL

Рис. 1. Манипулятор 3D.

Задание. Вариант 1. Нажимая кнопку «старт» многократно, манипулятор 3D переносит деталь из одной позиции в другую позицию пошагово .Например, из позиции 3 в позицию 4 (т.е. в позиции 3 манипулятор захватывает деталь, а в позиции 4 отпускает). При этом за одно нажатие кнопки манипулятор совершает только один шаг. Например, выдвинется цилиндр 2, при следующем нажатии кнопки «старт» выдвинется цилиндр 3.

После окончания переноса манипулятор так же пошагово возвращается в исходную позицию.

В исходной позиции горит лампа Н1.

Предусмотрена кнопка S4 для сброса всех выходных переменных (Y1 – Y4, M1 - M4), при нажатии которой устанавливаются все переменные на «0», а манипулятор задвигается в исходную позицию.

Рис. 2. Схема устройства. Исходная позиция манипулятора.

Пояснение. Управление содержит конфликты сигналов (см. тему «Конфликты сигналов»). Для исключения встречного сигнала использовать круговой сдвиг (ROL) активного бита в инфослове (MW10), где каждому биту присвоен определенный шаг манипулятора.

Рис 3. Структура многобитового меркера MW10.

Длина операнда MW10 – 16 бит, т.е. максимальное количество шагов тоже может быть 16.

Важным условием управления является то, что одновременно активен только 1 бит, Т.к. первичное значение операнда MW10=0 (все биты равны «0»), то необходимо при запуске контроллера активизировать один бит. Это можно сделать, загрузив в этот операнд число «1» при запуске контроллера (системный бит М0.1 активен только в течении 1 кадра сканирования при включении RUN) с помощью операции копирования MOVE.

Рис 4. Первичная загрузка активного бита.

Круговой сдвиг можно осуществлять с помощью операции ROL.

С помощью команд циклического сдвига можно циклически сдвигать битовый образ параметра IN. Результат присваивается параметру OUT. Параметр N определяет число битовых позиций, на которое осуществляется циклический сдвиг.

-ROR: Циклический сдвиг битового образа вправо

-ROL: Циклический сдвиг битового образа влево.

При использовании многобитовых операций необходимо правильно выбирать формат данных, который должен соответствовать формату данных операнда, с которым производится действие. Т.к. действие производится с инфословом, то форматом данных может быть Word или INT (целые числа со знаком длинной 16 бит).

Рис. 5. Сдвиг активного бита с помощью кнопки S1.

 

Ход работы.

1. Спецификация.

Таблица 1. Используемые элементы и переменные.

Входы

Выходы

S1 – кнопка старт;

B1- B6 – датчики положения цилиндров;

S4 – кнопка сброса всех переменных, н.о.;

EMG – кнопка аварийной остановки, н.з. с фиксатором (вариант 2).

Y1 – электромагнит (моностабильный пнр.), управление цилиндром 1.0;

Y2 – электромагнит (моностабильный пнр.), управление цилиндром 2.0;

Y3 – электромагнит (моностабильный пнр.), управление цилиндром 3.0;

Y4 – электромагнит, управление вакуум - генератором 4.0;

Н1 – лампа исходного положения;

Н2 – аварийная лампа (вариант 2).

Вспомогательные переменные //исключение конфликта сигналов

Биты операнда MW10

 

2. Структура программы.

Таблица 2.

Nr

Адрес

Пояснение

1

OB100

Стартовый блок B100 выполняется в первую очередь один раз при запуске режима RUN.

В этом блоке устанавливаются все привода в исходную позицию, а все переменные сбрасываются на «0».

2

OB1

Из основной программы вызывается без условий рабочий блок FC1

3

FC1

Рабочий блок. Управление устройством.

4

FC2

Блок сброса. Сбрасывает все переменные Q и M при нажатии кнопки S4.

2.1 Стартовый блок B100.

В этом блоке устанавливаются переменные (выходы Q и переменные М) в исходную позицию путем сброса состояния всех электромагнитов на «0» с помощью операции RESET, RESET_BF или MOVE без условий.

Операция RESET_BF производит одновременный сброс (установка на «0») нескольких n битов, начиная с указанного.

Рис. 6. Установка и сброс 8 битов, начиная с адреса Q0.0 (Q0.0; Q0.1 … Q0.7).

2.2 Организационный блок OB1. Организует вызов рабочего блока FC1 без условий и блока FC2 при нажатии кнопки сброса S4. Это традиционная структура разветвленной программы, однако, содержимое блока FC1 и FC2 можно выполнить и в организационном блоке OB1.

Рис. 7. Вызов блоков из основной программы.

2.3 Блок сброса FC2.

Подобно стартовому блоку устанавливает все переменные (выходы Q и переменные М) в исходную позицию путем сброса состояния всех электромагнитов и переменных на «0» с помощью операции RESET, RESET_BF или MOVE при нажатии кнопки S4 (RESET).

 

3. Управление. Приведен пример переноса детали из позиции 3 в позицию 4.

1. Описать работу устройства в буквенно-цифровом виде, где + или – обозначают условно направление движения привода:

Рис. 8. Описание пошаговой работы манипулятора.

 

2. Составить таблицу в соответствии с полученным заданием по переносу детали.

Каждому биту соответствует 1 шаг. При этом первый бит M11.0 соответствует исходному положению, где никаких действий не совершается.

Таблица. Пример шагов манипулятора из позиции «3» в позицию «4» в соответствии с битами переменной MW10.

MW10


MB10

MB11


10.7

10.6

10.5

10.4

10.3

10.2

10.1

10.0

11.7

11.6

11.5

11.4

11.3

11.2

11.1

11.0







2-

3-

4-

3+

1-

3-

4+

3+

2+

1+

0











R





S


Y1






R








S



Y2







R


S


R


S




Y3








R




S





Y4

4. Управление цилиндрами.

5. При программировании необходимо следить за тем, чтобы в программе не было бы одинаковых операций с разными условиями выполнения. Например, выдвижение и задвижение цилиндра 3 на приведенной диаграмме происходит дважды. Необходимо объединить эти две операции с помощью логики «ИЛИ».

6. Возникающие проблемы.

После бита М10.2 следуют пустые биты – необходимо исключить «холостой ход».

Решение: заново загрузить „1“ в операнд MW10.

Рис. 9. Исключение «холостого хода» путем новой загрузки «1».

Однако при этом операция «reset Y1» может оказаться невыполненной, если операция новой загрузки стоит в программном блоке выше указанной операции.

 

4. Электрическая схема. Подключить датчики, кнопки и элементы выхода в произвольном порядке.

Рис. 10. Электрическая схема, предложение.

 

5. Адреса и символы переменных. Заполнить таблицу символов TAGS.

Таблица 7. Добавить адреса переменных.

Символ

Адрес

Комментарий

Входы

1

S1


START, н.о. Кнопка управления

4

S4


RESET, н.о. Устанавливает все переменные (выходы Q и переменные М) на «0»

Приводит устройство в исходную позицию

5

Em_Stop


EM_STOP, н.з. Аварийная кнопка, с фиксатором. Останавливает работу устройства

6

В1


Магнитный датчик. Цилиндр 1, исходное положение

7

В2


Магнитный датчик. Цилиндр 1, выдвинутое положение

8

В3


Магнитный датчик. Цилиндр 2, исходное положение

9

В4


Магнитный датчик. Цилиндр 2, выдвинутое положение

10

В5


Магнитный датчик. Цилиндр 3, исходное положение

11

В6


Магнитный датчик. Цилиндр 3, выдвинутое положение

Выходы

1

Y1


Электромагнит пневмораспределителя. Управление цилиндром 1

2

Y2


Электромагнит пневмораспределителя. Управление цилиндром 1

3

Y3


Электромагнит пневмораспределителя. Управление цилиндром 1

4

Y4


Электромагнит пневмораспределителя. Управление вакуум - генератором

5

H1


Индикатор исходной позиции

6

H2


Горит в аварийном режиме

Переменные, исключение конфликтов сигналов

1

М1

M0.0

Группа 1

2

М2

М0.1

Группа 2

3

М3

M0.2

Группа 3

4

М4

M0.3

Группа 4

 

6. Контроль работы устройства.

В случае возникновения ошибок наблюдать Состояния переменных М и выходов в таблице WATCH.


 

Вариант 2. Нажав кнопку «старт», манипулятор 3D переносит деталь из одной позиции в другую автоматически от начала до конца. Процесс переноса заканчивается в исходной позиции.

Старт устройства может состояться только из исходной позиции манипулятора, в которой горит лампа Н1.

С помощью аварийной кнопки (н.з. с фиксатором) прерывается работа манипулятора, при этом он останавливается. Горит лампа Н2.

Решение.

В конце каждого шага активируется датчик или включается (или выключается) вакуумный генератор. Использовать передний (или задний) фронт этих сигналов.

Рис 11. Сдвиг с помощью датчиков.

 

Возможные проблемы.

Манипулятор «зависает» при включении или выключении вакуум - генератора.

Решение: использовать сигнал катушки Y4 при включении и выключении(IPI и INI)!

 

 

Вариант 3. Нажав другую кнопку «старт», манипулятор 3D переносит деталь в обратном направлении.

Возможное решение. Изменить структуру программы. Скопировать FC1 в FC2, сделав некоторые изменения.

ОВ1 – основная программа: вызов подпрограмм.

FB1 (või FC1) – подпрограмма 1: перенос в одном направлении.

FB2 (või FC2) – подпрограмма 2, перенос в другом направлении.


Вызывать подпрограммы в ОВ1 с помощью вспомогательных битов: М1 и М2.

FB1, если „M1“(s1 – start, H1 – stopp).

FB2, если „M2“ (s2 – start, H1 – stopp).

Рис 12. Закончить вызов подпрограмм.