Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Добавление инструкции безусловного перехода




Для перемещения к метке например JMPLBL[4]или установки метки нужно нажать F1 (INST) и выбрать в открывшемся меню - JMP/LBL. Откроется меню (Рис.5).

Рис.5. Меню меток

 

 

Оператор IF

Условный оператор IF служит для ветвления программы.

Пример 2:

Для примера 1 из предыдущей главы написать условие при котором выход из цикла осуществляется после 3й итерации.

1: R[1] = 0 // регистр играющий роль счетчика

2: LBL[1] // метка LBL[1], начало цикла

3: JP[1] 100% FINE // движение в точку P[1]

4: JP[2] 100% FINE // движение в точку P[2]

5: JP[3] 100% FINE // движение в точку P[3]

6: R[1] = R[1] + 1 // прибавление к регистру-счетчику единицы

7: IF (R[1] <> 3), JMP_LBL[1] // условный переход в метку LBL[1]

8: JP[4] 100% FINE // движение в точку P[4]

[END]

Из примера видно, что в 7 строке происходит ветвление кода, то есть, в зависимости от значения регистра 1 может выполниться либо блок кода обхода трех точек, либо переход в точку P[4].

Блок-схема работы данной программы представлена на рисунке 6.

Рис.6. Блок-схема программы с условным переходом

 

Позиционный регистр

Служит для хранения значений координат точек. Обозначается PR[i]

В инструкции с позиционным регистром выполняется арифметическая операция или смещение позиции - является переменной, содержащей позиционные данные. Содержит 6 ячеек.

Доступно 100 регистров.

Возможны следующие арифметические операции

PR[…] = …+… подсчет (суммирование)

PR[…] = …-… вычитание

PR[…] = …*… умножение

PR[…] = …/… деление

PR[…] = …DIV… целочисленное деление

PR[…] = …MOD… остаток после деления.

Кроме того операции:

· Смещения – PR[i]-(регистр), например PR[n]=PR[m];

· смещение по отдельной оси - PR[i,j]=(регистр)(оператор)(регистр), например PR[1,2]=1500.

· Арифметическая операция для оси PR[i,j]=()параметр)(оператор)(параметр), например PR[1,2]=PR[1,2]+100.

i- номер позиционного регистра

j – обозначение координаты.

j=1 X j=2 Y j=3 Z
j=4 W j=5 P j=6 R

 

НапримерPR[2,3]= 100 – это присвоение значения 100 координате Z находящейся во втором позиционном регистре.

 

Пример 1:

Рассмотрим программу, которая обходит 3 точки в плоскости XOY 6й пользовательской системы координат, образующие прямоугольный треугольник с катетами 40 и 60.

Предполагаем, что в позиционном регистре номер 10 записаны координаты точки на плоскости XOY (в системах UF=6, UT=4).

 

1: UFRAME_NUM=6;

2: UTOOL_NUM=4;

3: J PR[10] 100% FINE; // двигаться в точку с координатами PR[10]

4: PR[10,1]=PR[10,1]-60; // вычесть 60 из значения координаты Х PR[10]

5: L PR[10] 500mm/secFINE; // двигаться в точку с координатами PR[10]

6: PR[10,2]=PR[10,2]+40; //прибавить 40 к значению координаты У PR[10]

7: L PR[10] 500mm/secFINE;// двигаться в точку с координатами PR[10]

8: PR[10,1]=PR[10,1]+60; //вернуть координате Х PR[10] начальное значение

9: PR[10,2]=PR[10,2]-40; //вернуть координате У PR[10] начальное значение

10: L PR[10] 500mm/secFINE;// двигаться в точку с координатами PR[10]

Результат работы программы представлен на рисунке 7.

Рис.7. Результат работы программы

Отметим так же, что позиционный регистр хранит лишь числовые значения координат X Y Z W P R, поэтому один и тот же регистр можно использовать в разных системах координат.

 

Пример 2:

Рассмотрим программу, которая рисует треугольник из примера 1 в двух разных пользовательский системах координат:

Предполагаем что регистр PR[11] хранит значения точки на плоскости XOY (координата Z равна нулю).

1: UFRAME_NUM=6;// активная пользовательская система координат

2: UTOOL_NUM=4;// активная система координат инструмента

3: R[100]=0; //регистр-счетчик

4: LBL[1]; //метка LBL[1], начало цикла

5: PR[10] = PR[11]; //начальная точка

6: JPR[10] 100% FINE; // в точку с координатами PR[10]

7: PR[10,1]=PR[10,1]-60; // смещение PR[10] по оси X на 60

8: LPR[10] 500mm/sec FINE; // в точку с координатами PR[10]

9: PR[10,2]=PR[10,2]+40; // смещение PR[10] по оси Y на 40

10: LPR[10] 500mm/sec FINE; // в точку с координатами PR[10]

11: PR[10,1]=PR[10,1]+60; // смещение PR[10] по оси X на 60

12: PR[10,2]=PR[10,2]-40; // смещение PR[10] по оси Y на 40

13: LPR[10] 500mm/sec FINE; // в точку с координатами PR[10]

14: UFRAME_NUM=7;// смена активной пользовательской системы координат

15: R[100]=R[100] + 1; // прибавление к регистру-счетчику единицы

16: IF (R[100] <> 2) JMP_LBL[1] // условный переход в метку LBL[1]

 

В результате выполнения данной программы, блок кода для рисования треугольника (строки 4-16) будет выполнен дважды (регистр R[100] выступает в роли счетчика, а оператор IF на 16 строке обеспечивает выход из цикла после второй итерации). Причем в первый раз данный блок кода будет выполняться при активной системе координат UF6 (строка 1), второй раз треугольник будет нарисован в плоскости XOY системы координат UF7 (строка 14).

Блок-схема работы программы представлена на рисунке 8.

Рис.8. Блок-схема работы программы

 

Подпрограммы

Для программирования движений робота кроме основных исполнительных программ, используются подпрограммы. Имена создаваемых подпрограмм, так же как и имя исполнительной программы могут быть настраиваемым в зависимости от используемых на предприятии стандартов. Рассмотрим один из стандартов, в котором используются следующие основные подпрограммы.

UP -подпрограмма, не может быть запущена самостоятельно, но также как и исполнительная программа может использовать инструкции перемещения и т.д.

MAKRO – подпрограмма, которая не может быть запущена самостоятельно, и не может использовать инструкции перемещения.

 

Создание имени подпрограммы

Для задания имени, создаваемой программы необходимо выполнить следующую последовательность действий.

 

1. Нажать на пульте управления SELECTF2 (CREATE)

В результате появиться окно написания программы (Рис.9).

Рис.9. Окно написания программы.

2. С помощью функциональных клавиш F1 – F5 ввести имя создаваемой программы

Например, если нажать F2 - UP то в имени программы появиться тип создаваемой подпрограммы (Рис.10).

Рис.10. Создание подпрограммы

 

Затем в меню Alphainput выбрать:

 

uppercase (заглавные символы),

lowercase(строчные символы).

И с помощью клавиш F1 – F5 набрать комментарий.

Набрать цифры можно непосредственно набирая на клавиатуре.

Если нажать Options, то появиться клавиатура. (Рис.11)

 

Рис.11. Клавиатура.

 

На которой можно непосредственно ввести имя подпрограммы.

Введем, например 070 и нажмем ENTER. В результате введем имя подпрограммы UP070, как показано на (Рис.12).

 

Рис.12. Ввод имени подпрограммы

 

 

Для ввода кода подпрограммы необходимо нажать ENTER. В результате появиться соответствующее окно (рис.13).

Рис.13. Окно ввода кода подпрограммы.

 

Рассмотрим примеры правильных\неправильных имен подпрограмм:

 

Правильные имена программ:

UP001, UP999.

 

Неправильные имена программ:

UPA, UPA1, UP1A.

 

 

Рассмотрим пример подпрограммы рисования линии определенной длины.

Добавление кода

В общем случае задание систем координат в подпрограмме не обязательно, поскольку, как было указано выше, подпрограмма не может быть запущена самостоятельно, а только посредством основной программы. В свою очередь задание систем координат в основной программе обязательно, которые являются глобальными (сточки зрения программирования), то есть по умолчанию подпрограмма должна использовать заданные системы координат. Однако рекомендуется задание систем координат в подпрограммах поскольку:

Случай 1: если в подпрограмме присутствуют инструкции перемещения, не использующие позиционных регистров, то данные инструкции могут быть не выполнены (ошибка Invaliduframenum), в случае если координаты их точек записаны в системе координат отличной от той, что определены в основной программе.

Случай 2: если в подпрограмме присутствуют инструкции перемещения, использующие позиционные регистры, то данные инструкции могут быть выполнены не корректно, поскольку позиционные регистры не привязаны к конкретным системам координат, и хранят лишь цифровые значения.

Таким образом, при написании подпрограммы рекомендуется задавать системы координат, используемые в добавляемых системах координат.

 

Пример 3:

Напишем подпрограмму которая рисует горизонтальную линию длиной 50 мм:

1. Перед написанием программы в 17-й позиционный регистр записать координаты точки, отстоящей от начальной точки отрезка на 20 мм от плоскости XOY.

2. Добавим следующий код в подпрограмму UP070 (Рисунок 14).

 

Рис.14. Код подпрограммы UP070

 

Рассмотрим код подпрограммы:

Строка 1 – определение активной пользовательской системы координат (в данном случае ранее определенная система координат UF6, привязанная к доске)

Строка 2 – определение активной системы координат инструмента (TCP инструмента -UT=4)

Строка 4 – двигаться TCP инструмента в PR[17], с координатами точки, отстоящей от доски на 20 мм

Строка 6 – изменить значение координаты Z позиционного регистра PR[17], сместив тем самым TCP его на поверхность XOY СК UF6

Строка 8 – двигаться в новую позицию PR[17]

Строка 10 – изменить значение координаты Х позиционного регистра PR[17]

Строка 12 – двигаться в новую позицию PR[17], нарисовав таким образом горизонтальную линию

Строка 14 – изменить значение координаты Z, т.е. отступив от XOY обратно на 20 мм.

Строка 16 – двигаться в новую позицию PR[17]

 

Теперь данную подпрограмму можно вызывать из программы или из других подпрограмм. Рассмотрим пример использования данной подпрограммы:

 

Пример 4:

Напишем программу, которая рисует на плоскости XOY пунктирную линию:

 

1: UFRAME_NUM=6;//определение активной пользовательской системы координат

2: UTOOL_NUM=4;//определение активной системы координат инструмента

3: R[100]=0;// регистр, выполняющий роль счетчика

4: LBL[1];// метка LBL[1], начало цикла

5: CALLUP070;// вызов подпрограммы UP070

6: PR[17, 1] = PR[17,1] + 10;// смещение начальной точки по оси X на 10 мм

7: R[100] = R[100] + 1;// прибавление к регистру-счетчику единицы

7: IF (R[100] <10), JMP_LBL[1];// условный переход к началу цикла (метка LBL[1])

 

Данная программа 10 раз вызовет UP070, причем каждый раз после вызова смещая позиционный регистр 17 по координате X на 10. Таким образом будет нарисована пунктирная линия.

Блок-схема работы программы представлена на рисунке 15.

 

Рис.15. Блок-схема работы программы





Поделиться с друзьями:


Дата добавления: 2016-09-06; Мы поможем в написании ваших работ!; просмотров: 529 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Большинство людей упускают появившуюся возможность, потому что она бывает одета в комбинезон и с виду напоминает работу © Томас Эдисон
==> читать все изречения...

4600 - | 4244 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.