- •Промышленный робот рм-01
- •Оглавление
- •Введение
- •1. Описание промышленного робота список условных сокращений
- •Принятая терминология
- •1.1. Описание аппаратной части робота
- •1.1.1. Общие технические данные
- •1.1.2. Описание манипулятора «Puma-560»
- •1.1.3. Системы координат робота
- •1.1.4. Система управления робота
- •1.1.5. Органы управления
- •1.2. Описание программной части робота
- •1.2.1. Система arps
- •1.2.2. Формат команд и директив
- •1.2.3. Переменные и числовые константы
- •1.2.4. Нумерация сочленений (индекс)
- •1.2.5. Параметры линейных перемещений
- •1.2.6. Параметры угловых перемещений
- •1.2.7. Скорость перемещений
- •1.2.8. Наименование файлов
- •1.2.9. Точечные переменные
- •1.2.10. Мониторные директивы
- •1.2.11. Выполнение команд на уровне монитора
- •1.2.12. Переключатели программы
- •1.2.13. Автоматический пуск (автостарт)
- •1.2.14. Сдвиг системы координат инструмента
- •1.3. Приложения Приложение 1. Мониторные директивы
- •Подробное описание мониторных директив
- •Приложение 2. Программные команды
- •Подробное описание программных команд
- •Приложение 3. Описание команд редактирования
- •Приложение 4. Пуск и останов системы управления
- •2. Лабораторные работы общие указания по безопасности
- •5. Список использованной литературы
Подробное описание мониторных директив
Ниже приводится описание отдельных мониторных директив с примерами. Кроме того указывается уровень, на котором можно выполнять каждую директиву. Символ * означает, что данную директиву можно выполнять даже тогда, когда выполняется одна из программ пользователя. Остальные директивы выполняются только в случае, если робот ничего не выполняет (на экране монитора символ «>»).
ABORT* – директива прерывает выполнение программы в конце текущего шага.
C* – директиваC(текст) выводит строку комментариев в режиме монитора. Здесь (текст) произвольная строка символов.
Пример:
а) C+++++++++++++++++++++++++++++++
C PROGRAM NAME: PRO1
C+++++++++++++++++++++++++++++++
C
CAL – с помощью этой команды производится калибровка системы позиционирования звеньев. Иначе говоря, устройство управления определяет точные углы сочленений, соответствующих текущему состоянию манипулятора. Формат директивы:
CAL <+- (номер сочленения) >,
где номер сочленения = 1…6 и определяет сочленение в котором компенсация возможна. Если номер сочленения со знаком плюс, то положение его будет скомпенсировано в положительном направлении. Если номер сочленения со знаком минус, то компенсация положения сочленения идет в противоположном направлении. Величина компенсации соответствует одному обороту двигателя данного сочленения, причем число их неограниченно.
Примечание: успешность калибровки можно проверить с помощью команды GO READY.
Примеры:
а) CAL– выполняет калибровку.
а) CAL1, -5 – выполняет калибровку и прибавляет к положению сочленения 1 один компенсирующий оборот двигателя сочленения, а для сочленения 5 выполняет один компенсирующий оборот двигателя в противоположном направлении.
CHANGE* – спомощью этой директивы можно изменить значения точек и/или записывать новые точки.
CHANGE имя точки,
где имя точки – имя координатной точки, абсолютной точки или комбинированной точки. После директивы CHANGEна дисплей выводится значение позиции и появляется знак вопроса:
CHANGE location? (изменить точку?)
После чего пользователь может задать с клавиатуры новые значения элементам точек, разделенным запятыми. Если значения каких-либо элементов не задано, а на клавиатуре набираются лишь разделительные символы (запятые), то соответствующие значения остаются неизменными. Операция CHANGE(замена) заканчивается тем, что на дисплей выводится новое значение. Если была задана новая точка, то она будет записана в ЗУ с нулевыми значениями (по умолчанию). Если точка комбинированная, то лишь внутренняя точка может быть новой (напр.X(A), а точкаXдолжна быть задана ранее).
Примеры:
а) Точка A1 изменяется следующим образом:
>CHANGE A1
x y z o a t
--------- -------- -------- -------- ------ -------
10.00 5.00 0.00 5.000 0.000 0.000
CHANGE location? 5,,5,0
x y z o a t
--------- -------- --------- -------- -------- -------
5.00 5.00 5.00 0.000 0.000 0.000
б) Абсолютная точка B1 изменяется следующим образом:
>CHANGE #В1
сочл.1 сочл.2 сочл.3 сочл.4 сочл.5 сочл.6
--------- -------- --------- -------- -------- -------
0.000 0.000 0.000 0.000 0.000 0.000
CHANGE location? ,,,10
x y z o a t
-------- -------- --------- -------- -------- -------
0.000 0.000 0.000 10.000 0.000 0.000
COM – директиваCOM (COMMANDS)инициирует программу, которая содержит мониторные директивы (при редактировании программыCOMпишут перед каждой командой, например,COM CALL). Формат директивы:
COM программа,
где программа – программа, содержащая мониторные директивы. При работе с режимом COMмониторные директивы читаются из данной программы и выполняются, как будто бы оператор набрал их клавиатуры. Прерывать работуCOMможно нажатием любой клавиши.
Пример:
а) COM СPROG – инициализируется программа командCPROG(заметим, что операцияCOMиспользуется в операции автоматического запускаAUTOSTART).
CONTINUE – спомощью этой директивы можно снова запустить прерванную программу. Формат директивы:
CONTINUE (целое число),
где целое число = -32768…32767. Если число не задано или оно положительно, то работа программы продолжается со следующего шага. Если же число отрицательное (рекомендуется -1), то программа продолжается с прерванного шага. Если программа была прервана во время движения манипулятора, то директива CONTINUEзапускает программу движения робота с прерванной команды движения. Иногда возникают ситуации, когда продолжить прогон программы с помощью директивыCONTINUEневозможно. Тогда на дисплее после директивыCONTINUE выводится:Try RUN command (попробуйте команду «Запуск»), т. е. оператор должен с помощью командыRUNзапустить программу с самого начала.
Примеры:
а) >CONTINUE – продолжает выполнение прерванной программы;
б) >CONTINUE-1 – продолжает выполнение программы с прерванного шага.
DLOAD* – директиваDLOAD (DELETE LOAD)удаляет программы из ЗУ блока управления и/или точки на основании названия файла. Формат директивы:
DLOAD файл,
где файл – наименование файла, в массиве которого производится удаление. С помощью этой директивы происходит считывание файла программ из диска (файл.P) или файла точек (файл.L) или обоих файлов (при отсутствии спецификаторов .Pили .L) и удаляют те программы и/или точки из ЗУ, которые можно найти в файлах.
Примечание: Операцию можно прерывать, нажав клавишу RETURNилиCONTROL+S.
Примеры:
а) DLOAD PROG.P – удаляет программы, перечисленные в файлеPROG.P;
б) DLOAD PROG – стирает программы, перечисленные в файлеPROG.Pи точки, перечисленные вPROG.L.
DIA – спомощью директивыDIA (DIAGNOSTIC)происходит загрузка нужной сервисной программы с гибкого диска и ее инициализация. Формат директивы:
DIA (файл),
где файл – наименование сервисной программы, находящейся на диске. (В наименовании файла нет спецификации или это нечто иное, чем .Lили .Pс целью разделения наименований файлов программ и точек ). В начале выполнения директивы проверять, включено ли питание манипулятора, и если так, то на дисплее появляется следующее сообщение:Warning:ARMPOWERON(Внимание! Питание манипулятора включено.) Примечание: после выполнения любой сервисной программы, когда робот снова запускается, оператор должен обязательно стирать ОЗУ (режимZEROMEMORY).
Пример: >DIAPOT10SE– инициализируется сервисная программаPOT10SE.
DISABLE* – с помощью этой программы происходит обнуление переключателей программы. Формат директивы:
DISABLEprogramswitch(переключатель программы выключен)
Пример: DISABLEINCALLS– запрет на все прерывания входов/выходов.
ENABLE* – директива переводит переключатели программы в активное состояние. Формат директивы:
ENABLEprogramswitch(переключатель программы включен)
Пример: ENABLEINCALLS– разрешает внешние прерывания входов/выходов.
EDIT* – директива инициализирует редактор. Формат директивы:
EDITпрограмма,
где программа – наименование программы, которую надо редактировать. Если наименование программы не указано, то редактируется последняя программа, с которой работали в режиме редактора.
Пример: EDITPROG1 – редактируется программаPROG1.
EXIT – директива останавливает выполнение программы по окончании рабочего цикла (число прогонов программы, заданное командойRUN, обнуляется).
Формат директивы: EXIT
FDEL* – с помощью директивыFDEL(FILE-DELETE) происходит стирание файлов с гибкого диска. Формат директивы:
FDELфайл,
где файл – имя файла, который надо стереть.
Примеры:
а) FDELPROG.P– стирает файлPROG.P;
б) FDELPROG.L– стирает файлPROG.L;
в) FDELPOT10 – стирает сервисную программуPOT10.
FDIR* – с помощью директивыFDIR(FILE-DIRECTORY) выводится список наименований файлов, находящихся на гибком диске, их длина в блоках (блок – 256 символов) и объем свободных блоков на гибком диске.
Формат директивы: FDIR
FPACK* – благодаря директивеFPACK(FILE-PACK) свободные зоны, имеющиеся на гибком диске, подготавливаются для использования за счет сжатия файлов.
Формат директивы: FPACK
HERE* – с помощью директивыHEREустанавливается в ЗУ координаты точки, соответствующие текущей позиции манипулятора.
Формат команды: HEREточка,
где точка – координатная точка, комбинированная точка или абсолютная точка. Примечание: если используется комбинированная точка, то неопределенной может быть только внутренняя точка (например, X(A), а точкаXдолжна быть предварительно задана).
Например:
а) >HEREA1 – значение точкиA1– значение текущей позиции манипулятора (значениеx,y,z,o,a,t);
б) >HERE#B1 – значение абсолютной точки #B1 – угловые значения шарниров манипулятора;
в) >HEREPALLET(A) – значение точкиA– разность значений между точкойPALLETи текущей позицией манипулятора.
LDEL* – директиваLDEL(LOCATION-DELETE) стирает точки из ЗУ робота.
Формат директивы: LDELточка, точка…,
где точка – координатная или абсолютная точка.
Примеры:
а) >LDELA1,A2 – стирает в ЗУ точкиA1 иA2;
б) >LDEL#B1 – стирает в ЗУ абсолютную точку #B1.
LIST COMMANDS* – директива выводит на дисплей в сокращенной форме мониторные директивы, команды, команды редактора а также типы аргументов команд.
Формат директивы: LISTCOMMANDS
Символы типов аргументов команд, выводящиеся на экран дисплея, имеют следующее значение:
ang– угловая величина;
aopr– арифметический оператор;
cmp– оператор сравнения;
dis– расстояние;
file– наименование файла;
jnt– индекс сочленения (шарнира) ;
lbl– метка, адрес строки;
loc– точка;
nn.n– десятичное число, -3276.8…3276.7;
n.nn– десятичное число, -327.68…327.67;
nnn– целое число -32768…32767;
prg– наименование программы;
str– строка символов;
swit– переключатель программы;
var– переменная;
… – повторение аргумента без ограничений;
Если аргумент заключен в угловые скобки (< >), то это означает, что он необязателен.
LIST STATUS* – директива выводит на дисплей данные о внутреннем состоянии, такие как:
сдвиг основной системы координат;
объем свободной области памяти (ОЗУ) ;
состояние переключателей программы;
зеркальная система координат, если она используется;
масштабная система координат, если она применяется;
сдвиг системы координат инструмента;
задание скорости (максимальная скорость перемещения манипулятора, абсолютная ско- рость, масштабный коэффициент скорости) ;
выполняемые программа и шаги программы;
выполненное число прогонов программы и общее число прогонов;
Формат директивы:
LISTSTATUS
Пример:
LISTSTATUS
BASE0.00 0.00 0.00 0.000 (координаты основной системы координат)
Unusedmem( % ) : 78.55 (неиспользуемая память)
BREAKDISABLED(переключательBREAKвыключен)
DIST10DISABLED(переключательDIST10 выключен)
INCALLSDISABLED(переключательINCALLSвыключен)
PRINTENABLED(переключательPRINTвключен)
SERRORENABLED(переключательSERRORвключен)
TOOL:TL1 0.00 0.00 100.00 0.000 0.000 0.000 (сдвиг системы координат инструмента)
Maxspeed(mm/s): 500.0speed(mm/s):100.0speed% 100 (максимальная скорость (мм/с): 500.0 скорость (мм/с): 100.0 скорость % 100 )
Loops done: 1. Of 1. (выполнено циклов: 1. Из 1.)
Next step: 5. Program START (следующий шаг 5. программы START)
Next step: 9. ProgramDEMO(следующий шаг 9. программыDEMO)
Примечание 1: в этом примере программа STARTвызвала программуDEMOна 4-м шаге. ПрограммаDEMOбыла прервана на 8-м шаге.
Примечание 2: Если на дисплее появилось сообщение об ошибке типа “Unusedmem(%):RAMerror” (Объем незанятой памяти (%): ошибка ОЗУ), то произошло обнуление ЗУ, т. к. ОЗУ потеряло часть своего содержимого или все содержимое полностью.
LLIST* – по директиве >LLIST(LOCATION-LIST) на дисплей выводятся наименования точек и их значения.
Формат директивы: LLIST<точка>, …,
где точка – координатная или абсолютная точка. Если в директиве точки не заданы, все значения точек, имеющихся в ЗУ, выводятся на дисплей. Если же в директиве заданы одна или несколько точек, то на дисплей будут выведены только они.
LOAD* – с помощью директивыLOADв ЗУ блока управления с диска загружаются программы, команды и/или точки.
Формат директивы: LOADфайл,
где файл – наименование файла, из которого загружаются программы и/или точки. Если в наименовании файла есть спецификатор .P, то загружается только файл программ. Если стоит спецификатор .L, то загружается только файл точек. Если же в наименовании файла спецификатора нет, то загружается и то и другое. Примечание: операция загрузки может быть прервана нажатием клавишиRETURNилиCONTROL+S.
LTEACH* – с помощью директивыLTEACH(LOCATION-TEACH) обучают робот точкам в режиме ручного управления. При каждом нажатии кнопкиSTEP(шаг) на пульте ручного управления определяется одна точка и ей придается значение, соответствующее текущему положению манипулятора.
Формат директивы: LTEACHточка,
где точка – координатная, абсолютная или комбинированная точка. При каждом нажатии кнопки STEPна дисплей выводятся наименование точки и ее значение. Кроме наименования точки ей присваивается и индекс, который для каждой следующей точки автоматически увеличивается на 1. Этот режим обучения заканчивается нажатием клавишиRETURN. Если в директиве в качестве точки задается комбинированная точка, неопределенной может быть только внутренняя точка (напримерX(A1)), а значение точкиXдолжно быть определено ранее.
MAXSPEED* – директива задает желаемый предел скоростей движения манипулятора. Формат директивы:
MAXSPEEDскорость,
где скорость – скорость в мм/с в пределах: 2 мм/сек…3000.0 мм/сек. (Прямолинейное движение) По умолчанию максимальная скорость 500 мм/сек.
PDIR* – директиваPDIR(PROGRAM-DIRECTORY) выводит на дисплей наименования программ, находящихся в ЗУ.
Формат директивы: PDIR
PLIST* – с помощью директивыPLIST(PROGRAM-LIST) выводятся программы на дисплей. Формат директивы:
PLIST<программа>,
где программа – наименование выводимой на дисплей программы. Если в директиве наименование программы не указано, то на дисплей выводятся все прjграммы, хранящиеся в ЗУ. Если же в директиве наименования программ указаны, то на дисплей выводятся именно они.
Примеры:
а) >PLIST– вывод на дисплей всех программ из ЗУ;
б) >PLISTPRG1,PRG2 – на дисплей выводятся программыPRG1 ИPRG2.
RUN – директива запускает программы. Формат директивы:
RUNпрограмма, число прогонов,
где программа – наименование программы, которую надо выполнить; число прогонов – число прогонов программы (-32768…32767). Отрицательное значение числа циклов выполнения программы приводит к непрерывному циклу, который можно прервать командами ABORTилиEXIT. Рабочий цикл прерывается если происходит какой-либо сбой. Значение циклов по умолчанию равно 1.
Примеры:
а) >RUNPRG– выполнит программу один раз;
б) >RUNPRG,10 – выполнит программуPRGдесять раз;
в) >RUNPRG, -1 – выполняет программуPRGнеограниченное число раз.
SPEED* – директивой задается базовая скорость движения манипулятора. Формат директивы:
SPEEDскорость,
где скорость – скорость в мм/сек, которая выбирается в пределах 2…3000 мм/сек.
Примечание: чтобы получить действительную скорость, надо умножить базовую скорость на масштабный коэффициент скорости.
SPEED % *– директива используется для задания масштабного коэффициента скорости, с помощью которого можно рассчитать абсолютную скорость движения манипулятора. Формат директивы:
SPEED50 %уменьшает скорость движения манипулятора в два раза.
STORE*– с помощью этой директивы программы и/или точки записываются из ОЗУ на магнитный диск. Формат директивы:
STOREфайл < = программа>, …,
где файл – файл в котором будут храниться программы и/или точки.
Если наименование файла заканчивается спецификатором .P, то в нем сохраняются только программы. Если наименование файла заканчивается спецификатором .L, то сохранятся только точки. Если же спецификатора нет, то автоматически формируются два файла, один из которых имеет спецификатор .P(файл программ), а второй – имеет спецификатор .L(файл точек); программа – наименование программы, которую надо записать. Если в директиве не указывается наименование программы, то записываются все программы и/или точки.
SYSMON – директивойSYSMON(SYSTEM-MONITOR) можно обращаться в собственный монитор центрального процессора. Формат директивы:
SYSMON
Перед началом выполнения директивы блок управления спрашивает: Ayousure(y,n)? (Вы уверены?) И только после нажатия клавишиYдиректива будет выполнена.
WHERE* – директива выводит на дисплей текущую позицию инструмента манипулятора. Формат директивы:
WHERE< # >
Вывод точек происходит также, как и в рассмотренной выше директиве CHANGE.
WEAVE* – директива задает параметры для колебательного движения манипулятора. Формат директивы:
WEAVEамплитуда, <время колебания>, <задержка>,
где амплитуда – удвоенная амплитуда (колебания от пика до пика, максимальное значение ее 256 мм).
Если амплитуда равна 0, то колебаний не будет; время колебания – время одного цикла колебания (это движение удвоенных амплитуд) оно может быть в диапазоне 0.00…327.67 сек.; задержка – время останова (задержки движения робота в крайних точках колебания). Его величина лежит в пределах 0.00…327.67 сек.
Пример:
WEAVE5,0.5 – устанавливает амплитуду колебания манипулятора равную 5мм и время колебания равное 0.5сек.