Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]