Некорректная работа макро / кривые руки

Post Reply
Taranila
Posts: 1
Joined: Tue Jan 28, 2020 8:19 pm

Некорректная работа макро / кривые руки

Post by Taranila » Tue Jan 28, 2020 8:36 pm

Всем привет. Проблема с написанием макро.
Станок https://www.stepdrive.ru/stanki-strizh/strizh-2. Плата ET-6, исходя из описания.
http://docs.pv-automation.com/mycnc/global_variables - отсюда: #5043 - рабочие координаты Z

Code: Select all

G00 G17 G49 G40 G90
S10000 M03
G0 X0 Y0 Z0

N100
G91 G1 Z-0.05 F100
Y-10
G0 X3
Y10
X-3

IF[#5043 LE -0.1] 300
JUMP 100

N300
M30
Ожидается постепенное заглубление с проходами и остановка на уровне Z-0.1.
По факту по первому достижению условия, выполняется остановка M30. Ось Z при этом на -0.05

ivan
Posts: 233
Joined: Tue Apr 16, 2019 5:30 pm
Location: Ottawa, Canada

Re: Некорректная работа макро / кривые руки

Post by ivan » Thu Jan 30, 2020 8:11 pm

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

По сути, программа проверяет значение переменной #5043 не на тот момент когда до нее доходит дело в макросе, а на момент запуска программы (при нажатии кнопки Пуск). То есть если глобальная переменная не удоволетворяет условию IF в самом начале, то к моменту выполнения этой конкретной строки макроса ничего не изменится и программа будет считать что условие не соблюдено.

Рекомендую ввести локальную переменную (#10), приравнять ее в начале к нулю (так как вы в начале выходите на Z0), и потом отнимать от нее при каждом проходе по 0.05. Таким образом в блоке IF можно будет проверить эту локальную переменную вместо глобальной #5043. Код тогда будет выглядеть примерно вот так:

Code: Select all

G00 G17 G49 G40 G90
S10000 M03
G0 X0 Y0 Z0

#10 = 0 

N100
G91 G1 Z-0.05 F100
Y-10
G0 X3
Y10
X-3
#10 = #10 - 0.05

IF[#10 GT -0.1] 100

M30

Post Reply