Макропрограммирование. Пользовательские макросы fanuc

Predator
5-й разряд
Сообщения: 5933
Зарегистрирован: 30 авг 2014, 19:14
Репутация: 4135
Страна: СССР
 

  »

Макропрограммирование систем ЧПУ Fanuc

Параметрическое программирование




Список макрокоманд языка 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. Идентификационные номера (1-3) могут использоваться неограниченное количество раз.
  2. Диапазоны DO не могут перекрещиваться.
  3. Циклы DO могут быть вложены до трех уровней.
  4. Управление может переносится за пределы цикла.
  5. Нельзя выполнить переходы к позиции внутри цикла.
Если выполняется переход к номеру последовательности, заданный оператором перехода 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


Примечание:

Тема закрыта до полного заполнения.


© Точные машины. Все права защищены.

Тэги:

Вернуться в «Fanuc»