求 CNC宏程式#号神秘代码什么意思的 意思

当前位置: >
数控车床宏程序运用的探索
&&& 摘要:分析宏程序的构成规律,制定其设计方案,建立曲线段回转体宏程序加工模板,设置好参数于模板中,加工出相应精度要求的曲线段回转体工件。
&&& 0 引言
&&& 随着数控机床加工技术的快速发展,在数控车床加工中会经常遇到如椭圆、抛物线、双曲线等曲线轮廓回转体的加工,用常规的数控编程指令,需要计算每个节点的坐标值,不仅数学计算量大、加工精度差、编程复杂,而且容易出错、降低生产效率,若采用CAXA/MasterCAM软件自动编程,也需要大量时间来建模和数据处理,出现程序传输速度慢、空刀多、浪费时间、精度控制难等弊端。目前,数控车床的数控系统不仅向用户编程提供了一般的准备功能和辅助功能,而且有了扩展数控功能的宏程序加工手段,曲线轮廓零件的加工可以用宏程序,方便快捷。宏程序在数控车床加工中的运用很广泛,理解掌握它有一定的规律可以遵循,它有一定的编程模式,对于初学者,数控车床宏程序的学习要了解这个规律,尤其要精读几个有代表性的宏程序加工实例,在此基础上进行模仿,从而能够以此类推,达到独立编制宏程序的目的,收到较好的加工效果。
&&& 所谓宏程序,将一组命令所构成的功能,像子程序一样事先存入存储器中,用一个命令代表,执行时只需写出这个代表命令,就可以执行其功能。这一组命令称为用户宏程序。用户宏程序按功能分有A和B两种类型,A类宏程序是以G65 Hx x P# x x Q# x x R# x x的格式输入的;而B类宏程序则以直接的公式和语言输入,和C语言很相似,在数控车床加工中应用广泛。我们先从B类宏程序的使用技巧入门。
宏程序属于高级语言编程范畴,它在程序主体中使用变量,对变量进行赋值,变量之间可以进行函数运算、逻辑判断和跳转等。尤其是同一类中的相似零件,只需运用宏程序指令对该组中某一零件进行编程,每次只改变其中变量的赋值,就可以加工这类零件中的其他零件。以下三个方面是B类宏程序的使用规律,仅供参考。
&&& 1 数控车床宏程序的编程方案设计
&&& (1)确定自变量。通过工件轴线纵剖面的非圆函数曲线轮廓中的Z和X坐标都可以被确定为自变量,一般情况下会选择起点和终点坐标容易得出的而且便于编程的一个变量坐标作为自变量,还要考虑尽可能用一个函数表达式书写整段要加工的曲线轮廓,也就是尽量避免出现分段函数。
&&& (2)精确计算自变量始点和终点的坐标值(注意正负号)。必须明确要加工的轮廓是弧内侧或弧外侧,哪个部分;该坐标值是标准曲线自身的坐标系,而非工件坐标系;其始点坐标是曲线轮廓加工开始点的自变量坐标值,终点坐标为曲线轮廓加工结束点的自变量坐标值。
&&& (3)依据数学表达式,确定另一个变量相对于自变量的函数表达式(用数控系统宏程序的符号、格式编写)。
&&& (4)确定加工曲线自身坐标系的原点相对于工件坐标系原点的坐标偏移量(注意正负号)。
&&& (5)分析从始点到终点两个变量(自变量和函数)各自的变化规律,依据加工精度要求确定自变量的变化步距。
&&& (6)选择并确定循环语句格式。
&&& 2 非圆曲线轮廓加工宏程序的编程模板
&&& 在数控车床曲线轮廓加工中椭圆的例子较多,就以椭圆轮廓加工为代表分析宏程序加工编程过程。如图1所示,XOZ表示工件坐标系,即编程坐标系,X1 O1 Z1表示标准椭圆曲线坐标系。编写宏程序时还应注意以下几点:
&&& (1)工件的精度与编程时所选择的插补步进距离有关,步距值越小,加工精度越高,但会造成数控系统计算工作量加大,降低进给速度,即降低加工效率,在满足技术要求前提下,尽可能增大步距。
&&& (2)宏程序具有通用性,只需改变相应变量的赋值,如,椭圆两个半轴的赋值、坐标偏移距离赋值等,就可以加工同类零件。
&&& (3)可以采用IF...... GO TO或WHILE......Dom...... ENDm其中的任一中循环形式,但两种循环自变量、书写形式有较大差别,编写后效果相同。宏程序编制表如表1,坐标系关系图如图1。
&&& 常数说明:
&&& a椭圆X方向半轴值;
&&& b椭圆z方向半轴值;
&&& Xa椭圆标准曲线坐标系原点0,到编程坐标系中心O的X向距离;
&&& Zb椭圆标准曲线坐标系原点0,到编程坐标系中心O的Z向距离;
&&& A点为椭圆曲线段加一工的起始点,该点的Z1坐标Az1为自变量的初始值;
&&& B点为椭圆曲线段加工的终止点,该点的Z1坐标Bz1为自变量的终止值。
&&& 3 椭圆曲线轮廓宏程序加工的应用实例
&&& 依据上面的椭圆曲线宏程序模板,可以方便准确实现同类曲线轮廓的编程与加工。如图2所示工件椭圆轮廓,棒料直径:&60 mm,在工件右端面建立编程坐标系XOZ。
&&& 在X1O1Z1坐标系中,A点标准方程下的坐标值(-25.35,8) ,B点标准方程下的坐标值(-18,-25.98)。加工程序参考表如表2,加工零件图如图2。
&&& 4 总结
&&& 只要建立曲线宏程序模板,编程时只是改变参数而已,注意参数值的正负和变化特点,依据模板的格式,用上G71或G73指令,写出具体实例所需要的程序,模拟加工无误后真实加工即可。
?上一文章:
?下一文章:
& &评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright &
. All Rights Reserved .
页面执行时间:46,296.88000 毫秒发布时间: 来源: ()
真挚1983的博客 数控技术与机械加工
数控宏程序
16:04:36|&分类:
|字号 用 户 宏 程 序 能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。 l 所存入的这一系列指令――用户宏程序 l 调用宏程序的指令――――宏指令 l 特点:使用变量 一. 变量的表示和使用 (一) 变量表示 #I(I=1,2,3,…)或#[<式子>] 例:#5,#109,#501,#[#1+#2-12] (二) 变量的使用 1. 地址字后面指定变量号或公式 格式: <地址字>#I <地址字>-#I <地址字>[<式子>] 例:F#103,设#103=15 则为F15 Z-#110,设#110=250 则为Z-250 X[#24+#18*COS[#1]] 2. 变量号可用变量代替 例:#[#30],设#30=3 则为#3 3. 变量不能使用地址O,N,I 例:下述方法下允许 O#1; I#2 6.00×100.0; N#3 Z200.0; 4. 变量号所对应的变量,对每个地址来说,都有具体数值范围 例:#30=1100时,则M#30是不允许的 5. #0为空变量,没有定义变量值的变量也是空变量 6. 变量值定义: 程序定义时可省略小数点,例:#123=149 MDI键盘输一. 变量的种类 1. 局部变量#1~#33 一个在宏程序中局部使用的变量 例: A宏程序 B宏程序
#10=20 X#10 不表示X20
… … 断电后清空,调用宏程序时代入变量值 2. 公共变量#100~#149,#500~#531 各用户宏程序内公用的变量 例:上例中#10改用#100时,B宏程序中的
X#100表示X20 #100~#149 断电后清空 #500~#531保持型变量(断电后不丢失) 3. 系统变量 固定用途的变量,其值取决于系统的状态 例:#2001值为1号刀补X轴补偿值
#5221值为X轴G54工件原点偏置值入时必须输入小数点,小数点省略时单位为μm一. 运算指令 运算式的右边可以是常数、变量、函数、式子 式中#j,#k也可为常量 式子右边为变量号、运算式 1. 定义 #I=#j 2. 算术运算 #I=#j+#k #I=#j-#k #I=#j*#k #I=#j/#k 3. 逻辑运算 #I=#JOK#k #I=#JXOK#k #I=#JAND#k 4. 函数 #I=SIN[#j] 正弦 #I=COS[#j] 余弦 #I=TAN[#j] 正切 #I=ATAN[#j] 反正切 #I=SQRT[#j] 平方根 #I=ABS[#j] 绝对值 #I=ROUND[#j] 四舍五入化整 #I=FIX[#j] 下取整 #I=FUP[#j] 上取整 #I=BIN[#j] BCD→BIN(二进制) #I=BCN[#j] BIN→BCD1. 说明 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 6) 优先级 函数→乘除(*,1,AND)→加减(+,-,OR,XOR) 例:#1=#2+#3*SIN[#4]; 7) 括号为中括号,最多5重,园括号用于注释语句 例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)一. 转移与循环指令 1.无条件的转移 格式: GOTO 1;
GOTO #10; 2.条件转移 格式: IF[<条件式>] GOTO n 条件式: #j EQ#k 表示= #j NE#k 表示≠ #j GT#k 表示> #j LT#k 表示< #j GE#k 表示≥ #j LE#k 表示≤ 例: IF[#1 GT 10] GOTO 100;
N100 G00 691 X10; 例:求1到10之和
N1 IF [#2 GT10] GOTO 2
#1=#1+#2;
#2=#2+1;
N2 M301.循环 格式:WHILE[<条件式>]DO m;(m=1,2,3) … … … ENDm 说明:1.条件满足时,执行DOm到ENDm,则从DOm的程序段
不满足时,执行DOm到ENDm的程序段
2.省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环
3.嵌套4.EQ NE时,空和“0”不同 其他条件下,空和“0”相同
例:求1到10之和
WHILE [#2LE10] DO1;
#1=#1+#2;
#2=#2+#1;
1、2、3、4、5、6、7、8、9、10、}

我要回帖

更多关于 神秘代码什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信