Организация цикла в G-коде
(В конце можно опрос «Сталкивались ли Вы с циклами в УП? Да/Нет»)
Иногда бывает необходимость зациклить часть или всю управляющую программу. Другой типичный пример обращения к циклу - необходимость изменять значения параметров обработки.
В этой ситуации иногда можно применять конструкцию цикла с переменными.
Определения:
Цикл — разновидность управляющей конструкции в программировании,
предназначенная для организации многократного исполнения набора инструкций (команд).
Переменная — поименованная, либо адресуемая иным способом область памяти,
адрес которой можно использовать для осуществления доступа к данным.
Данные, находящиеся в переменной называются значением этой переменной.
Обозначения:
O100 do - начало тела цикла
O100 while [условие выхода] - конец тела цикла с условием выхода
#n - (n номер) обозначение переменной
пример уменьшение значения переменной на 1, #1 = [#1 - 1]
Пример конструкции цикла:
#2 = 1 (В переменную #2 записывается значение 1)
G0 X0 Y0 Z0
O100 do (Команда начала цикла)
(ниже - тело цикла)
G01 X#1
G01 Y#1
G01 X#2
G01 Y#2
#1 = [#1 - 1] (Уменьшение значения переменной #1 на 1)
#2 = [#2 + 1] (Увеличение значения переменной #2 на 1)
O100 while [#1 GT 10] (Условие выхода из цикла(выйти из цикла когда в переменной #1 будет значение 10))
Результат/вывод: как мы видим по примере управляющей программы конструкция цикла состоящая из 8 строк заменяет около 40 команд линейной интерполяции, но так же заметим что использование циклов и переменных считается устаревшим и официально не поддерживается многими производителями. В PUMOTIX это работает, но можно применять более изящные конструкции с помощью макросов на языке LUA.
Исходный код примера, можно ознакомиться с ним подробнее поместив код в текстовый файл и загрузив в качестве УП:
G40 G90 G91.1
G64 P0.1
M03
S20000
F750
#1 = 20
#2 = 1
G00 X0 Y0 Z0
O100 do
G1 X#1
G1 Y#1
G1 X#2
G1 Y#2
#1 = [#1 - 1]
#2 = [#2 + 1]
O100 while [#1 GT 10]
M05
M30
Исходный код управляющей программы:
Неизвестный макрос: view-file. Нажмите на это сообщение для получения подробной информации.