数控宏程序实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数控宏程序实例
第7章宏程序
7.3 宏程序调用
7.3.1 宏程序调用指令(G65)
在主程序中可以用G65调用宏程序。指令格式如下:
G65 P L 〈自变量赋值〉;
其中:P指定宏程序号:L为重复调用次数(1—9999);自变量赋值是由地址和数值构成的,用以对宏程序中的局部变量赋值。
例如:
主程序:
O7002
...
G65 P7100 L2 A1.0 B2.0
...
M30
宏程序:
#3=#1+#2;
IF [#3 GT 360] GOTO 9;
G00 G91 X#3
N9 M99
7.3.2 自变量赋值
自变量赋值有两种类型。自变量I使用除去G,L,N,O,P以外的其他字母作为地址,自变量II可以使用A,B,C每个字母一次,I,J,K每个字母可使用十
次作为地址。表7—3和7—4分别为两种类型自变量赋值的地址和变量号码之间的对应关系:
表7—3 自变量赋值的地址和变量号码之间的对应关系
地址宏程序中变量地址宏程序中变量
A #1 Q #17
B #2 R #18
C #3 S #19
D #7 T #20
E #8 U #21
F #9 V #22
H #11 W #23
I #4 X #24
J #5 Y #25
K #6 Z #26
M #13
表7—4 自变量II的地址与变量号码之间的对应关系
地址宏程序中变量地址宏程序中变量
A #1 #18
B #2 #19
C #3 #20
#4 #21
#5 #22
#6 #23
#7 #24
#8 #25
#9 #26
#10 #27
#11 #28
#12 #29
#13 #30
#14 #31
#15 #32
#16 #33
#17
上表中的I,J,K的下标只表示顺序,并不写在实际命令中。在G65的程序段中,可以同时使用表4—1及表4—2中的两组自变量赋予值。系统可以根据使用的字母自动判断自变量赋值的类型。
7.4 变量的控制和运算指令 7.4.1 算术运算和逻辑运算
在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。
表7—5 算术和逻辑运算
运算格式说明
赋值 #i=#j
加 #i=#j+#k
减 #i=#j-#k
乘 #i=#j*#k
除 #i=#j/#k
正弦 #i=sin[#j]
角度单位为度余弦 #i=cos[#j]
正切 #i=tan[#j]
反正切 #i=atan[#j]
平方根 #i=sqrt[#j]
绝对值 #i=abs[#j]
四舍五入圆整 #i=round[#j]
或 #i=#jor#k
逻辑运算对二进制数逐位进异或 #i=#jxor#k
行与 #i=#jand#k 运算的优先顺序如下:
1)函数。
2)乘除,逻辑与。
3)加减,逻辑或,逻辑异或。
可以用[ ]来改变顺序
7.4.2 控制指令
1.无条件转移(GOTO语句)
语句格式为:
GOTO n
其中n为顺序号(1—9999),可用变量表示。例如: GOTO 1;
GOTO #10;
2. 条件转移(IF 语句)
语句格式为:
IF [条件式] GOTO n
条件式成立时,从顺序号为n的程序段开始执行;条件式不成立时,执行下一个程序
段。
条件式有以下几类:
# j EQ # K
# j NE # K
# j GT # K
# j LT # K
# j GE # K
# j LE # K
条件式中变量#J或#K可以是常量也可以是表达式,条件式必须用括弧括起来。下面的
程序可以得到1到10的和:
O7100
#1=0
#2=1
N1 IF [#2 GT 10] GOTO 2
#1=#1+#2
#2=#2+1
GOTO 1
N2 M30
3循环语句(WHILE 语句)
语句格式为:
WHILE [条件式] DO m (m=1,2,3) …
END m
当条件语句成立时,程序执行从DO m到END m之间的程序段;如果条件不成立,则执行
END m之后的程序段。DO和END后的数字是用于表明循环执行范围的识别号。
可以使用数字1,2和3,如果是其他数字,系统会产生报警。DO—END循环能够按
需执行多次。如下例所示:
WHILE [] DO 1条件式,,
,,...,,
,,WHILE [] DO 2条件式,,,,,,...,,,,,,,,WHILE [] DO 2条件式,,,,,,,,,,...,,,,,,,,,,END 3,,,,,,,,,,...,,,,END 2,,,,,,...,,,,END 1 ,, 上面的O7100程序也可以用WHILE语句编制如下:
O7200
#1=0
#2=1
WHILE [#2 LE 10] DO 1
#1=#1+#2
#2=#2+1
END 1
M30
7.5 宏程序应用实例
【例7-1】:切圆台与斜方台,各自加工3个循环,要求倾斜10?的斜主台与圆
台相切,圆台在方台之上,如图7-2所示。