Список макрокоманд языка Macro-B — система ЧПУ fanuc
Макрокоманда | Описание |
Макропеременные | |
#0 | Эта переменная всегда нулевая. Этой переменной нельзя присвоить никакого значения. |
#1 – #33 | Локальные переменные могут использоваться только внутри макропрограммы и содержат такие данные, как, например, результаты операций. При отключении питания локальные переменные обнуляются. При вызове макропрограммы локальным переменным присваиваются аргументы. |
#100 – #199 #500 – #999 | Общие переменные могут совместно использоваться в различных макропрограммах. При отключении питания переменные от #100 до #199 обнуляются. В переменных от #500 до #999 данные хранятся даже при отключении питания. |
#1000 – #99999 | Системные переменные используются для чтения и записи различной системной информации – данных о позиции инструмента, величинах компенсации, времени и др. |
Диапазон значений переменных | Локальные и общие переменные могут иметь значение 0 или значение в следующих диапазонах: от -1047 до -10-29 от 10-29 до 1047 Если результат вычисления окажется неверным, включается сигнал тревоги 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 могут быть вложены до трех уровней.Управление может переносится за пределы цикла.Нельзя выполнить переходы к позиции внутри цикла.Если выполняется переход к номеру последовательности, заданный оператором перехода GOTO, то осуществляется поиск номера последовательности. По этой причине обработка данных в обратном направлении занимает больше времени, чем обработка данных в прямом направлении. Использование оператора цикла WHILE для выполнения повторов сокращает время на обработку данных. |
DO | Начало цикла. |
END | Конец цикла. Если выражение в конструкции WHILE не истинно, то управление передается кадру, следующему за END |
Ветвления и переходы | |
GOTO | Происходит переход к номеру последовательности n. Если задан номер последовательности, не входящий в диапазон от 1 до 99999, то возникает сигнал тревоги P/S ном. 128. Для ввода номера последовательности также можно использовать выражение. GOTO n; – Безусловный переход к кадру n, где n: номер последовательности (от 1 до 99999); GOTO #10; — Вычисляемый переход к кадру, установленному переменной #10. Синтаксис: GOTO 100 GOTO [Выражение] |
Работа с файлами и портом RS232 | |
POPEN | Открыть порт RS232 |
DPRNT | Вывод данных на печать через порт RS232 |
PCLOS | Закрыть порт RS232 |