Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Операторы безусловного перехода



ОТЧЁТ О НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ

 

по курсу: Основы мехатроники

 

 

 

Выполнил: ……………………………………………….…… Асатрян Т.А.

 

Группа: ………………………………………………….….… МХТ.Б-51

 

Руководитель: ……………………..…………………………. Пащенко В.Н.

 

Калуга. 2013 г.

Постановка задачи:

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[…] = …+… подсчет (суммирование) || R[1]=3+1.3 // R[1]=4.3

R[…] = …-… вычитание || R[1]=R[1]-1.8 // R[1]=2.5

R[…] = …*… умножение || R[1]=R[1]*2 // R[1]=5

R[…] = …/… деление || R[1]=R[1]/0.5 // R[1]=10

R[…] = …DIV… целочисленное деление || R[1]=R[1] DIV 3 // R[1]=3

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 будет содержаться число выполненных итераций.
1: R[1] = 0

2: LBL[1]

3: J P[1] 100% FINE

4: J P[2] 100% FINE

5: J P[3] 100% FINE

6: R[1] = R[1] + 1

7: JMP_LBL[1]

[END]

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.