Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование робототехнических систем. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
8. Приведите пример программы, где используется команда коррек-
ции на инструмент.
9. Для чего нужна команда траектории. Приведите пример программы
и продемонстрируйте её работу с и без этой команды. В чём отличия?
Вариант 1 Вариант 2
Вариант 3 Вариант 4
Рис. 2.13. Варианты заданий для практической работы
(начало)
31
Вариант 5 Вариант 6
Вариант 7 Вариант 8
Вариант 9 Вариант 10
Рис. 2.13. Продолжение
32

Тема 3. КОМАНДЫ ПЕРЕХОДА И ЦИКЛА РОБОТА FANUC

3.1. Команды перехода

Команда перехода вызывает переход от одной строки программы к
другой. Поддерживаются четыре типа команд перехода: команда метки; ко-
манда конца программы; команда безусловного перехода; команда условного
перехода.
Команда метки (LBL[i]) используется для указания точки в програм-
ме, к которой должно перейти управление. Метка определяется с помощью
команды определения метки.
Можно добавить комментарий для пояснения мет
ки. После определе-
ния метки её можно использовать для безусловного или условного перехода.
Указать номер метки с помощью косвенной адресации невозможно.
Пример 1: LBL[1]
2: LBL[ R[3] ]
Команда конца программы END обозначает окончание программы.
Этой командой завершается выполнение программы. Если программа вызва-
на из другой основной программы, управление возвращается в основную
программу.
Команда безуслов
ного перехода вызывает переход от одной строки
программы к другой. Поддерживаются два типа команд безусловного пере-
хода. Команда перехода вызывает передачу управления на указанную метку.
Команда вызова программы вызывает переход к заданной программе.
метку.
Команда перехода JMPLBL[i].
Команда JMP LBL[i] передаёт управление программы на заданную
Пример
1: JMPLBL[2]
2: JMPLBL[ R[4] ]
33
Команда вызова программы CALL (программа). Команда CALL пере-
даёт управление на первую строку другой программы (подпрограммы) для её
выполнения. Когда в вызванной программе выполняется команда конца про-
граммы (END), управление передаётся на следующую команду после вызова
программы в вызывающей (основной) программе.
Пример
1: CALLSUB1
2: CALLPROGRAM2
Команда условного перехода вызывает переход из одного места про-
граммы в другое при удовлетворении некоторого условия. Имеют
ся два типа
команд условного перехода. Команда условного сравнения вызывает переда-
чу управления на указанную метку или в указанную программу при удовле-
творении некоторого условия. Доступны команды условного сравнения реги-
стра и условного сравнения ввода-вывода.
Команда условного выбора вызывает передачу управления на заданную
команду перехода или вызова подпрограммы в соответствии со значени
ем
регистра.
Условная команда сравнения регистра имеет формат (рис. 3.1)
IF R[i] (оператор) (значение) (действие)
Команда условного сравнения регистра сравнивает значение, храня-
щееся в регистре, с другим значением, и если условие сравнения удовлетво-
рено, выполняется действие.
34
Рис. 3.1. Условная команда сравнения регистра
Условные команды сравнения ввода-вывода имеют формат (рис. 3.2)
IF (I/O) (оператор) (значение) (действие)
Команда условного сравнения ввода-вывода сравнивает значение сиг-
нала ввода-вывода с другим значением. Если условие сравнения удовлетво-
рено, выполняется заданное действие.
Рис. 3.2. Условная команда сравнения ввода-вывода
Пример
1: IF R[1] = R[2], JMP LBL[1]
2: IF AO[2] >= 3000, CALL SUBPRO1
3: IF GI[ R[2] ] = 100, CALL SUBPRO2
Пример
1: IF RO[2] <> OFF, JMP LBL[1]
2: IFDI[3] = ON, CALLSUB1
В команде условного перехода можно задать несколько условий в од-
ной строке в условном операторе при помощи логических операторов («and»
и «or», означающих соответственно «и», «или»). Это упрощает структуру
программы, позволяя эффективно выполнять проверку условий.

3.2. Циклы

Оператор FOR/ENDFOR – это функция повторяющегося цикла FOR
или ENDFOR с указанным временем действия.
Оператор FOR имеет следующий формат (рис. 3.3):
35
Рис. 3.3. Оператор FOR
Счётчик хранится в регистре. Начальное значение может быть констан-
той, регистром или регистром аргумента. Константа или целое число нахо-
дится в пределах от –
32 767 до 32 766. Конечное значение может быть кон-
стантой, регистром или регистром аргумента.
При вхождении в цикл For, начальное значение передаётся в счётчик.
Для выполнения цикла FOR/ENDFOR должны соблюдаться следующие ус-
ловия. Если задано условие TO, начальное значение должно быть меньше
или равно конечному значению. Если задано условие DOWNTO, начальное
значение должно быть больше или равно конечному знач
ению. Если условие
не соблюдено, курсор перейдёт к следующей строке после оператора
ENDFOR, а сам цикл не будет исполняться. Оператор FOR исполняется толь-
ко один раз в пределах цикла FOR/ENDFOR.

3.3. Команды ожидания

Команда ожидания используется для остановки выполнения програм-
мы на заданный период времени или пока не будет удовлетворено условие.
Доступны два типа команд ожидания. Команда ожидания с ограничением по
36
времени задерживает выполнение программы на заданный период времени.
Условная команда ожидания задерживает выполнение программы, пока
не будет удовлетворено заданное условие или не истечет заданный период
времени.
Команда ожидания с ограничением по времени задерживает выпол-
нение программы на заданный период времени (в секундах). Она имеет формат
WAIT (время)
Пример
WAIT 10.5sec
WAITR[1]
Условная команда ожидания задер
живает выполнение программы,
пока не будет удовлетворено заданное условие или не истечёт заданный пе-
риод времени. Формат команды
WAIT (условие) (действие)
Доступны два метода указания действий по истечении времени. Если
действие не задано, выполнение программы останавливается, пока заданное
условие не будет удовлетворено. Если условие не удовлетворено до истечения
времени ожидания, указанного в «14 W
AIT timeout», на экране конфигурации
системы команда Timeout, LBL[i] переводит программу к указанной метке.
Пример
WAITR[2] <> 1, TIMEOUTLBL[1]
Условная команда ожидания регистра сравнивает значение регистра
с другим значением и задерживает выполнение программы, пока не удовле-
творено условие сравнения. Формат команды представлен на рис. 3.4.
Рис. 3.4. Условная команда ожидания регистра
37
Рис. 3.5. Условная команда ожидания ввода-вывода (формат 1)
Рис. 3.6. Условная команда ожидания ввода-вывода (формат 2)
Пример
WAITR[ R[1] ]> = 200
Условная команда ожидания ввода-вывода сравнивает значение сиг-
нала ввода-вывода с другим значением и задерживает выполнение програм-
мы, пока не удовлетворено условие сравнения.
Пример
WAIT DI[2] <> OFF, TIMEOUT LBL[1]
или
WAITRI[ R[1] ] = R[1]
38
Если используется значение Off, то за условие обнаружения принима-
ется задний фронт сигнала. Условие не удовлетворено, пока сигнал остаётся
выключенным. Условие обнаружения удовлетворено, если сигнал изменяется
из состояния «включен» в состояние «выключен».
Если используется значение On, то за условие обнаружения принима-
ется передний фронт сигнала. Условие не удовлетворено, пока сигнал остаёт-
ся включённым. Условие обнаружения удовлетворено, если сигнал изменяет-
ся из сост
ояния «выключен» в состояние «включен».
В условной команде ожидания можно задать несколько условий в од-
ной строке в условном операторе при помощи логических операторов («and»
и «or»). Это упрощает структуру программы, позволяя эффективно выпол-
нять проверку условий.
Команда записывается в следующем формате:
WAIT <условие 1>and<условие 2>and<условие 3>
или
WAIT <условие 1>or<условие 2>or<условие 3>
Если операторы «and» (логическое произведение) и «or» (логическая
сумма) используются совместно, логика усложняется, чт
о снижает удобочи-
таемость программы и затрудняет редактирование. По этой причине в данной
функции запрещено совместное использование логических операторов «and»
и «or».
Можно задавать до пяти условий в одной строке сочетанием операто-
ров «and» или «or». Пример: WAIT <условие 1>and<условие 2>and<условие
3>and<условие 4>and<условие 5>
Сигналы ввода-вывода бывают следу
ющих типов.
Сигнал ввода-вывода периферийных устройств. Сигнал ввода-вывода
панели оператора. Сигнал ввода-вывода робота. Цифровой сигнал ввода-
вывода. Групповой сигнал ввода-вывода. Аналоговый сигнал ввода-вывода.
Сигналы периферийного ввода-вывода (UI/UO) – это группа сигналов,
решение об использовании которых принимается системой. Эти сигналы ис-
39
пользуются для внешнего управления роботом и связаны с устройством дис-
танционного управления и периферийными устройствами через следующие
интерфейсы и каналы ввода-вывода.
Аналоговые сигналы ввода-вывода (AI/AO) передаются и принимаются
от аппарата дуговой сварки и периферийного оборудования по сигнальным
линиям ввода-вывода печатной платы обработки сигналов ввода-вывода (или
блока ввода-вывода). Напряжение ан
алоговых сигналов ввода-вывода преоб-
разуется в цифровой вид, когда выполняется их чтение или запись. Поэтому
они не связаны напрямую с напряжением сигнала ввода-вывода.
Цифровой ввод-вывод (DI/DO) – это группа универсальных сигналов,
которые передают или принимают данные периферийного оборудования че-
рез плату обработки сигналов ввода-вывода (или блок ввода-вывода). Он
и
могут использоваться для передачи и приёма данных от ведущего канала
ввода-вывода (такого как устройство ЧПУ). Цифровой сигнал может быть
включен или выключен.
Сигналы ввода-вывода робота (Вход RI [1 – 8], Выход RO [1 – 8]) – это
цифровые сигналы, используемые в качестве сигналов ввода-вывода рабоче-
го органа робота. Сигнал ввода-вывода рабочего органа подключается к
разъёму на руке робота и позво
ляет использовать её. Сигналы ввода-вывода
рабочего органа включают до 8 универсальных сигналов ввода и 8 универ-
сальных сигналов вывода.
Групповой сигнал ввода-вывода (GI/GO) – это группа универсальных
сигналов, передающих или принимающих данные с использованием двух
или более сигнальных линий в качестве одной группы. Значение группового
сигнала ввода-вывода представлено в десятично
м или шестнадцатеричном
формате. При передаче данных значение преобразуется в двоичное число.
Практические задания для самостоятельной работы
1. Напишите программу, в соответствии с которой робот будет осу-
ществлять фрезеровку контура в форме квадрата со стороной 50 мм. Моди-
фицируйте программу таким образом, чтобы указанная операция выполня-
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]