CNC基础知识.docx
《CNC基础知识.docx》由会员分享,可在线阅读,更多相关《CNC基础知识.docx(7页珍藏版)》请在冰豆网上搜索。
CNC基础知识
v数控宏程序编程〃是用变量的方式进行数控编程的方法。
数控宏程序分为A类和B类宏程序〃其中A类宏程序比较老〃编写起来也比较费时费力〃B类宏程序类似于C语言的编程〃编写起来也很方便。
不论是A类还B类宏程序〃它们运行的效果都是一样的。
一般说来〃华中的数控机床用的是B类宏程序〃广州数控机床用的是A类宏程序
使用方法
编辑
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大于
≥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〉?
无条件的转移格式:
GOTO1;GOTO#10;
2〉?
条件转移1格式:
IF[<条件式>]GOTOn
条件式:
例:
#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
G91X-#1;X-1?
235X-#2F300;X-2?
346X[#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→ROFIX→FIGOTO→GO
6)优先级函数→乘除(*〃1〃AND)→加减(+〃-〃OR〃XOR)例:
#1=#2+#3*SIN[#4];
7)括号为中括号〃最多5重〃园括号用于注释语句例:
#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)
转移与循环指令
插补(Interpolation)〃即机床数控系统依照一定方法确定刀具运动轨迹的过程。
也可以说〃已知曲线上的某些数据〃按照某种算法计算已知点之间的中间点的方法〃也称为“数据点的密化”;数控装置根据输入的零件程序的信息〃将程序段所描述的曲线的起点、终点之间的空间进行数据密化〃从而形成要求的轮廓轨迹〃这种“数据密化”机能就称为“插补”。
插补分类
编辑
一个零件的轮廓往往是多种多样的〃有直线〃有圆弧〃也有可能是任意曲线〃样条线等.数控机床的刀具往往是不能以曲线的实际轮廓去走刀的〃而是近似地以若干条很小的直线去走刀〃走刀的方向一般是x和y方向。
插补方式有:
直线插补〃圆弧插补〃抛物线插补〃样条线插补等。
插补直线插补直线插补(LlneInterpolation)这是车床上常用的一种插补方式〃在此方式中〃两点间的插补沿着直线的点群来逼近〃沿此直线控制刀具的运动。
所谓直线插补就是只能用于实际轮廓是直线的插补方式(如果不是直线〃也可以用逼近的方式把曲线用一段线段去逼近〃从而每一段线段就可以用直线插补了).首先假设在实际轮廓起始点处沿x方向走一小段(一个脉冲当量)〃发现终点在实际轮廓的下方〃则下一条线段沿y方向走一小段〃此时如果线段终点还在实际轮廓下方〃则继续沿y方向走一小段〃直到在实际轮廓上方以后〃再向x方向走一小段〃依次循环类推.直到到达轮廓终点为止.这样〃实际轮廓就由一段段的折线拼接而成〃虽然是折线〃但是如果我们每一段走刀线段都非常小(在精度允许范围内)〃那么此段折线和实际轮廓还是可以近似地看成相同的曲线的--------这就是直线插补.插补圆弧插补圆弧插补(Circula:
Interpolation)这是一种插补方式〃在此方式中〃根据两端点间的插补数字信息〃计算出逼近实际圆弧的点群〃控制刀具沿这些点运动〃加工出圆弧曲线。
插补复杂曲线实时插补算法
传统的CNC只提供直线和圆弧插补〃对于非直线和圆弧曲线则采用直线和圆弧分段拟合的方法进行插补。
这种方法在处理复杂曲线时会导致数据量大、精度差、进给速度不均、编程复杂等一系列问题〃必然对加工质量和加工成本造成较大的影响。
许多人开始寻求一种能够对复杂的自由型曲线曲面进行直接插补的方法。
近年来〃国内外的学者对此进行了大量的深入研究〃由此也产生了很多新的插补方法。
如A(AKIMA)样条曲线插补、C(CUBIC)样条曲线插补、贝塞尔(Bezier)曲线插补、PH(Pythagorean-Hodograph)曲线插补、B样条曲线插补等。
由于B样条类曲线的诸多优点〃尤其是在表示和设计自由型曲线曲面形状时显示出的强大功能〃使得人们关于自由空间曲线曲面的直接插补算法的研究多集中在它身上。
插补刀具半径补偿
编辑
刀具半径补偿(CutterCompensation)垂直于刀具轨迹的位移〃用来修正实际的刀具半径与编程的刀具半径的差异。
数控系统刀具半径补偿的含义是将刀具中心轨迹〃沿着程编轨迹偏置一个距离〃加工程序与刀具半径大小无关〃它的功能是仅用一个程序就可以完成粗、精加工〃或采用不同刀具直径加工时〃可以不要重写加工程序。
通常刀具半径补偿功能仅适用于二维编程加工〃数控系统中规定沿着刀具加工方向向右偏置〃称为右补〃采用指令G42;向左偏置〃称为左补〃采用指令G41。
插补插补原理
编辑
数控车床的运动控制中〃工作台(刀具)X、Y、Z轴的最小移动单位是一个脉冲当量。
因此〃刀具的运动轨迹是具有极小台阶所组成的折线(数据点密化)。
例如〃用数控车床加工直线OA、曲线OB〃刀具是沿X轴移动一步或几步(一个或几个脉冲当量Dx)〃再沿Y轴方向移动一步或几步(一个或几个脉冲当量Dy)〃直至到达目标点。
从而合成所需的运动轨迹(直线或曲线)。
数控系统根据给定的直线、圆弧(曲线)函数〃在理想的轨迹上的已知点之间〃进行数据点密化〃确定一些中间点的方法〃称为插补。