B宏程序语句.docx
- 文档编号:2202863
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:6
- 大小:18.01KB
B宏程序语句.docx
《B宏程序语句.docx》由会员分享,可在线阅读,更多相关《B宏程序语句.docx(6页珍藏版)》请在冰豆网上搜索。
B宏程序语句
宏程序语句
和NC语句
下面的程序段为宏程序语句:
•包含算术或逻辑运算(=)的程序段。
•包含控制语句(例如,GOTO,DO,END)的程序段。
•包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码
调用宏程序)的程序段。
除了宏程序语句以外的任何程序段都为NC语句。
说明
•即使置于单程序段运行方式,机床也不停止。
但是,当参数
N0.6000#5SBM设定为1时,在单程序段方式中,机床停止。
•与NC语句的不同
•在刀具半径补偿方式中宏程序语句段不做为不移动程序段处理(见Ⅱ-
15.7节)。
如果NPS(参数N0.3450#4)为1,满足以下条件时程序段中的NC语句
可认为与宏程序语句性质相同。
•与宏程序语句有相
同性质的NC语句
•含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子
程序)但没有除O,N或L地址之外的其它地址指令的NC语句其性质
与宏程序相同。
•不包含除O,N,P或L以外的指令地址的程序段其性质与宏程序语句
相同。
15.5.2IF之后指定条件表达式。
条件转移
(IF语句)
IF[<条件表达式>]GOTOn
如果指定的条件表达式满足时,转移到标有顺序号n的程序段。
如果指定
的条件表达式不满足,执行下个程序段。
如果变量#1的值大于10,转移到顺序号N2的程序段。
IF[#1GT10]GOTO2;
如果条件满足
程序
如果条件不满足
N2G00G91X10.0;
IF[<条件表达式
>]THEN
如果条件表达式满足,执行预先决定的宏程序语句。
只执行一个宏程序语
句。
如果#1和#2的值相同,0赋给#3。
IF〔#1EQ#2〕THEN#3=0;
说明
·条件表达式条件表达式必须包括算符。
算符插在两个变量中间或变量和常数中间,并
且用括号(〔,〕)封闭。
表达式可以替代变量。
运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个
值小于或大于另一个值。
注意,不能使用不等符号。
·运算符
表15.5.2运算符
运算符含义
EQ等于(=)
NE不等于(≠)
GT大于(>)
GE大于或等于(≥)
LT小于(<)
LE小于等于(≤)
·示例程序下面的程序计算数值1~10的总和
〇9500
#1=0;⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯存储和数变量的初值
#2=1;⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯被加数变量的初值
N1IF〔#2GT10〕GOTO2;⋯⋯当被加数大于10时转移到N2
#1=#1+#2;⋯⋯⋯⋯⋯⋯⋯⋯⋯计算和数
#2=#2+#1;⋯⋯⋯⋯⋯⋯⋯⋯⋯下一个被加数
GOTO1;⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯转到N1
N2M30;⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯程序结束
功能格式备注
定义#i=#j
加法#i=#j+#k;
减法#i=#j-#k;
乘法#i=#j*#k;
除法#i=#j/#k;
正弦#i=SIN[#j];
反正弦#i=ASIN[#j];
余弦#i=COS[#j];
反余弦#i=ACOS[#j];
正切#i=TAN[#j];
反正切#i=ATAN[#j]/[#k];
角度以度指定。
90°30′
表示为90.5度。
平方根#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=BIN[#j];
从BIN转为BCD#i=BCD[#j];用于与PMC的信号交换
转移和循环
在程序中,使用GOTO语句和IF语句可以改变控制的流向。
有三种转移
和循环操作可供使用:
转移和循环GOTO语句(无条件转移)
IF语句(条件转移:
IF⋯THEN⋯)
WHILE语句(当⋯时循环)
转移到标有顺序号n的程序段。
当指定1到99999以外的顺序号时,出现
P/S报警No.128。
可用表达式指定顺序号。
15.5.1
无条件转移
(GOTO语句)
GOTOn;n:
顺序号(1~99999)
例:
GOTO1;
GOTO#10;
15.5.3循环
(WHILE语句)
在WHILE后指定一个条件表达式,当指定条件满足时,执行从DO到END
之间的程序。
否则,转到END后的程序段。
WHILE[条件表达式]DOm;(m=1,2,3)
∶
如果条件不满足
ENDm;
如果条件满足程序
当指定的条件满足时,执行WHILE从DO到END之间的程序。
否则,
转而执行END之后的程序段。
这种指令格式适用于IF语句。
DO后的号
和END后的号是指定程序执行范围的标号,标号值为1,2,3。
若用1,
2,3以外的值会产生P/S报警No.126。
用下面的方法调用宏程序:
15.6
宏程序调用
宏程序调用非模态调用(G65)
——模态调用(G66,G67)
——用G代码调用宏程序
——用M代码调用宏程序
——用M代码调用子程序
——用T代码调用子程序
限制
•宏程序调用和子程宏程序调用(G65)不同于子程序调用(M98),如下所述。
序调用之间的差别•用G65,可以指定自变量(数据传送到宏程序)。
M98没有该功能。
•当M98程序段包含另一个NC指令(例如,G01X100.0M98Pp)时,在指
令执行之后调用子程序。
相反,G65无条件地调用宏程序。
•M98程序段包含另一个NC指令(例如,G01X100.0M98Pp)时,在单程
序段方式中,机床停止。
相反,G65机床不停止。
•用G65,改变局部变量的级别。
用M98,不改变局部变量的级别。
说明
•呼调•在G65之后,用地址P指定用户宏程序的程序号。
•当要求重复时,在地址L后指定从1到9999的重复次数。
省略L值时,
认为L等于1。
•使用自变量指定,其值被赋值到相应的局部变量。
可用两种形式的自变量指定。
自变量指定I使用除了G,L,O,N和P以
外的字母,每个字母指定一次。
自变量指定Ⅱ使用A,B,C和Ii,Ji和
Ki(i为1~10)。
根据使用的字母,自动地决定自变量指定的类型。
•自变量指定
自变量指定I
地址变量号
T#20
U#21
V#22
W#23
X#24
Y#25
Z#26
地址变量号
I#4
J#5
K#6
M#13
Q#17
R#18
S#19
地址变量号
A#1
B#2
C#3
D#7
E#8
F#9
H#11
•地址G,L,N,O和P不能在自变量中使用。
•不需要指定的地址可以省略,对应于省略地址的局部变量设为空。
•地址不需要按字母顺序指定。
但应符合字地址的格式。
但是,I,J和
K需要按字母顺序指定。
例:
B_A_D_⋯⋯J_K_正确
B_A_D_⋯⋯J_I_不正确
调用宏程序的主程序O0003;
G50X100.0Z200.0;
S1000M03;
G66P9110U5.0F0.5;
G00X60.0Z80.0
Z50.0
Z30.0
G67;
G00X00.0Z200.0M05;
M30;
•宏程序O9110;
(被调用的程序)G01U-=#21F#9⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯加工
G00U#21⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯撤回刀具
M99;
有一椭圆,长轴b=25,短轴a=18,现在加工其右半部分,工件坐标系设在右端面。
主程序:
N10G98G21F60
N20T0101
N30M03S600
N40G00X40Z5;设毛坯为φ38mm
N50#105=38
N60IF#105GT0
N70G65P1015A18B25C25D0K1;A--#1,B--#2,C--#3,D--#7,K--#6
N80G00X40Z5
N90#105=#105-1
N100GOTO60
N110G00X80Z80
N120M05
N130M30
子程序:
O1015
N10#5=[#1+#1]*SQRT[1-#2*#2/#3/#3];[X=2a]
N20G01X[#5+#105]Z[#2-#3]
N30#2=#2-#6;Z轴方向切削的步长为1
N40IF[#2GE#7]GOTO10
N60M99
注意:
这是一个通用的椭圆加工宏程序,只要改变起刀点的坐标和G65指令中的A、B、C三个赋值(椭圆的长轴和短轴的长度),即可加工任意椭圆。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 语句
![提示](https://static.bdocx.com/images/bang_tan.gif)