宏程序基础理论.docx
《宏程序基础理论.docx》由会员分享,可在线阅读,更多相关《宏程序基础理论.docx(6页珍藏版)》请在冰点文库上搜索。
![宏程序基础理论.docx](https://file1.bingdoc.com/fileroot1/2023-5/11/5de5991c-d4c7-4b3f-a14a-4f5c46618cc1/5de5991c-d4c7-4b3f-a14a-4f5c46618cc11.gif)
宏程序基础理论
数控宏程序编程,是用变量的方式进行数控编程的方法。
数控宏程序分为A类和B类宏程序,其中A类宏程序比较老,编写起来也比较费时费力,B类宏程序类似于C语言的编程,编写起来也很方便。
不论是A类还B类宏程序,它们运行的效果都是一样的。
一般说来,华中的数控机床用的是B类宏程序,广州数控机床用的是A类宏程序。
优点
1.可以编写一些非圆曲线,如宏程序编写椭圆,双曲线,抛物线等。
2.编写一些大批相似零件的时候,可以用宏程序编写,这样只需要改动几个数据就可以了,没有必要进行大量重复编程。
使用方法
A类宏程序
1)变量的定义和替换#i=#j
编程格式G65H01P#iQ#j
例G65H01P#101Q1005;(#101=1005)
G65H01P#101Q-#112;(#101=-#112)
2)加法#i=#j+#k
编程格式G65H02P#iQ#jR#k
例G65H02P#101Q#102R#103;(#101=#102+#103)
3)减法#i=#j-#k
编程格式G65H03P#iQ#jR#k
例G65H03P#101Q#102R#103;(#101=#102-#103)
4)乘法#i=#j×#k
编程格式G65H04P#iQ#jR#k
例G65H04P#101Q#102R#103;(#101=#102×#103)
5)除法#i=#j/#k
编程格式G65H05P#iQ#jR#k
例G65H05P#101Q#102R#103;(#101=#102/#103)
6)平方根#i=
编程格式G65H21P#iQ#j
例G65H21P#101Q#102;(#101=)
7)绝对值 #i=│#j│
编程格式G65H22P#iQ#j
例G65H22P#101Q#102;(#101=│#102│)
8)复合平方根1#i=
编程格式G65H27P#iQ#jR#k
例G65H27P#101Q#102R#103;(#101=
9)复合平方根2#i=
编程格式G65H28P#iQ#jR#k
例G65H28P#101Q#102R#103
1)逻辑或 #i=#jOR#k
编程格式G65H11P#iQ#jR#k
例G65H11P#101Q#102R#103;(#101=#102OR#103)
2)逻辑与 #i=#jAND#k
编程格式G65H12P#iQ#jR#k
例G65H12P#101Q#102R#103;#101=#102AND#103
(3)三角函数指令
1)正弦函数#i=#j×SIN(#k)
编程格式G65H31P#iQ#jR#k(单位:
度).
例G65H31P#101Q#102R#103;(#101=#102×SIN(#103))
2)余弦函数#i=#j×COS(#k)
编程格式G65H32P#iQ#jR#k(单位:
度)
例G65H32P#101Q#102R#103;(#101=#102×COS(#103))
3)正切函数#i=#j×TAN#k
编程格式G65H33P#iQ#jR#k(单位:
度)
例G65H33P#101Q#102R#103;(#101=#102×TAN(#103))
4)反正切#i=ATAN(#j/#k)
编程格式G65H34P#iQ#jR#k(单位:
度,0o≤#j≤360o)
例G65H34P#101Q#102R#103;(#101=ATAN(#102/#103)
(4)控制类指令
编程格式G65H80Pn(n为程序段号)
例G65H80P120;(转移到N120)
2)条件转移1#jEQ#k(=)
编程格式G65H81PnQ#jR#k(n为程序段号)
例G65H81P1000Q#101R#102
当#101=#102,转移到N1000程序段;若#101≠#102,执行下一程序段。
3)条件转移2#jNE#k(≠)
编程格式G65H82PnQ#jR#k(n为程序段号)
例G65H82P1000Q#101R#102
当#101≠#102,转移到N1000程序段;若#101=#102,执行下一程序段。
4)条件转移3#jGT#k(>)
编程格式G65H83PnQ#jR#k(n为程序段号)
例G65H83P1000Q#101R#102
当#101>#102,转移到N1000程序段;若#101≤#102,执行下一程序段。
5)条件转移4#jLT#k(<)
编程格式G65H84PnQ#jR#k(n为程序段号)
例G65H84P1000Q#101R#102
当#101<#102,转移到N1000;若#101≥#102,执行下一程序段。
6)条件转移5#jGE#k(≥)
编程格式G65H85PnQ#jR#k(n为程序段号)
例G65H85P1000Q#101R#102
当#101≥#102,转移到N1000;若#101<#102,执行下一程序段。
7)条件转移6#jLE#k(≤)
编程格式G65H86PnQ#jQ#k(n为程序段号)
例G65H86P1000Q#101R#102
当#101≤#102,转移到N1000;若#101>#102,执行下一程序段。
B类宏程序
1.定义
#I=#j
2.算术运算
#I=#j+#k (加)
#I=#j-#k (减)
#I=#j×#k (乘)
#I=#j/#k (除)
3.1逻辑函数之布尔函数
= EQ 等于
≠ NE 不等于
> GT 大于
< LT 小于
≥ GE 大于或等于
≤ LE 小于或等于
例:
#I=#j 即#IEQ#J
3.2逻辑函数之二进制函数
#I=#JAND#k (与,逻辑乘)
#I=#JOR#k (或,逻辑加)
#I=#JXOR#k (非,逻辑减)
4.三角函数
#I=SIN[#j]正弦
#I=COS[#j]余弦
#I=TAN[#j]正切
#I=ASIN[#j]反正弦
#I=ACOS[#j]反余弦 #I=ATAN[#j]反正切
5.四舍五入函数
#I=ROUND[#j] 四舍五入化整
#I=FIX[#j] 上取整
#I=FUP[#j] 下取整
6.辅助函数
#I=SQRT[#j] 平方根
#I=ABS[#j] 绝对值
#I=LN[#j] 自然对数
#I=EXP[#j]指数函数
7.变换函数 #I=BIN[#j] BCD→BIN(十进制转二进制)
#I=BCD[#j] BIN→BCD (二进制转十进制)
8.转移和循环
1〉.无条件的转移 格式:
GOTO 1; GOTO #10;
2〉.条件转移1 格式:
IF[<条件式>] GOTO n
条件式:
例:
#j=#k用#jEQ#k表示,即IF[#jEQ#k]GOTOn
3〉.条件转移2 格式:
IF[<条件式>] THEN#I
例:
IF[#jEQ#k]THEN#a=#b
4〉.循环格式:
WHILE[<条件式>]DOm,(m=1、2、3)
N10~~~~~~~~~
N20~~~~~~~~~~~~
ENDm(上下两个m只能为1、2、3且必须相同,这样才能够成一段程序的循环)
1.说明 1)角度单位为度 例:
90度30分为90.5度
2)ATAN函数后的两个边长要用“1”隔开 例:
#1=ATAN[1]/[-1]时,#1为了35.0
3)ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入
例:
设#1=1.2345,#2=2.3456,设定单位1μm
G91 X-#1;X-1.235 X-#2 F300;X-2.346 X[#1+#2];X3.580 未返回原处,应改为 X[ROUND[#1]+ROUND[#2]];
4)取整后的绝对值比原值大为上取整,反之为下取整 例:
设#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
5)简写函数时,可只写开头2个字母 例:
ROUND→RO FIX→FI GOTO→GO
6)优先级 函数→乘除(*,1,AND)→加减(+,-,OR,XOR) 例:
#1=#2+#3*SIN[#4];
7)括号为中括号,最多5重,园括号用于注释语句 例:
#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)
转移与循环指令