Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Роботы и робототехника лабораторный практикум. Учебное пособие
.pdf
TYPE
Выводит на экран значения переменных.
Пример:
Вывести на экран логическое состояние входного дискретного
сигнала DI 1:
Type sig(1001)
WAIT
Останавливает программу от перехода на следующий шаг до
тех пор, пока не выполнится указанное после инструкции условие.
Пример:
Ожидать появление входного дискретного сигнала 4:
WAIT sig(1004)
TWAIT
Останавливает выполнение программы на время, указанное
после инструкции (в секундах).
Пример:
Задержать выполнение программы на 2 секунды:
TWAIT 2
SWAIT
(Signal Wait) Ожидание совпадения значений дискретных
входных, выходных, внутренних сигналов с заданными значениями. (Шаг с этой инструкцией может быть пропущен выполнением
команды CONTINUE NEXT.)
Пример:
Остановить выполнение программы, пока не выполнится условие:
есть входной дискретный сигнал 4 и нет внутреннего сигнала 20:
SWAIT 1004,–2020
CALL f
Вызывает функцию с именем f.
Пример:
Вызвать функцию define_t с аргументом – двумерной матрицей чисел:
CALL define_t(tt[,])
41

Примечание. Функция, в отличие от программы, содержит список
передаваемых ей аргументов. Эти аргументы записываются в нулевой
строке программы. Например, нижеследующие команды приведут к созданию функции define_t(tt[,]).
Пример:
> edit define_t
1. S 0
0. (tt[,])
↵
TIMER i
Присваивает таймеру i время в секундах или выводит оставшееся время таймера i (номер таймера от 1 до 10).
Пример:
TIMER 1 = 0
WAIT TIMER(1)>10
DRAW dX,dY,dZ,Xr,Yr,Zr,speed
Перемещает схват робота на заданное расстояние в базовой
системе координат. dX, dY, dZ – проекции заданного перемещения
на оси базовой системы координат (в мм). Xr, Yr, Zr – проекция
заданного вращения вокруг осей X, Y, Z в градусах в диапазоне от
180− до +180. Speed – скорость в процентах от максимальной.
TDRAW dX,dY,dZ,Xr,Yr,Zr,speed
Перемещает схват робота на заданное расстояние в инструментальной системе координат.
WHERE i
Отображает текущее положение схвата робота. Параметр i
определяет режим отображения:
1 – показывает текущее положение в обобщённой системе
координат;
2 – показывает текущее положение робота в базовой системе
координат;
6 – скорость в сочленениях (градусы в секунду).
FOR
Оператор цикла.
42

Примеры:
FOR i=1 TO 5
…
END;
FOR i=1 TO 50 STEP 2
…
END
BREAK
Задерживает выполнение следующего шага до тех пор, пока
не будет завершена текущая инструкция движения.
BRAKE
Прекращает текущую инструкцию движения, переходит к
следующему шагу.
STOP
Прекращает выполнение цикла.
HALT
Прекращает выполнение программы (возобновление работы
программы невозможно).
ONE – вызывает программу, когда случается ошибка
RETURNE – начинает выполнение программы с шага, сле-
дующего за шагом, на котором случилась ошибка.
SPEED
Задание мониторной или программной скорости в процентах
при записи вне программы или в программе AS соответственно.
ACCURACY
Задаёт точность достижения узловых точек в
миллиметрах.
Система управления, будет считать, что точка достигнута и можно
переходить к выполнению следующей команды. Действует только
применительно к ближайшей после этой инструкции команде движения.
Пример:
Задать точность достижения узловых точек 10 мм.
ACCURACY 10
43

ALWAYS
Добавочная инструкция применения таких команд, как, например, точность ACCURACY и скорость SPEED ко всем последующим инструкциям движения (до нового изменения этих параметров).
Пример:
ACCURACY 10 ALWAYS
GOTO
label IF condition
Переход к метке при выполнении условия соответственно.
Допустимо и обратное написание: IF
condition GOTO label. Метка
задается в программе в начале строки, на которую нужно перейти,
отделяясь от программной инструкции в этой строке двоеточием.
Пример:
Перейти на строку, начинающуюся с метки 10.
GOTO 10
…
10 : WAIT sig(1004)
: (двоеточие)
Разделяют метку в программе – слева и исполняемую строку
программы – справа. Метками могут быть целые числа от 1..9999,
точки, подчёркивания и буквы – в строках до 15 символов.
Пример:
3 : JMOVE a
; (точка с запятой)
Отделяют строку программы (слева от ;) и комментарий
(справа от ;)
JMOVE #a ; joint interpolation move
DRIVE NumJoint, Angle, Speed
Движение заданного сочленения на заданный угол с заданной скоростью. NumJoint – номер звена, Angle – угол в градусах,
Speed – скорость в процентах от мониторной скорости.
C1MOVE, C2MOVE – движение по дуге окружности. Движение по дуге можно определить по трём положениям схвата. Начало дуги определяет предыдущая инструкция движения,
44

C1MOVE, C2MOVE определяют середину и конец дуги окруж-
ности.
Пример:
Произвести движение по дуге через точки c1, c2 и c3 – начало, середина и конец дуги соответственно
JMOVE c1
C1MOVE c2
C2MOVE c3
DX, DY, DZ
Выдают декартовы координаты
x, y, z заданного в аргументе
положения соответственно.
Пример:
Вывести значение координаты X точки A, координаты которой ранее были определены с помощью команды POINT:
POINT a
100,250,0,0,0,0
type DX(a)
100
CP ON
CP OFF
Включается (CP ON), выключается (CP OFF) режим непрерывного движения по траектории.
EXECUTE ProgName,num
Запускает на выполнение программу ProgName. Параметр
num определяет, сколько раз программа должна выполниться. Ес-
ли num = -1, то программа должна выполняться постоянно (пробел
во фразе ProgName,num не допускается).
Пример:
Запустить программу PrName на бесконечное выполнение.
Execute PrName,-1
PCEXECUTE ProgName.pc , num
Запускает на выполнение обработчик прерываний, pc – программу, ProgName.pc. Параметр num определяет, сколько раз программа должна выполниться. Если num = -1, то программа должна
выполняться постоянно.
45

Пример:
Запустить обработчик прерываний PrName.pc на бесконечное
выполнение.
PCEXECUTE PrName.pc,-1
PCABORT
Прекращение исполнения работающей PC программы (обработчика прерываний)
DELETE
Удаление программы или переменной.
Пример:
DELETE a
COPY NewPrName = SourceProgramName
Копирование программы с присвоением нового имени.
DO
Выполняет одиночную программную инструкцию (некоторые программные инструкции не могут быть выполнены этой командой).
PAUSE
Команда приостановки выполнения программы (из командной строки).
CONTINUE
Продолжение выполнения программы после паузы (из командной строки)
KILL
Очищает стек программ (после ошибки, команды ABORT,
PAUSE – программа сохраняется
в стеке).
PCKILL PC_PrNumber
Удаляет заданную PC программу из стека. PC_PrNumber –
номер программы в стеке (от 1 до 5), которую из стека нужно удалить.
Пример:
PCKILL PC_PrNumber
46

HOME
Перевод робота начальное положение (в домашнюю позицию).
FREE
Выводит на экран оставшееся свободное место памяти.
ПРАКТИЧЕСКИЕ ЗАНЯТИЯ
В ходе практических занятий изучаются основы и принципы
программирования промышленного робота на примере решения
задачи паллетирования. Паллетирование – это одна из самых востребованных в мире технологий с применением промышленных
роботов. Паллетирование
(ящиков, изделий, деталей и т.п) на паллету. Паллета
– автоматическое укладывание товаров
– тара,
предназначенная для хранения груза и его перемещения с помощью транспортных средств.
FR_CS+put
паллета
start
FR_CS+put_ini
Рис. 2.3. Пример задачи паллетирования
с использованием промышленного робота
47

Пример задачи паллетирования с использованием промышленного робота манипулятора показан на рис. 2.3. На этом рисунке
обозначены:
– система координат, связанная с паллетой.
ZYXO
ОДОДОДОД
– базовая система координат робота,
ZYXO
ОБОБОБОБ
Задачи, решаемые в ходе практических занятий
– Знакомство с основами программирования с использованием языка AS.
– Изучение назначения, правил и принципов работы PCпрограмм (обработчиков прерываний).
– Изучение принципов организации ветвления при выполнении программ языка AS.
Постановка задачи паллетирования
Робот-манипулятор должен переместить детали из стопки в
паллету (см. рис. 2.3). Положение стопки деталей и паллеты неизменно и известно заранее.
В рамках лабораторной работы студентам предлагается
практически решить несколько усложняющихся задач, идя от простого к сложному.
1. Задача переноса одной детали по траектории 1-2-3-4-3-2-1
в бесконечном цикле (рис. 2.4). При этом
положит деталь в положения
поднять схват в положения
lappro part,70
part
1 и 4, он должен отпустить деталь и
2 и 4 соответственно.
каждый раз, когда робот
lappro box,70
box
Рис. 2.4. Перенос детали по траектории 1-2-3-4-3-2-1
48

2. Задача перемещения деталей из стопки в паллету (см. рис.
2.3) при условии, что орты базовой СК
соответственно равны между собой.
ZYXO
ОДОДОДОД
и СК детали
ZYXO
ОБОБОБОБ
3. Решение задачи 2 при произвольном расположении палле-
ты относительно базовой системы координат (см. рис. 2.3).
Порядок выполнения задачи 1:
Для корректного написания AS–программы сначала желательно определить последовательность всех движений, которые
должен совершить робот, чтобы переместить деталь – можно взять
деталь в руку и выполнить вручную все движения, которые должна сделать рука робота-манипулятора в течение цикла.
Также рекомендуется самостоятельно нарисовать на листке
бумаги эскиз, условно показывающий
в изометрии роботманипулятор, положения детали и, если нужно, соответствующие
им переменные, дополнительные геометрические размеры, оси СК
и т.д. Эскиз позволяет, с одной стороны, визуально воспринять
задачу, а с другой освободить сознание от необходимости запомнить заданные переменные, константы и проч., которые в дальнейшем нужно использовать в программе.
До начала написания и отработки AS-программы необходимо с помощью пульта выставить робот-манипулятор в положение 1 (см. рис. 2.4) и записать это положение в переменную «part»
командой языка AS
>here part ↵↵
После этого аналогично положение 4 (см. рис. 2.4) записать
в переменную «box».
■ Примечание.
После первого нажатия «Enter» в вышеприведённой команде на эк-
ран будет выведено текущее положение связанной со схватом СК робота.
>here part
X Y Z O A T
… … … … … …
>
Это положение ещё не записано в переменную part!
>
↵
↵
– повторная «
в указанной переменной;
Enter» сохраняет это положение
49

– изменение значения 2-й и 4-й переменной
>, 100,,57
↵
в массиве параметров положения схвата;
X Y Z O A T
… 100 … 57 … …
Можно применять подобные команды подряд, изменяя координаты по очереди. Для сохранения итоговых параметров положения схвата
в указанной переменной «
Выполнение любых других команд отменит сохранение выведенных на
экран координат в переменной «
part» необходимо повторно нажать «Enter».
part».
■■
Далее нужно создать программу, перемещающую деталь по
траектории 1-2-3-4-3-2-1 (см. рис. 2.4). Предположим, что рука робота-манипулятора перед выполнением программы находится/выводится в положение
2, а деталь находится в положении 1
(см. рис. 2.4). Примеры двух вариантов программы управляющих
переносом детали приведены ниже. Отличие этих программ состоит в том, что во второй программе вместо команд
open, close для
открытия, закрытия схвата используются «1», «-1» после команды
lmove, что уменьшает величину кода программы.
■ Примечание.
Необходимо 1-ю инструкцию программы согласовать с начальным
положением руки робота-манипулятора. Т.е. нужно определиться, в каком положении будет рука робота-манипулятора перед началом выполнения программы.
■■
>edit PrName
1. lmove part
2. close
3. lappro part,70
4. lappro box,70
5. lmove box
6. open
7. lappro box,70
8. lmove box
9. close
10. lappro box,70
Альтернативный код программы,
инструкции закрытия, открытия
схвата соответствуют добавлению
и
1,
в конце предыдущей инст-
1,−
рукции движения
>edit PrName
1. lmove part,1
2. lappro part,70
3. lappro box,70
4. lmove box,-1
5. lappro box,70
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
