ФСЛ ТехноФСЛ ТехноОборудование дляметаллообработки

Макропрограммы G65 в ЧПУ SZGH 880T: переменные, аргументы, операции H и условные переходы

22 октября 2026 г. · 7 мин чтения

Если деталь одна, а размеров у неё десяток, пишите одну программу с переменными вместо десяти копий. Как устроены макропрограммы G65 на токарных SZGH: переменные, аргументы, арифметика и переходы.

Токарный станок SZGH TC36, общий вид

Переменные: какие переживут выключение станка

Переменная записывается как # и номер: #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), поэтому проверьте его по экрану аварий вашей системы.

Нужна консультация по станкам SZGH?

Подскажем по обслуживанию, подберём модель под вашу деталь и подготовим коммерческое предложение.