Перейти к содержанию

Список макрокоманд языка Macro-B — система ЧПУ fanuc

Перенесена Fanuc
  • На нашем форуме есть бесплатный курс по программированию ЧПУ для систем FANUC и Sinumerik, включающий разбор синтаксиса, примеры кода и практические рекомендации. Курс полностью бесплатный! Для доступа к материалам требуется регистрация на форуме.

    Макрокоманда Описание
    Макропеременные
    #0 Эта переменная всегда нулевая. Этой переменной нельзя присвоить никакого значения.
    #1 – #33 Локальные переменные могут использоваться только внутри макропрограммы и содержат такие данные, как, например, результаты операций. При отключении питания локальные переменные обнуляются. При вызове макропрограммы локальным переменным присваиваются аргументы.
    #100 – #199 #500 – #999 Общие переменные могут совместно использоваться в различных макропрограммах. При отключении питания переменные от #100 до #199 обнуляются. В переменных от #500 до #999 данные хранятся даже при отключении питания.
    #1000 – #99999 Системные переменные используются для чтения и записи различной системной информации – данных о позиции инструмента, величинах компенсации, времени и др.
    Диапазон значений переменных Локальные и общие переменные могут иметь значение 0 или значение в следующих диапазонах: от -10^47 до -10^-29 от 10^-29 до 10^47 Если результат вычисления окажется неверным, включается сигнал тревоги P/S номер.
    Арифметические операции
    + Сложение. Синтаксис: [#A+#B]
    - Вычитание. Синтаксис: [#A-#B]
    * Умножение. Синтаксис: [#A#B]*
    / Деление. Синтаксис: [#A/#B]
    ^ Возведение в степень
    MOD Оператор используется для деления двух чисел и возвращает только остаток от деления. Любые числа с плавающей запятой предварительно округляются до целого. Синтаксис: #100=[37 MOD 30] Переменная #100 будет содержать число 7.
    Логические функции
    OR Логическое ИЛИ. Оператор используется для проверки того, выполняется ли одно из двух условий. Если значение левого операнда истинно, или значение правого операнда истинно, или оба значения истинны, то логический оператор ИЛИ возвращает TRUE. В противном случае он вернет FALSE. Синтаксис: #C=[#A OR #B]
    XOR Логическая операция исключающее ИЛИ (ИЛИ-НЕ) выполняется с двумя битами (A и B). Результат выполнения логической операции XOR будет равен 1 (единице), если один из битов A или B равен 1 (единице), во всех остальных случаях, результат равен 0 (нулю). Синтаксис: #C=[#A XOR #B]
    AND Логическая операция И. Всё выражение считается истинным, только если истинен каждый операнд — каждое из составных выражений. Иными словами, AND, означает «и то, и другое». Синтаксис: #C=[#A AND #B]
    Логические или условные операторы
    EQ = — Равно. Синтаксис: [#A EQ #B]
    NE — Неравно. Синтаксис: [#A NE #B]
    GT > — Больше. Синтаксис: [#A GT #B]
    LT < — Меньше. Синтаксис: [#A LT #B]
    GE — Больше либо равно. Синтаксис: [#A GE #B]
    LE — Меньше либо равно. Синтаксис: [#A LE #B]
    Тригонометрические функции
    SIN Функция синуса. Синтаксис: #C=SIN[#B]
    COS Функция косинуса. Синтаксис: #C=COS[#B]
    TAN Функция тангенса. Синтаксис: #C=TAN[#B]
    ATAN Функция арктангенса.Синтаксис: #C=ATAN[#B]
    ASIN Функция арксинуса.Синтаксис: #C=ASIN[#B]
    ACOS Функция арккосинуса. Синтаксис: #C=ACOS[#B]
    Функции округления чисел
    ROUND Функция округляет число в большую сторону, если следующая цифра после запятой больше или равна 5. В противном случае число округляется в меньшую сторону. Синтаксис: #C=ROUND[#B]
    FIX Функция округляет число в меньшую сторону. Синтаксис: #C=FIX[#B]
    FUP Функция округляет число в большую сторону. Синтаксис: #C=FUP[#B]
    Дополнительные функции
    SQRT Квадратный корень. Синтаксис: #C=SQRT[#B]
    ABS Функция, возвращающая абсолютное значение числа. Синтаксис: #C=ABS[#B]
    LN Функция возвращает натуральный логарифм вещественного числа Х. Число Х должно быть положительным — иначе случится ошибка времени выполнения.
    EXP Функция возвращает экспоненциальное значение параметра с плавающей запятой.
    Условное выполнение одиночной макрокоманды
    IF «Если» — Оператор условия позволяет выполнять различные действия с условием. После оператора IF указывается некоторое выражение. Если это выражение оказывается истинным (true), то выполняется команда (например, команда безусловного перехода), находящаяся в одном кадре с IF. Если выражение оказывается ложным (false), то команда, находящаяся в одном кадре с IF, не выполняется, а управление передается следующему кадру. Синтаксис: IF [#A GT #B] GOTO #C
    THEN «Тогда» — Оператор выполнения определённой команды только при условии истинности (true) некоторого логического выражения в конструкции IF. Синтаксис: IF [#A GT #B] THEN #A=#C
    Циклы
    WHILE Цикл с условным выражением, выполняется до тех пор, пока истинно (true) указанное условие. Если условие сразу ложно (false), цикл даже не начнёт свою работу и будет полностью пропущен, а управление перейдёт к кадру размещённому за END n. Синтаксис: WHILE [Условное выражение] DO n… …Исполняемый код… END n… …Исполняемый код… Где n идентификационный номер, может быть 1, 2 или 3. Если используется номер, кроме 1, 2 и 3, то возникает сигнал тревоги P/S ном. 126. Идентификационные номера (1-3) в цикле DO-END могут использоваться неограниченное количество раз. Тем не менее, обратите внимание на то, что если программа включает пересекающиеся циклы повтора (перекрывающиеся диапазоны DO), то возникает сигнал тревоги P/S ном. 124. - Идентификационные номера (1-3) могут использоваться неограниченное количество раз. - Диапазоны DO не могут перекрещиваться. - Циклы DO могут быть вложены до трех уровней. - Управление может переноситься за пределы цикла. - Нельзя выполнить переходы к позиции внутри цикла. Если выполняется переход к номеру последовательности, расположенному внутри цикла, возникает сигнал тревоги P/S ном. 125.
    Безусловный переход
    GOTO Оператор безусловного перехода позволяет выполнить переход к строке программы с указанным номером. Синтаксис: GOTO N# где N# — номер строки программы.
    Условный переход
    IF GOTO Оператор условного перехода позволяет выполнить переход к строке программы с указанным номером при условии истинности указанного логического выражения. Синтаксис: IF [#A EQ #B] GOTO N# где N# — номер строки программы.
    Комментарии
    ( ) Комментарии в программе заключаются в круглые скобки. Комментарии игнорируются при выполнении программы. Синтаксис: (Это комментарий)
    Подпрограммы
    CALL Оператор вызова подпрограммы. Позволяет вызвать подпрограмму с указанным номером и передать ей аргументы. Синтаксис: CALL O# [аргументы] где O# — номер подпрограммы, аргументы — переменные, которые передаются подпрограмме.
    M99 Оператор завершения подпрограммы. Возвращает управление в основную программу, которая вызвала подпрограмму. Синтаксис: M99
    Системные функции
    #3000 Оператор остановки программы с выводом сообщения. Синтаксис: #3000=1 (Сообщение) где 1 — номер сообщения, Сообщение — текст сообщения.
    #3006 Оператор остановки программы. Синтаксис: #3006=1 (Сообщение) где 1 — номер сообщения, Сообщение — текст сообщения.
    #3007 Оператор аварийной остановки программы. Синтаксис: #3007=1 (Сообщение) где 1 — номер сообщения, Сообщение — текст сообщения.
    Примеры
    Пример 1: Условное выполнение
    IF [#100 GT 50] THEN #101=1 Если значение переменной #100 больше 50, то переменной #101 присваивается значение 1.
    Пример 2: Цикл WHILE
    #100=0 WHILE [#100 LT 10] DO 1 #100=[#100+1] END 1 Переменной #100 присваивается значение 0. Затем начинается цикл WHILE, который выполняется до тех пор, пока значение переменной #100 меньше 10. Внутри цикла значение переменной #100 увеличивается на 1 при каждом выполнении цикла.
    Пример 3: Безусловный переход
    GOTO N100 Позволяет выполнить переход к строке программы с номером 100.
    Пример 4: Вызов подпрограммы
    CALL O200 [#1, #2, #3] Вызов подпрограммы с номером 200 и передача ей аргументов #1, #2, #3.
    Пример 5: Комментарии
    (Это комментарий) Комментарии игнорируются при выполнении программы.
  • KirilljsK Kirilljs сослался на эту тему в
  • KirilljsK Kirilljs переместил эту тему из ПO для чпу

Металлический
калькулятор
веса онлайн

Перейти
  • G84 на FANUC: Нарезаем резьбу метчиком без сюрпризов

    Fanuc
    2
    0 Голоса
    2 Сообщения
    65 Просмотры
    KirilljsK
    Как рассчитать и выбрать оптимальные обороты для нарезания резьбы Чтобы точно определить обороты шпинделя для резьбы, используйте формулу или таблицу ниже. Формула для расчета n = (Vc × 1000) / (π × D) где: n — обороты (об/мин), Vc — скорость резания (м/мин): Сталь → 20-25 м/мин, Нержавейка → 12-15 м/мин, D — диаметр резьбы (мм). Пример для M10×1.5 в стали: n = (20 × 1000) / (3.14 × 10) ≈ 636 об/мин. Для крупного шага (>1.5 мм): уменьшайте обороты на 20-30%. Таблица оптимальных оборотов Резьба (М) Шаг, мм Сталь (Vc=20) Нержавейка (Vc=15) M6 1.0 1060 об/мин 800 об/мин M8 1.25 800 об/мин 600 об/мин M10 1.5 636 об/мин 477 об/мин M12 1.75 530 об/мин 400 об/мин M16 2.0 445 об/мин 334 об/мин M20 2.5 339 об/мин 254 об/мин Как применять данные на практике Выберите материал (сталь/нержавейка) и найдите в таблице базовые обороты. Откорректируйте значение для крупного шага (шаг >1.5 мм — уменьшите обороты на 20-30%). Проверьте стружку: Идеальная — короткая и ровная. Длинная/горячая стружка → снизьте обороты. Пример для нержавейки M10×1.5: 477 об/мин (по таблице) → 400-450 об/мин (после коррекции). Для других резьб (например, M24 или M30) пересчитайте обороты по формуле. Если нужна помощь с расчетом — пишите в комментариях! Совет: Всегда используйте СОЖ и начинайте с оборотов на 10-15% ниже расчетных — это защитит метчик от поломки.
  • G75 на FANUC: Как нарезать канавку без лишних телодвижений?

    Fanuc
    1
    0 Голоса
    1 Сообщения
    24 Просмотры
    Нет ответов
  • CNC-лайфхак: G02 и G03 на Fanuc — как не сломать заготовку? 🔧

    Fanuc
    1
    1 Голоса
    1 Сообщения
    17 Просмотры
    Нет ответов
  • g73 Fanuc токарный цикл пример для черновой обработки

    Fanuc
    1
    2 Голоса
    1 Сообщения
    53 Просмотры
    Нет ответов
  • Фрезерование круглого контура: макропрограмма для ЧПУ Fanuc

    Перенесена Fanuc
    1
    0 Голоса
    1 Сообщения
    298 Просмотры
    Нет ответов
  • Фрезерование прямоугольного контура на ЧПУ Fanuc

    Перенесена Fanuc
    1
    0 Голоса
    1 Сообщения
    130 Просмотры
    Нет ответов
  • Самые Распространенные и Популярные Программы для ЧПУ Fanuc

    Перенесена Fanuc
    1
    0 Голоса
    1 Сообщения
    501 Просмотры
    Нет ответов
  • Примеры программ на Fanuc для станков с ЧПУ

    Перенесена Fanuc
    2
    1
    0 Голоса
    2 Сообщения
    2k Просмотры
    KirilljsK
    Вы можете найти больше полезных постов о системе Fanuc в разделе -> https://forum.investsteel.ru/category/107/fanuc