
Переменные: какие переживут выключение станка
Переменная записывается как # и номер: #105, #109, #125. Номера делятся на типы.
| Номера | Тип | Свойства |
|---|---|---|
| #0 | Пустая | Всегда пустая (null), присвоить значение нельзя |
| #1...#50 | Локальные | Только внутри макропрограммы; при вызове получают значения аргументов; при выключении питания очищаются |
| #100...#199 | Общие | Одинаковы во всех макропрограммах; при выключении питания очищаются |
| #500...#999 | Общие сохраняемые | Как #100...#199, но сохраняются при выключении питания |
| #1000...#5235 | Системные | Сигналы, коррекции, модальные данные, координаты |
Адреса O, G и N не могут содержать переменные: записи O#100, G#101, N#120 вызовут ошибку. Если в адресе стоит пустая переменная, адрес игнорируется целиком. На экране макропеременных видны и вводятся вручную только общие переменные; локальные и системные на экран не выводятся — чтобы посмотреть значение, присвойте его общей переменной.
- #1000...#1047 — входные сигналы интерфейса из PLC (чтение); #1100...#1147 — выходные сигналы в PLC (запись).
- #1500...#1531 — коррекция длины по X (на радиус), #1600...#1631 — по Z, #1800...#1831 — радиус вершины; износ — #1900...#2231.
- #3000 — авария пользователя (запись).
- #4001...#4125 — модальная информация (группы G-кодов, коды F, M, S, T, номер кадра и программы).
- #5001...#5015 — координаты: конечная точка кадра, текущее положение в системе станка и детали.
- #5201...#5235 — смещения нуля детали: базовое, G54...G59.
Как вызвать макрос и передать размеры
Формат: G65 P(номер) L(повторения) аргументы. L — число повторений 1...9999 (по умолчанию 1). Буквенные аргументы попадают в локальные переменные: A → #1, B → #2, C → #3, I → #4, J → #5, K → #6, D → #7, E → #8, F → #9, M → #13, Q → #17, R → #18, S → #19, T → #20, U → #21, V → #22, W → #23, X → #24, Y → #25, Z → #26.
- Аргументы можно задавать любыми буквами, кроме G, L, O, M, P; каждую букву один раз (при повторе действует последняя).
- G65 передаёт в макропрограмму аргументы и создаёт новый уровень локальных переменных, M98 — нет.
- Вложенность вызовов G65 — до четырёх уровней, на каждом свой набор локальных переменных #1...#33.
Макрос A: арифметика через G65 Hxx
Формат: G65 H(код) P#i Q#j R#k. Результат пишется в #i, операнды Q и R могут быть константами. Углы задаются в градусах.
| Команда | Операция |
|---|---|
| G65 H01 P#i Q#j | Присваивание #i = #j |
| G65 H02 P#i Q#j R#k | Сложение #i = #j + #k |
| G65 H03 P#i Q#j R#k | Вычитание #i = #j - #k |
| G65 H04 P#i Q#j R#k | Умножение #i = #j × #k |
| G65 H05 P#i Q#j R#k | Деление #i = #j ÷ #k |
| G65 H21 P#i Q#j | Квадратный корень |
| G65 H22 P#i Q#j | Модуль |
| G65 H31 / H32 / H33 / H34 | Синус, косинус, тангенс, арктангенс |
| G65 H80 Pn | Безусловный переход в кадр Nn |
| G65 H81 Pn Q#j R#k | Переход, если #j = #k |
| G65 H99 Pn | Авария пользователя |
Есть и другие операции: двоичные ИЛИ/И/исключающее ИЛИ (H11...H13), остаток от деления (H23), перевод десятичного и двоичного кода (H24, H25), условные переходы H82...H86.
Макрос B: формулы, IF и WHILE
Выражения записываются в квадратных скобках: X[#1+#2-12], Y[#24+#18*COS[#1]], #20=#500*SIN[#120]. Другие скобки не допускаются. Доступны SQRT, ABS, ROUND, FIX, FUP, LN, EXP, SIN, COS, TAN, ASIN, ACOS, ATAN, BIN, BCD.
- GOTO n — безусловный переход в кадр с номером 1...99 999.
- IF [условие] GOTO n — переход, если условие истинно; иначе выполняется следующий кадр.
- IF [условие] THEN команда — выполняется одна команда после THEN.
- WHILE [условие] DOm ... ENDm — цикл пока условие истинно; m = 1, 2 или 3, метки DO и END должны совпадать, области DO не должны пересекаться; вложенность до трёх уровней.
- Операторы сравнения: EQ (=), NE (≠), GT (>), GE (≥), LT (<), LE (≤). Из цикла можно выйти переходом наружу, входить переходом внутрь нельзя.
Пример суммы чисел от 1 до 10: #1=0; #2=1; N1 IF [#2 GT 10] GOTO2; #1=#1+#2; #2=#2+1; GOTO1; N2 M30;
Номер аварии для H99 в руководстве указан двояко (3000 + n и 500 + n), поэтому сверяйте его по экрану аварий. Условия H82...H86 в таблицу не вошли: в оригинале они перепутаны.
Все таблицы — в полном руководстве, раздел «Техническая документация». Токарные модели: TC25 и TC36.
Частые вопросы
Какие переменные сохраняются после выключения станка?+–
Общие сохраняемые переменные #500...#999. Локальные #1...#50 и общие #100...#199 при выключении питания очищаются.
Чем G65 отличается от M98?+–
G65 передаёт в макропрограмму аргументы и создаёт новый уровень локальных переменных, M98 — нет. Вложенность G65 — до четырёх уровней.
Какие адреса нельзя заменять переменной?+–
Адреса O, G и N не могут содержать переменные: записи O#100, G#101, N#120 вызывают ошибку.
Как задать аварию из макропрограммы?+–
Командой G65 H99 Pn. В руководстве номер аварии указан двояко (3000 + n и 500 + n), поэтому проверьте его по экрану аварий вашей системы.

