• 391.FANUC宏程序编程


    运算符

    运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。注意,不能使用不等号

    运算符

    含义

    EQ

    等于(=)

    NE

    不等于

    GT

    大于

    GE

    大于或等于

    LT

    小于

    LE

    小于或等于

    示例程序           下面的程序计算数值1~10的总和

    O9500;#1=0;………………………………….存储和的变量初值

    #2=1;………………………………….被加数变量的初值

    N1 IF[#2GT 10]GOTO 2;…………….当被加数大于10时转移到N2

    #1=#1+#2;…………………………….计算和

    #2=#2+#1;…………………………….下一个被加数

    GOTO 1;………………………………转移到N1

    N2 M30;................................................程序结束

    算术和逻辑运算

    功能

    格式

    备注

    定义

    #i=#j:

     

    加法

    #i=#j+#k

     

    减法

    #i=#j-#k

    乘法

    #i=#j*#k

    除法

    #i=#j/#k

    正弦

    #i=SIN[#j]:

    角度以度指定090度30分表示为90.5度

    反正弦

    #i=ASIN[#j]:

    余弦

    #i=COS[#j]:

    反余弦

    #i=ACOS[#j]:

    正切

    #i=TAN[#j]:

    反正切

    #i=ATAN[#j]:

    平方根

    #i=SQRT[#j]:

     

    绝对值

    #i=ABS[#j]:

    舍入

    #i=ROUND[#j]:

    上取整

    #i=FIX[#j]:

    下取整

    #i=FUP[#j]:

    自然数对数

    #i=LN[#j]:

    指数函数

    #i=EXP[#j]:

    #i=#jOR#k:

    逻辑运算一位一位地按二进制数执行

    异或

    #i=#jXOR#k:

    #i=#jAND#k:

    从BCD转为BIN

    #i=BCD#j;

    用于与PMC的信号交换

    从BIN转为BCD

    #i=BCD#j;

    角度单位

    SIN、ASIN、COS、ACOS、TAN和ATAN的角度单位是度

    ARCSIN#i=ASIN[#j]:

    ●取值范围如下:当参数(N0.6004¥0)NAT位设为0时,270~90度;当参数(N0.6004¥0)NAT位设为1时,-90~90度。

    ●  当#j超过-1到1的范围时,发出P/S报警N0.111。

    ●  常数可替代变量#j。

    ARCCOS#i=ACOS[#j];

    ●  取值范围从180~0度。

    ●  当#j超过-1到1的范围时,发出P/S报警N0.111。

    ●  常数可替代变量#j。

    ARCTAN#i=ATAN[#j];

    ●  指定两边的长度,并用斜杠(/)分开

    ●  取值范围如下:当参数(N0.6004¥0)NAT位设为0时,0~360度[例如:当指定#i=ATAN[-1]/[-1];时,#1=225度]。当参数(N0.6004¥0)NAT位设为1时,-180~180度[例如:当指定#i=ATAN[-1]/[-1];时,#1=-135度]

    ●  常数可替代变量#j。

    自然对数#i=LN[#j];

    ●     注意,相对误差可能大于10-8

    ●  当反对数(#j)为0或小于0时,发出报警N0.111。

    ●  常数可替代变量#j。

    指数函数#i=EXP[#j]:

    ●     注意,相对误差可能大于10-8

    ●  当运算结果超过3.65×1047(j大约是110)时,出现溢出报警N0.111

    ●  常数可替代变量#j。

    上取整下取整:

    CNC处理数值运算时,若操作后产生整数绝对值大于原数的绝对值时为上取整;小于为下取整。例如:

    假设#1=1.2,#2=-1.2。当执行#3=FUP[#1]时,2.0赋给#3;当执行#3=FIX[#1]时1.0赋给#3;当执行#3=FUP[#2]时,-2.0赋给#3;当执行#3=FIX[#2]时,-1.0赋给#3。

    宏程序语句:包含算术或逻辑运算(=)的程序;包含控制语句(例如,用GOTO,DO,END)的程序;包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段;除宏程序以外任何程序段都为NC语句。

    与NC语句的不同:

    即使置于单段程序运行方式,机床也不停止。但是,当参数N0.6000#5SBM设定位、为1时,在单段程序方式中,机床停止。在刀具半径补偿方式中宏程序语句段不做为移动程序段处理

    与宏程序语句相同性质的NC语句:

    含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)但没有除O,N,P或L地址之外的其它地址指令的NC语句,其性质与宏程序语句相同;不包含除O,N,P或L以外的指令地址的程序段其性质与宏程序语句相同。

    无限循环;

    当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环。

    宏程序调用和子程序调用之间的差别:点击关注更多内容

    宏程序调用(G65)不同于子程序调用(G98),如下所述:

    ●  用G65,可以指定自变量(数据传送到宏程序)。M98没有该功能。

    ●  当M98程序段包含另一个NC指令(例如。G01.X100.0M98PP)时,在指令执行之后调用子程序。相反,G65无条件的调用子程序。

    ●  M98程序段包含另一个NC指令(例如,G01X100.0M98PP)时在单程序方式中,机床停止。相反,G65机床不停止。

    ●  用G65,改变局部变量的级别。用M98,不改变局部变量的级别。

    G65P-L -(自变量指定);P:要调用的程序;L:重复次数;自变量:数据传递到宏程序

  • 相关阅读:
    ensp实验:使用Serial接口
    1146
    Navicat连linux上mysql数据库报错can't connect to mysql server ... 10060
    Bug 23572982,Oracle19c新建pdb受限模式,SYNC PDB FAILED WITH ORA-959 DURING 'CREATE USER
    内核参数限制导致无法su切换登录用户
    模拟测试恢复redhat7.5系统权限
    Oracle-OGG,双向同步过滤OGG自身用户的DML失效,如何处理?
    OGG-Oracle同步Sequence
    Scalable Sequences 学习测试
    OGG-DDL同步报错OGG-00516 ORA-12991: column is referenced in a multi-column constraint]
  • 原文地址:https://www.cnblogs.com/gzgb/p/7149556.html
Copyright © 2020-2023  润新知