设定:
设定变量#3005可以读写,并且二进制值转换成十进制。 #3005 #15 #7 设定 SEQ #14 #6 ABS #13 #5 #12 #4 INCH #3 ISO #11 #10 TAPE #2 TVON #9 REV4 #1 REVY #0 REVX #8 设定 REVX:X—轴镜象on/off REVY:Y—轴镜象 on/off TVON:TV 检查 on/off ISO: 输出码EIA/ISO INCH: 公制/英制输入 ABS: 相对值/绝对值编程 SEQ: 顺序号自动插入on/off REV4: 第四轴镜象on/off TAPE: F10/11 纸带格式 on/off 零件数:
需要加工的零件数变量#3902和已加工的零件数变量#3901可以被读写。见下表: 变量号 功能 #3901 已加工的零件数 #3902 需要加工的零件数 注:不能使用负数。 模信息:
段中指定的模信息可以读出。见下表: 变量号 #4001 #4002 #4003 #4004 #4005 #4006 #4007 #4008 #4009 #4010 #4011 #4012 #4014 #4015 #4016 : #4022 功能 G00,G01,G02,G03,G33 G17,G18,G19 G90,G91 G94,G95 G20,G21 G40,G41,G42 G43,G44,G49 G73,G74,G76,G80~G89 G98,G99 G50,G51 G65,G66,G67 G54~G59 G61~G64 G68,G69 : (01组) (02组) (03组) (04组) (05组) (06组) (07组) (08组) (09组) (10组) (11组) (12组) (14组) (15组) (16组) (22组)
#4102 #4107 #4109 #4111 #4113 #4114 #4115 #4119 #4120 B码 D码 F码 H码 M码 顺序号 程序号 S码 T码 例:当执行#1=#4001时,#1=0,1,2,3或33 当前位置:
位臵信息变量不能写只能读。见下表: 变量号 #5001~#5004 #5021~#5024 #5041~#5044 #5061~#5064 #5081~#5084 #5101~#5104 位臵信息 段结束点 当前位臵 当前位臵 跳段信号位臵 刀偏值 偏差的伺服位臵 坐标系 工件坐标系 机床坐标系 工件坐标系 刀具补偿值 不包括 包括 移动期间的读操作 使能 无效 使能 无效 ☆首位数(从1~ 4)分别代表轴号,数1代表X轴,数2代表Y轴,数3代表Z轴,数4代表第四轴。
☆执行当前的刀偏值,而不是立即执行保持在变量#5081~#5088里的值。
☆在含有G31(跳段)的段中发出跳段信号时,刀具的位臵保持在变量#5061~#5068里,如果不发出跳段信号,指定段的结束点位臵保持在这些变量中。
☆移动期间读变量无效时,表示由于缓冲(准备)区忙,所希望的值不能读。 工件坐标系补偿值(工件零点偏置值): 工件零点偏臵值变量可以读写,见下表: 变量号 功能 #5201~#5204 第一轴外部工件零点偏臵值~第四轴外部工件零点偏臵值 #5221~#5224 第一轴G54工件零点偏臵值~第四轴G54工件零点偏臵值 #5241~#5244 第一轴G55工件零点偏臵值~第四轴G55工件零点偏臵值 #5261~#5264 第一轴G56工件零点偏臵值~第四轴G56工件零点偏臵值 #5281~#5284 第一轴G57工件零点偏臵值~第四轴G57工件零点偏臵值 #5301~#5304 第一轴G58工件零点偏臵值~第四轴G58工件零点偏臵值 #5321~#5324 第一轴G59工件零点偏臵值~第四轴G59工件零点偏臵值 #7001~#7004 第一轴工件零点偏臵值(G54P1)~第四轴工件零点偏臵值 #7021~#7024 第一轴工件零点偏臵值(G54P2)~第四轴工件零点偏臵值 : #7941~#7944 第一轴工件零点偏臵值(G54P48)~第四轴工件零点偏臵值 注:对于工件坐标系,变量#5201~#5328是可选变量。 对于附加的48工件坐标系,变量#7001~#7948(G54P1~G54P48) 是可选变量。
8.2算术和逻辑操作
在下表中列出的操作可以用变量进行。操作符右边的表达式,可以含有常数和(/或)由一个功能块或操作符组成的变量。表达式中的变量#J和#K可以用常数替换。左边的变量也可以用表达式替换。见下表: 功能 格式 注释 #i=#j 赋值 #i=#j+#k 加 #i=#j—#k 减 #i=#j*#k 乘 #i=#j/#k 除 #i=SIN[#j] 正弦 角度以度为单位,如:90度30分#i=COS[#j] 表示成90.5度 余弦 #i=TAN[#j] 正切 #i=ATAN[#j] 反正切 #i=SQRT[#j] 平方根 #i=ABS[#j] 绝对值 #i=ROUND[#j] 进位 #i=FIX[#j] 下进位 #i=FUP[#j] 上进位 #i=#jOR#k OR(或) 用二进制数按位进行逻辑操作。 #i=#jXOR#k XOR(异或) #i=#jAND#k AND(与) 将BCD码转换成BIN码 #i=BIN[#j] 用于与PMC间信号的交换。 将BIN码转换成BCD码 #i=BCD[#j] 角单位:
在SIN,COS,TAN,ATAN中所用的角度单位是度。
ATAN功能:
在ATANT之后的两个变量用“/”分开,结果在0°和360°之间。 例:当#1=ATANT[1]/[—1]时,#1=135.0
ROUND功能:
☆当ROUND功能包含在算术或逻辑操作、IF语句、WHILE语句中时,将保留小数点后一位,其余位进行四舍五入。
例:#1=ROUND[#2];其中#2=1.2345,则#1=1.0 ☆当ROUND出现在NC语句地址中时,进位功能根据地址的最小输入增量四舍五入指定的值。
例:编一个程序,根据变量#1、#2的值进行切削,然后返回到初始点。假定增量系统是1/1000mm,#1=1.2345,#2=2.3456
G00 G91 X—#1; 则 移动1.235mm G01 X—#2 F300; 移动2.346mm G00 X[#1+#2]; 因为1.2345+2.3456=3.5801移动3.580mm,不能返回到初始位臵。而换成G00X[ROUND[#1]+ROUND[#2]]能返回到初始点。 上进位和下进位成整数:
例:#1=1.2、#2=—1.2
则:#3=FUP[#1],结果#3=2.0
#3=FIX[#1],结果#3=1.0
#3=FUP[#2],结果#3=—2.0 #3=FIX[#2],结果#3= —1.0
算术和逻辑操作的缩写方式:
取功能块名的前两个字符,例:ROUND?RO。 操作的优先权:
①功能块。
?如乘除(*,/,AND,MOD)这样的操作。 ?如加减(+,—,OR,XOR)这样的操作。
方括号嵌套:
方括号用于改变操作的顺序。最多可用五层,超出五层,出现118号报警。 注意:
方括号用于封闭表达式,圆括号用于注释。 除数:
如果除数是零或TAN[90],则会产生112号报警。
8.3分支和循环语句
在一个程序中,控制流程可以用GOTO、IF语句改变。有三种分支循环语句如下: ☆ GOTO语句(无条件分支); ☆ IF语句(条件分支:if…,then…); ☆ WHILE语句(循环语句while…)。
8.3.1无条件分支(GOTO语句)
功能 格式
转向程序的第N句。当指定的顺序号大于1~9999时,出现128号报警,顺序号可以用表达式。 GOTO n;
n是顺序号(1~9999)
8.3.2条件分支(IF 语句)
功能 格式 其中: 条件表达式
一个条件表达式一定要有一个操作符,这个操作符插在两个变量或一个变量和一个常数之间,并且要用方括号括起来,既[表达式 操作符 表达式]。
操作符见下表:
操作符 EQ NE 意义 = ≠ 在IF后面指定一个条件表达式,如果条件满足,转向第N句,否则执行下一段。
IF [条件表达式] GOTO n;
GT GE LT LE > ≥ < ≤ 8.3.3循环(WHILE语句)
功能 格式
在WHILE 后指定一个条件表达式,条件满足时,执行DO到END之间的语句,否则执行END后的语句。
WHILE [条件表达式] DO m;(m=1,2,3) : : : END m;
m只能在1、2、3中取值,否则出现126号报警。 ①数1~3可以多次使用。
②不能交叉执行DO语句,如下的书写格式是错误的:
WHILE […] DO 1; 过程 WHILE […] DO 2; : 过程 : END 1;
嵌套
END 2; ③嵌套层数最多3级。
④如下的书写格式是正确的:
WHILE […] DO 1;
IF […] GOTO n; : : END 1; N n…;
⑤如下的书写格式是错误的:
WHILE […] DO 1; N n…; END 1;
IF […] GOTO n;
8.3.4 注意
无限循环
指定了DO m而没有WHILE语句,循环将在DO和END之间无限期执行下去。
机械加工手动编程知识.-加工中心手动编程入门
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)