G54 - переключение на заданную оператором систему координат

Материал из NikiWiki
(перенаправлено с «G59.1»)
Перейти к:навигация, поиск
YourBunnyWroute.pngАвтор предупреждает! Статья не дописана!
Данная статья не дописана и требует до- или, даже, переработки. Примеры и данные в этой статье могут быть не проверены, тесты не отлажены, а информация не действительна. Я постараюсь, чтобы таких статей было по-меньше, но пока они есть. Смотрите: NikiWiki:Отказ от ответственности


Команда G54 и до команды G58 включительно применяется для установки относительной системы координат с порядковым номером от 1 до 5 из 254 возможных, например:

N001 G54 
N002 G00 X2 Y2 Z2

В приведенном примере станок переместиться в позицию, указанную в INI файле, включив режим относительных координат и, если эта система начинается, например, в позиции X=10,Y=10,Z=10? то команда в строке N002 переместит шпиндель в абсолютную позицию X=12,Y=12,Z=12, а совсем не X=2,Y=2,Z=2

Данная команда удобна для изготовления большого количества одинаковых деталей из одной заготовки. Всего относительных систем координат может быть 254 штуки.

Параметры систем координат задаются G10 или хранятся в ini файле.

Данная команда является модальной. Т.е. ее включение гарантирует переход станка в относительную систему координат пока не будет применена другая команда этой же группы.

(i) Обратите внимание на тот факт, что команда G54 и ее "клоны" вызовет ошибку выполнения при включенной компенсации на радиус инструмента. Иными словами вызов G40 перед сменой системы координат почти обязателен.
Таблица номеров переменных для систем координат в файле linuxcnc.var
G-код выбора системы координат CS

Система координат

X Y Z A B C U V W R
G54 1 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230
G55 2 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250
G56 3 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270
G57 4 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290
G58 5 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310
G59 6 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330
G59.1 7 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350
G59.2 8 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370
G59.3 9 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390

Легко видеть, что каждая система координат занимает ровно по 10 переменных (по числу параметров) и начавшись с какого-либо номера, например 5381 занимает непрерывный диапазон "имен" (правильнее сказать "номеров") переменных.

Пример

Снимок экрана выполнения примера testG55

Сразу оговорюсь, что проверка этого примера через пару дней привела к ошибке. В системе координат откуда ни возьмись появились дополнительные отступы и еще что-то мне, пока, не понятное. По сему пример можно считать неработоспособным.


«

О сколько нам открытий чудных
Готовят просвещения дух
И опыт, сын ошибок трудных,

И гений, парадоксов друг.
»

Почему вспомнил - не знаю, но сюда, да и вообще к LinuxCNC - подходящая эпиграмма.

Для примера, "пойдем" в файл linuxcnc.var и сменим указания для 2ой системы координат (G55). Нас интересуют переменные: 5241, 5242 и 5243, отвечающие за координаты X,Y и Z соответственно. Нам ведомо, что позиции HOME станка находятся в точках X=1, Y=317, Z=99 (мы же отступили на 1мм от датчиков HOME, чтобы не было желания у них сработать в процессе выполнения программы). Нас же интересует система с началом координат в левом переднем нижнем углу станка (HOME у него в левом заднем верхнем).

Соответственно, пишем в файл linuxcnc.var вот что:

5241 20.000000
5242 20.000000
5243 20.000000

Иными словами, станок командой G00 X0 Y0 Z0 после команды G55 должен приехать в абсолютную позицию X20 Y20 Z20.

Обращаем внимание на тот факт, что переменные:

5221    1.000000
5222    317.000000
5223    99.000000

установлены ровно туда, где у нас указан "Home position", задаваемый в Step Conf Wizard. Иными словами, станок всегда использует систему координат номер один (G54), что расходится с той документацией, что я находил в интернете, где систем координат вообще 254, но, видимо, это "упрощение" LinuxCNC. Или, что скорее - я еще не нашел всех способов задания системы координат.

Протестируем наши настройки кодом из файла testG55.ngc (тут он приведен целиком, посему отдельной загрузки для него не предусмотрено):

%
N0000 G17 G49 G21 G40 G92.1
( перейдем в старотовой системе координат в позицию 0,0,0)
N0010 G00 X0 Y0 Z0
( нарисуем квадратик в текущей позиции)
N0021 G01 X20 F200  
N0022 G01 Y20 F200
N0023 G01 X0 F200 
N0024 G01 Y0 F200
( переключим систему координат на вторую )
N0030 G55
( переместимся в начало координат новой системы отсчета )
N0040 G00 X0 Y0
(нарисуем второй квадратик, из позиции )
N0050 G01 X20 F200
N0051 G01 Y20 F200
N0052 G01 X0 F200
N0053 G01 Y0 F200
   
N0060 M30
%  

Объяснять тут мало что стоит. Все видно на снимках экрана LinuxCNC.