Разделът Поддържани кодове и възможности на парсера описва пълната функционалност на интерпретатора на G-кодове
в NCPlayer, включително поддържаните формати на команди, модални групи, макропрограмиране, аритметика, условия,
цикли и разширени функции.
Парсерът е проектиран за работа със стил FANUC програми
(по-специално 0i-MB), но е съвместим и с други контролери при подходяща конфигурация.
1. Поддържани формати на G/M кодове
G-кодове:
Стандартни модални групи:
G0 — бързо позициониране.
G1 — линейна интерполация.
G2 / G3 — кръгова интерполация CW/CCW с поддръжка на:
параметър R (радиус на дъгата);
параметри I, J, K (център на дъгата в ABS или INC режим);
плоскости G17, G18, G19.
G17 / G18 / G19 — избор на равнина.
G20 / G21 — избор на единици (инчове / милиметри).
G40 / G41 / G42 — компенсация на радиуса на инструмента.
G43 / G44 — компенсация на дължината на инструмента.
G49 — отмяна на компенсацията на дължината на инструмента.
G54 – G59 — системи за работни координати (вкл. разширени G54.1 Px).
G90 / G91 — абсолютен / инкрементален режим.
G98 / G99 — връщане при цикли на пробиване (начална точка / R-равнина).
Цикли за пробиване:G73, G74, G76,
G80, G81, G82, G83 с поддръжка на параметри
X, Y, Z, R, Q, F.
Специални кодове:G65 — извикване на потребителски макро с аргументи.
M-кодове:
Управление на шпиндела: M3, M4, M5.
Управление на охлаждането: M7, M8, M9.
Спиране на програмата: M0, M1, M2, M30.
Работа с подпрограми: M98 (извикване), M99 (връщане).
2. Поддръжка на макропрограмиране
Локални променливи: #1 – #33 (нулират се при M99, ако параметърът е активиран).
Общи променливи: #100 – #199.
Глобални променливи: #500 – #531.
Системни променливи: съгласно FANUC (напр. #5001 за текущата X позиция).
Поддръжка на вложени функции, напр. SIN[FIX[#100+0.4]].
Подмяна на адреси в командите: X[#500], F[#101+10] и др.
3. Логически конструкции
IF [условие] GOTO Nxxx — скок към зададен ред.
IF [условие] THEN ... — изпълнение на команда, ако условието е вярно.
Логически оператори: AND, OR, XOR (вложени условия до 3 нива).
Сравнения: EQ, NE, GT, LT, GE, LE.
WHILE [условие] DOx ... ENDx — условни цикли.
Броячи на цикли и защита от безкраен цикъл.
4. Подпрограми
Дефиниция на подпрограма: Oxxxx.
Извикване: M98 Pxxxx Lnn — с поддръжка на аргумента L.
Връщане: M99 (с нулиране на локалните променливи, ако параметърът е активен).
Поддръжка на G65 Pxxxx с предаване на аргументи (A, B, C... H, I и др.) директно в локални променливи.
Рекурсивни извиквания с контрол на дълбочината на стека.
5. Други възможности
Поддръжка на едновременно използване на абсолютен (G90) и инкрементален (G91) режим в една и съща програма.
Автоматично нормализиране на кода: подравняване на интервалите, премахване на излишни EOB символи, коректна обработка на коментари.
Директно конвертиране на формати на дъги:
R → IJK (в ABS или INC режим).
IJK → R.
Парсване с предварителна подмяна на променливи преди симулацията.
Вграждане на подпрограми „в линия“ за пълна симулация на траекторията.
Бележка: Парсерът на NCPlayer непрекъснато се развива. В бъдещи версии ще бъде разширена поддръжката
на специфични кодове за контролери като Syntec, Siemens и други.