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

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

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

Рис.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.

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

Рис.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.

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

Рис.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.

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

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

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

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

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

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

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

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

1. Добавление инструкции безусловного перехода - student2.ru Нажать на пульте управления SELECTF2 (CREATE)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UP001, UP999.

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

UPA, UPA1, UP1A.

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

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

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

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

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

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

Пример 3:

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

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

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

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

Рис.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.

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

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

Наши рекомендации