Получение текущей позиции в программе.

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

Получение текущей позиции в программе.

Post by Taranila »

Убрав лишнее получаю этот код:

Code: Select all

G90 G10 L70 P0 X0
#1=1
#2=1
G91 G0 X1
G90 G53 G10 L81 P2 Q5021 (#2 = machine x)
G10 L190 P2 Q1 (#2 += #1)
X#2
В конце ожидается переезд Х в 2, но получается в 0. Исходя из моего предыдущего поста проблема в том, что значения глобальных переменных подставляются в программу при её запуске, но тогда бы Х ехал в 1, а он едет в 0.

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

Code: Select all

G90 G10 L70 P0 X0
#1=1
#2=1
G91 G0 X1
G90 G53 G10 L81 P2 Q5021 (#1 = machine x)
G10 L190 P2 Q1 (#1 += 1)
G90 G28.9 X2 F400
то Х едет в 3. Совсем запутался.
И кстати, что такое G28.9? По списку это Home Position Address - не понял что хранит/делает и какой синтаксис использования.

mycnc
Posts: 712
Joined: Thu May 10, 2018 2:42 pm
Location: Ottawa, Canada
Contact:

Re: Получение текущей позиции в программе.

Post by mycnc »

Ваш код работать не будет.
Перемешивать обращение к переменным #1 #2 и G10L___ нельзя.
В случае обращения # все значения считаются и запоминаются на этапе компиляции еще ДО запуска программы.
G10L___ выполняется непосредственно внутри контроллера и оперирует с текущими значениями во время выполнения УП.

Посмотрите макросы центроискателя из визарда. При поиске центра там по касанию запоминаются 2 координаты, потом вычисляется среднее арифметическое и машина позиционируется в вычисленную координату центра. Вероятно, оттуда можно взять то, что вам надо.

Или опишите задачу целиком, мы подберем решение

Post Reply