1. Изучение программной части робота FANUK R200iB/165F
2. Исследование регистров
3. Научиться программировать, используя подпрограммы
Во время практики в лаборатории кафедры «Мехатроника и робототехника», мною было проведено исследование программной части промышленного манипулятора FANUK R200iB/165F(Рис.1).
Рис.1. Манипулятор FANUK R200iB/165F
Целью работы было изучение регистров и программирования с использованием подпрограмм.
Регистры.
Ячейка памяти, служащая для хранения чисел. Обозначается R[i]. Например R[1] = 1, число 1 записано в регистр 1.
Доступно 200 регистров (количество может быть увеличено)
Возможна прямая и косвенная адресации регистра.
При прямой адресации индекс регистра задается как номер - R[2] = 5 В данном случае инструкция присваивает регистру номер 2 значение 5, при этом старое значение регистра будет удалено.
При косвенной адресации индекс регистру задается не как номер, а косвенно, с помощью другого регистра т.е. R[R[3]] = 5. В данном случае инструкция содержит внутренний регистр R[3] и внешний регистр R[R[3]]. Если, например значение регистра R[3] равно 2, внешний регистр будет адресован с индексом 2 - (R[2] = 5).
R[…] = …MOD… остаток после деления || R[1]=R[1] MOD 2 // R[1]=5
Замечание. В рамках одной инструкции позволено несколько арифметических операций, но с ограничениями (не смешивать операции (АND/OR) использовать не более 5 операторов.
Добавление инструкции по работе с регистром
Для присвоения регистру значения (код R[1]=0), с помощью F1 (INST) вызвать окно (Рис.2).
Рис.2. Меню Instruction
Выбрать пункт Registers. Откроется окно (Рис. 3).
Рис.3. Меню регистров
В нем выбрать R[ ]=(…) (многоточия заменяются константой аналогично выбору системы координат(UFRAME_NUM или UTOOL_NUM) и написать R[1] = 1.
Для написания выражения (Например R[1]=R[1]+1)нажатьF1 (INST) вызвать окно, изображенное на рисунке 1. Выбрать меню Registers и откроется окно (Рис. 4).
Рис.4. Меню шаблонов
В нем выбрать шаблон выражения в котором заменить многоточия на нужные выражения.
Операторы безусловного перехода
Для создания циклов и ветвлений программы используются операторы безусловного перехода (JMP_LBL). Вид инструкции:
JMP_LBL[i], где i – номер метки, в которую необходимо осуществить переход.
LBL[i] – инструкция описывающая метку, i – номер метки.
Пример 1:
Рассмотрим пример использования регистра в качестве счетчика, совместно с оператором безусловного перехода.
Пусть имеется программа
1: J P[1] 100% FINE
2: J P[2] 100% FINE
3: J P[3] 100% FINE
[END]
Добавим в программу следующие операторы
В данном примере –R[1] – регистр выступающий в качестве счетчика. Начальное значение регистра ноль.
Инструкция JMP_LBL[1] (безусловный переход) – переводит выполнение программы в метку 1 (строка 2). Таким образом блок кода реализующий обход трех точек (строки 3, 4, 5) будет выполняться бесконечное количество раз. Причем в регистре номер 1 будет содержаться число выполненных итераций.