
O0001
G43G49G64G80
G54G17G90
M03M08S800T1F200
G00G43H01Z50
G00X0Y0
Z02
G01Z-2F60
G01G41D01X20Y0 添加刀具补偿g41
#3=0 起始角度为0
WHILE [#3 LE 360] DO1
#1=20COS[#3] 长半轴 为20
#2=10SIN[#3] 短半轴 10
G01X#1 Y#2 F1000
#3=#3+1 每次角度增长 1度
END1
G01Z02F100
M08
G00Z50
G40X0Y0
M05
M30
快速入门数控加工中心编程的方法
数控加工中心的综合加工能力较强,工件一次装夹后能完成较多的加工内容,加工精度较高,就中等加工难度的批量工件,其效率是普通设备的5~10倍,特别是它能完成许多普通设备不能完成的加工,对形状较复杂,精度要求高的单件加工或中小批量多品种生产更为适用。下面是我整理的快速入门数控加工中心编程的方法介绍,大家一起来看看吧。
一、编程入门
概念一、指令分组:将功能类似的指令分成一组,同一组的G代码不能同时出现在同一行程序段里。
概念二、程序段程序段是程序的基本组成部分,程序段由不同的指令组合而成。以下是我们学校在授课过程中必须要讲的指令,了解编程的基本方法后,掌握这些指令你就能进行编程了。
概念三、常用指令类型指令的格式为英文字母+数字构成。
如G54 G_ X_Y_Z_ F_ S_ T_ M_
G_ G代码
X_Y_Z_ 机床的直线轴
F_ 进给速度
S_ 主转转速
T_ 刀具指令
M_ 辅助功能
最常用的M代码
M3 主转正转
M4 主转反转
M5主转停转
如:M3 S600 主轴正转,转速600 r/min
M06 换刀指令
如T1 M06 就是换一号刀
以下重点讲G代码01组G代码用于控制刀具的运动。
G00 快速点定位G00 X_Y_Z_ ;
刀具以快速度移动至以绝对值指令(G90)或增量值指令(G91)所指定的工件坐标系中的位置,移动速度由机床参数所指定 。
G01 直线插补G01 X_Y_Z_ F_
G02 顺时针圆弧插补指令格式:G02 X_ Y_ Z_ R_ F_ / G03 X_ Y_ Z_ I_ J_ K_ F
G03 逆时针圆弧插补指令格式:G03 X_ Y_ Z_ R_ F_ / G03 X_ Y_ Z_ I_ J_ K_ F_
X_ Y_ Z_ 圆弧的终点坐标
R_ 圆弧的半径
I_ 圆弧的终点相对于刀具所在位置
X向的位置
J_ 圆弧的终点相对于刀具所在位置
Y向的位置
K_ 圆弧的终点相对于刀具所在位置
Z向的位置
F_ 进行速度
F的定义方式有两种:G94每分钟进给(刀具每分钟移动速度mm/min)/ G95 每转进给(主轴每旋转一转刀具移动的距离mm/r)
G代码刀具的长度补偿G43 长度补偿指令
如G43H01 在换刀点刀尖到工件Z向零点的距离为“H01”,什么是“H01”
H01就是偏置值,也就是我将刀尖到工件Z向零面的距离写在偏置表里的H01处。
G54 号工件坐标系,我们将工件零点的位置,写到坐标系列表中。
G54只是列表中最常用的位置。其他的还有G55 G56 G57 G58 G59 等等,他们的意义和G54相同。
打孔、镗孔、铰孔时用的G代码。
G81 格式为 G81 X_ Y_ Z_ R_ F_;
X_Y_ 孔位坐标(也就是孔的位置)
Z_ 孔的深度
R_ 安全高底,也就是高具移动到什么位置时开始进给运动
F_ 进给速度。
G80 固定循环结束
代码还有很多,G81 G83 G84 G85 G86 G87 G73 G74 G76等等。每个一指令的动作都不太一样,但掌握一个了,其它的看一下说明也就明白了。就是G84 和G76 稍有点复杂,有明白的地方可以提问,有时间帮你们在线答疑。
二、坐标系建立基础概念
1刀位点
刀位点是刀具上的一个基准点,刀位点相对运动的轨迹即加工路线,也称编程轨迹。
2对刀和对刀点
对刀是指 *** 作员在启动数控程序之前,通过一定的测量手段,使刀位点与对刀点重合。可以用对刀仪对刀,其 *** 作比较简单,测量数据也比较准确。还可以在数控机床上定位好夹具和安装好零件之后,使用量块、塞尺、千分表等,利用数控机床上的坐标对刀。对于 *** 作者来说,确定对刀点将是非常重要的,会直接影响零件的加工精度和程序控制的准确性。在批生产过程中,更要考虑到对刀点的重复精度, *** 作者有必要加深对数控设备的了解,掌握更多的对刀技巧。
(1)对刀点的选择原则
在机床上容易找正,在加工中便于检查,编程时便于计算,而且对刀误差小。对刀点可以选择零件上的某个点(如零件的定位孔中心),也可以选择零件外的某一点(如夹具或机床上的某一点),但必须与零件的定位基准有一定的坐标关系。提高对刀的准确性和精度,即便零件要求精度不高或者程序要求不严格,所选对刀部位的加工精度也应高于其他位置的加工精度。择接触面大、容易监测、加工过程稳定的部位作为对刀点。对刀点尽可能与设计基准或工艺基准统一,避免由于尺寸换算导致对刀精度甚至加工精度降低,增加数控程序或零件数控加工的难度。为了提高零件的加工精度,对刀点应尽量选在零件的设计基准或工艺基准上。例如以孔定位的零件,以孔的中心作为对刀点较为适宜。对刀点的精度既取决于数控设备的精度,也取决于零件加工的要求,人工检查对刀精度以提高零件数控加工的质量。尤其在批生产中要考虑到对刀点的重复精度,该精度可用对刀点相对机床原点的坐标值来进行校核。
(2)对刀点的选择方法
对于数控车床或车铣加工中心类数控设备,由于中心位置(X0,Y0,A0)已有数控设备确定,确定轴向位置即可确定整个加工坐标系。因此,只需要确定轴向(Z0或相对位置)的某个端面作为对刀点即可。对于三坐标数控铣床或三坐标加工中心,相对数控车床或车铣加工中心复杂很多,根据数控程序的要求,不仅需要确定坐标系的原点位置(X0,Y0,Z0),而且要同加工坐标系G54、G55、G56、G57等的确定有关,有时也取决于 *** 作者的习惯。对刀点可以设在被加工零件上,也可以设在夹具上,但是必须与零件的定位基准有一定的坐标关系,Z方向可以简单的通过确定一个容易检测的平面确定,而X、Y方向确定需要根据具体零件选择与定位基准有关的平面、圆。对于四轴或五轴数控设备,增加了第4、第5个旋转轴,同三坐标数控设备选择对刀点类似,由于设备更加复杂,同时数控系统智能化,提供了更多的对刀方法,需要根据具体数控设备和具体加工零件确定。对刀点相对机床坐标系的坐标关系可以简单地设定为互相关联,如对刀点的坐标为(X0,Y0,Z0),同加工坐标系的关系可以定义为(X0+Xr,Y0+Yr,Z0+Zr),加工坐标系G54、G55、G56、G57等,只要通过控制面板或其他方式输入即可。这种方法非常灵活,技巧性很强,为后续数控加工带来很大方便。
3零点漂移现象
零点漂移现象是受数控设备周围环境影响因素引起的,在同样的切削条件下,对同一台设备来说、使用相同一个夹具、数控程序、刀具,加工相同的零件,发生的一种加工尺寸不一致或精度降低的现象。零点漂移现象主要表现在数控加工过程的'一种精度降低现象或者可以理解为数控加工时的精度不一致现象。零点漂移现象在数控加工过程中是不可避免的,对于数控设备是普遍存在的,一般受数控设备周围环境因素的影响较大,严重时会影响数控设备的正常工作。影响零点漂移的原因很多,主要有温度、冷却液、刀具磨损、主轴转速和进给速度变化大等。
4刀具补偿
经过一定时间的数控加工后,刀具的磨损是不可避免的,其主要表现在刀具长度和刀具半径的变化上,因此,刀具磨损补偿也主要是指刀具长度补偿和刀具半径补偿。
5刀具半径补偿
在零件轮廓加工中,由于刀具总有一定的半径如铣刀半径,刀具中心的运动轨迹并不等于所需加工零件的实际轨迹,而是需要偏置一个刀具半径值,这种偏移习惯上成为刀具半径补偿。因此,进行零件轮廓数控加工时必须考虑刀具的半径值。需要指出的是,UG/CAM数控程序是以理想的加工状态和准确的刀具半径进行编程的,刀具运动轨迹为刀心运动轨迹,没有考虑数控设备的状态和刀具的磨损程度对零件数控加工的影响。因此,无论对于轮廓编程,还是刀心编程,UG/CAM数控程序的实现必须考虑刀具半径磨损带来的影响,合理使用刀具半径补偿。
6刀具长度补偿
在数控铣、镗床上,当刀具磨损或更换刀具时,使刀具刀尖位置不在原始加工的编程位置时,必须通过延长或缩短刀具长度方向一个偏置值的方法来补偿其尺寸的变化,以保证加工深度或加工表面位置仍然达到原设计要求尺寸。
7机床坐标系
数控机床的坐标轴命名规定为机床的直线运动采用笛卡儿坐标系,其坐标命名为X、Y、Z,通称为基本坐标系。以X、Y、Z坐标轴或以与X、Y、Z坐标轴平行的坐标轴线为中心旋转的运动,分别称为A轴、B轴、C轴,A、B、C的正方向按右手螺旋定律确定。Z轴:通常把传递切削力的主轴规定为Z坐标轴。对于刀具旋转的机床,如镗床、铣床、钻床等,刀具旋转的轴称为Z轴。X轴:X轴通常平行与工件装夹面并与Z轴垂直。对于刀具旋转的机床,例如卧式铣床、卧式镗床,从刀具主轴向工件方向看,右手方向为X轴的正方向,当Z轴为垂直时,对于单立柱机床如立式铣床,则沿刀具主轴向立方向看,右手方向为X轴的正方向。Y轴:Y轴垂直于X轴和Z轴,其方向可根据已确定的X轴和Z轴,按右手直角笛卡儿坐标系确定。
旋转轴的定义也按照右手定则,绕X轴旋转为A轴,绕Y轴旋转为B轴,绕Z轴旋转为C轴。数控机床的坐标轴如下图所示。
机床原点就是机床坐标系的坐标原点。机床上有一些固定的基准线,如主轴中心线;也有一些固定的基准面,如工作台面、主轴端面、工作台侧面等。当机床的坐标轴手动返回各自的原点以后,用各坐标轴部件上的基准线和基准面之间的距离便可确定机床原点的位置,该点在数控机床的使用说明书上均有说明。
8零件加工坐标系和坐标原点
工件坐标系又称编程坐标系,是由编程员在编制零件加工程序时,以工件上某一固定点为原点建立的坐标系。零件坐标系的原点称为零件零点(零件原点或程序零点),而编程时的刀具轨迹坐标是按零件轮廓在零件坐标系的坐标确定的。加工坐标系的原点在机床坐标系中称为调整点。在加工时,零件随夹具安装在机床上,零件的装夹位置相对于机床是固定的,所以零件坐标系在机床坐标系中的位置也就确定了。这时测量的零件原点与机床原点之间的距离称作零件零点偏置,该偏置需要预先存储到数控系统中。在加工时,零件原点偏置便能自动加到零件坐标系上,使数控系统可按机床坐标系确定加工时的绝对坐标值。因此,编程员可以不考虑零件在机床上的实际安装位置和安装精度,而利用数控系统的偏置功能,通过零件原点偏置值,补偿零件在机床上的位置误差,现在的数控机床都有这种功能,使用起来很方便。零件坐标系的位置以机床坐标系为参考点,在一个数控机床上可以设定多个零件坐标系,分别存储在G54/G59等中,零件零点一般设在零件的设计基准、工艺基准处,便于计算尺寸。一般数控设备可以预先设定多个工作坐标系(G54~G59),这些坐标系存储在机床存储器内,工作坐标系都是以机床原点为参考点,分别以各自与机床原点的偏移量表示,需要提前输入机床数控系统,或者说是在加工前设定好的坐标系。加工坐标系(MCS)是零件加工的所有刀具轨迹输出点的定位基准。加工坐标系用OM-XM-YM-ZM表示。有了加工坐标系,在编程时,无需考虑工件在机床上的安装位置,只要根据工件的特点及尺寸来编程即可。加工坐标系的原点即为工件加工零点。工件加工零点的位置是任意的,是由编程人员在编制数控加工程序时根据零件的特点选定。工件零点可以设置在加工工件上,也可以设置在夹具上或机床上。为了提高零件的加工精度,工件零点尽量选在精度较高的加工表面上;为方便数据处理和简化程序编制,工件零点应尽量设置在零件的设计基准或工艺基准上,对于对称零件,最好将工件零点设在对称中心上,容易找准,检查也方便。
9装夹原点
装夹原点常见于带回转(或摆动)工作台的数控机床和加工中心,比如回转中心,与机床参考点的偏移量可通过测量存入数控系统的原点偏置寄存器中,供数控系统原点偏移计算用。
;数铣及加工中心编程指令复习
非模态G代码 00组的指令有 G04 G09 G10 G11 G27 G28 G29 G30 G31 G37 G45 G46 G47 G48 G50 G51 G52 G53 G60 G65 G92
每个指令的详细讲解
G04 暂停指令
格式 G04 X (P ,U)
详解 G04指令有效后 机床进给暂停 主轴继续运转 暂停的时间由 X P U 后的数值控制 X U 单位是秒 P 的单位是毫秒 1s=1000ms G04的程序段中不能有其他命令
G04 X10 暂停一秒
G04 P1000 暂停一秒
G04 U10 暂停一秒(数车专用)
G09 准确停止
格式 G09
详解 G09是一个不经常使用的指令 它的功能是用来检查切削刀具是否已精确定位 使刀具在接近终点时减速进给
G10 可编程数据输入
格式 无具体格式
详解 G10 这个命令本身没有任何作用 要完成相应的工作 还需其他的辅助输入 而且不同的控制器其指令格式有细微差别
对于FANUC控制器来说
坐标模式
选择绝对(G90)和增量(G91)编程方式对所有偏置量的输入有很大影响 G90或G91可在程序中的任何位置设置 也可以互相修改 只要程序段再调用G10数据设置命令之前进行指定即可 可在程序中设置的有效偏置量
工件偏置量 。。。。。G54~G59
刀具长度偏置量。。。。G43或G44(取消是G49)
切削半径偏置量。。。。G41或G42(取消时G40)
工件偏置量
格式 G10 L2 P X Y Z 加工中心
G10 L2P X Z 车削中心
字L2是固定的命令编辑偏置组号 P地址可在1~6中取值
P1=G54 P2=G55 P3=G56 P4=G57 P5=G58 P6=G59
例如 G90 G10 L2 P1 X-4500 Y-3750 Z00 该语句将会输入 X-4500 Y-3750 Z00 到G54 工件坐标偏置寄存器
G11可编程数据输入取消
机械原点指令 G27 G28 G29 G30
G27 机床原点返回位置检查
G28 第一机床原点返回指令 G28有两种形式 绝对形式和增量形式G90 G28 X140Y20 Z00 刀具运动到点X140Y20 Z00 然后再返回机床原点
G29 从机械原点的回退指令 和G28相反也要通过中间点并有两种形式
G30第二机床原定回退指令
G31跳过指令 主要和数控机床上的探测器一起使用跳转功能
G31是跳转指令,通常只用于测量功能,需要外部输入信号,输入信号的地址是X47(信号名SKIP)。
G31执行过程中如果没有SKIP信号输入则和G01完全一样,如果在执行过程中SKIP信号置“1”,则在SKIP信号置“1”的位置清除剩余的运动量,直接执行下一个程序段。在SKIP信号置“1”时,4个进给轴的坐标值被存储在#5061~5064这4个系统变量中,供测量宏程序计算使用。
你所说的主轴扭矩跳跃大概是指执行小孔深孔钻循环(G83)时的过载扭矩检测退回功能。使用这个功能同样需要输入信号,和G31用的是同一个信号。要求刀具本身有过载检测功能,在检测到过载时输出一个信号到机床的X47(SKIP)。
执行过程大致是这样的:当执行G83过程中(Z轴位置在R和Z之间)如果刀具发出过载信号使SKIP置“1”,则进给停止,刀具退回R点。改变转速和进给速度后再继续执行循环。
主轴转速和进给速度改变的百分比分别在5164和5166号参数设置。
G37自动刀具长度测量
位置补偿G45 G46 G47 G48
G45 在编程方向上增加一倍编程量
格式G91 G00 G45 X Y H
或 G91 G00 G45 X Y D
G46在编程方向上减少一倍编程量
G47在编程方向上增加二倍编程量
G48在编程方向上减少二倍编程量
G50取消比例编程 G51 比例缩放有效
格式 G51 X Y Z P 以给定点X Y Z 为缩放中心 将图形放大到原始图形的P倍 若省略X Y Z 则以程序原点为缩放中心
G52局部坐标系设定
格式 G52 X Y Z X Y Z 用于制定局部坐标系的原点在工件坐标系中的位置G52 X00 Y00 Z00 用于取消局部坐标系
G53 选择机床坐标系
G60 单方向定位
详解 G60只是定位而不是切削 它代替的是G00快速移动指令 在绝对模式或增量模式下都可使用与G00的用法相同 如果使用镜像指令则不必改变定位方向 它的定位方向和超出距离由系统参数指定)
G65 宏程序调用指令
详解G65
在A 类宏指令中的应用
格式 G65 Hm P#i Q#j R#k
m——宏程序的功能
#i——运算结果存放出的变量名
#j——被 *** 作的第一个变量
#k——被 *** 作的第二个变量
在B 类宏指令中的应用
格式G65P L
P被调用的宏程序代号
L 宏程序重复运行的次数 为一时可省略
G92设定工件坐标系指令
格式 G92 X Y Z
详解 执行该命令时 刀具并不运动 只是当前刀位点被设置为工件坐标系下的X Y Z 的设定值
01组 运动指令有G00 G01 G02 G03
G00快速点定位
格式G00X Y Z
G01 直线插补指令
格式 G01 X Y Z F
G02/G03顺/逆时针圆弧擦补
格式
G02 I J
G17 X Y F
G03 R
__________________________________________________
G02 I J
G18 X Y F
G03 R
______________________________________________________-
G02 I J
G19 X Y F
G03 R
_______________________________________________________
02组 平面选择指令
G17 选择XY平面
G18 选择ZX平面
G19 选择YZ平面
X Y Z 终点坐标
I J K 圆心坐标相对于起点在X Y Z 轴向的增量值
R 圆弧半径
F 进给率
03组 尺寸模式
G90 绝对坐标编程G91 相对坐标编程
04组 存储行程
G22存储行程限制激活
格式G22 X Y Z I J K
详解 X Y Z 限制区域的起始点 I J K 限制区域的终止点 X-I>2mm Y-J>2mm Z-K>2mm
G23存储行程限制取消
06组输入单元
G20 英制数据输入G21公制数据输入
07组刀具半径偏置
G40 刀具半径偏取消
G41刀具半径左补偿
格式G41 D
G42刀具半径右补偿
格式G42 D
08组刀具长度偏置
G43刀具长度正偏置
格式G43 H
G44刀具长度负偏置
格式G44 H
G49刀具长度偏置取消
09组循环
固定循环G73 G74 G76 G80 G81 G82 G83 G84 G85 G86 G87 G88 G89
G代码 孔加工行程 (-Z) 孔底动作 返回行程
(+Z) 用途
G73 断续进给 快速进给 高速深孔往复排屑钻孔
G74 切削进给 主轴正转 切削进给 攻左旋螺纹
G76 切削进给 主轴准停刀具位移 快速进给 精镗
G80 ———— —————— ———— 取消指令
G81 切削进给 快速进给 钻孔
G82 切削进给 暂停 快速进给 钻孔
G83 断续进给 快速进给 深孔排屑钻
G84 切削进给 主轴反转 切削进给 攻右旋螺纹
G85 切削进给 切削进给 镗削
G86 切削进给 主轴停转 切削进给 镗削
G87 切削进给 刀具移位主轴启动 快速进给 背镗
G88 切削进给 暂停;主轴停转 手动 *** 作后
快速返回 镗削
G89 切削进给 暂停 切削进给 镗削
固定循环的代码组成
G90/G91 G98(返回初始点)/G99(返回R点) G73~G89
使用前一定要在前一程序段中加M03/M04指令 使主轴启动
固定循环指令的格式是
G X Y Z R Q P F K
G 是指G73~G89
X Y 是指孔在X Y 平面内的坐标位置(增量或绝对值)
Z 是指孔底坐标值 在增量方式时 是R点到孔底的距离 在绝对值方式时 是孔底的Z坐标值
R 在增量方式时是初始点到R点的距离 而在绝对值方式时是R点的Z坐标值
Q 在G73 G83 中是每次进刀深度 在G76 G87 中指定刀具的让刀量
P 暂停时间单位1ms
F 进给量
K 固定循环的重复次数
他们都是模态指令 固定循环中的参数(z r q p f )也是模态的
钻孔包括铰孔 攻丝 和单点镗孔
编程时需考虑钻头的直径和锋角及螺旋槽的数量
10组 返回模式
G98 固定循环返回初始点G99 固定循环返回R点
12组 坐标系
G54 G55 G56 G57 G58 G59
14组宏指令模式
G66 模态调用
G67 模态调用取消
16组 坐标旋转
G68坐标旋转激活
格式G68 X Y R
详解 X Y 旋转中心 如果省略则以程序原点为中心 R 为旋转角度 顺时针为+值 逆时针为-值
G69坐标旋转取消
18组 极坐标输入
G15 极坐标指令取消
G16 极坐标指令激活
24组 主轴速度波动
G25 主轴速度波动检测功能无效
G26 主轴速度波动检测功能有效
格式G26P Q R
P以毫秒记的开始检查时间
Q允许误差的百分比
R主轴速度跳动的百分比
M代码
程序控制组
M00
无条件强制性停止 包括停止 所有轴的运动
主轴的旋转
冷却液功能
程序的进一步执行
执行M00时控制器不会重启 所有当前有效地重要数据(进给率 坐标设置 主轴速度等)都被保存 M00会取消主轴旋转和冷却液功能
M01可选择程序停止 当按下 *** 作面板上的选择停止开关时
M01同M00功能相同
不按下时M01无效
M02程序结束 M02将终止程序但不会回到程序的开头
M30程序结束 M30将终止程序并同时回到程序的开头
执行M02和M30时 便取消所有轴的运动 主轴旋转 冷却液功能 并且将系统重新设置到缺省状态 M02执行时 将停留在末尾 并准备开始下一循环
主轴控制组
M03主轴顺时针旋转(CW) M04主轴逆时针旋转(CCW) M05 主轴停止M19主轴定位
换刀
M06
冷却液
M07开 M08 开(标准)M09关
附件
M10 M11 M12 M13 M17 M18 M21 M22 M78 M79
螺纹加工
M23 螺纹渐退出开M24关
齿轮速比范围
M41 M42 M43 M44
进给率倍率
M48 M49
子程序
M98调子程序 M99子程序结束
托盘
M60
在程序开头激活的M功能 在程序末尾激活的M功能
M03 M00
M04 M01
M06 M02
M07 M05
M08 M09
M30
M60
M功能的持续时间
在单个程序段中有效的
M00 M01 M02 M06 M30 M60
M功能一直有效的,直到被取消或替代
M03 M04 M05 M07 M08 M09
镜像M21对Y轴镜像 M22的X轴镜像 M23取消镜像
当只对X轴或Y轴镜像时 刀具的实际切削顺序将与源程序相反
刀补矢量方向相反 圆弧插补方向相反 同时镜像时 均不变
镜像功能必须在工件坐标系原点开始回到原点取消 各镜像指令必须单独编写
镜像加工程序中不允许带有转移性质的指令
不允许嵌套使用
使用后必须用M23取消
编程实例
O4151
N1 X60 Y10
N2 X40 Y30
N3 X20 Y50
N4 M99
O1111
M21 (镜像开)
G98 P4151(调用需要镜像的程序)
宏程序的变量类型
#0 空变量 它是空变量即所谓的空白变量 它可以被系统读取但不能赋值
#1~#33 局部变量 它仅是暂时的 当完成调用时或切断电源时所有局部变量会被清空
#100~#149
#500~#531 全局或全局变量 完成宏程序调用仍有用 变量由系统维护可以与其他程序共享
#1000~上限 系统变量 用于设置或修改缺省值 可以读写不同的CNC数据
局部变量赋值
自变量列表1的赋值 宏程序中的局部变量
A #1
B #2
C #3
D #7
E #8
F #9
H #11
I #4
J #5
K #6
M #13
Q #17
R #18
S #19
T #20
U #21
V #22
W #23
X #24
Y #25
Z #26
赋值列表2
自变量列表1的赋值 宏程序中的局部变量
A #1
B #2
C #3
I1 #4
J1 #5
K1 #6
I2 #7
J2 #8
K2 #9
I3 #10
J3 #11
K3 #12
I4 #13
J4 #14
K4 #15
I5 #16
J5 #17
K5 #18
I6 #19
J6 #20
K6 #21
I7 #22
J7 #23
K7 #24
I8 #25
J8 #26
K8 #27
I9 #28
J9 #29
K9 #30
I10 #31
J10 #32
K10 #33
大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用宏一般分为A类宏和B类宏A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是
以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广由于现在B类宏程序的大量使
用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;
A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是01MM~~~~~#xx就是变量号,关于变量号是什么意思再不知道的的话我也就没治了,不过还是教一下吧,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~~~#100~#149~~~#500~#531关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义:
以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,
基本指令:
H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中
G65H01P#101Q#10:把10赋予到#101中
H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101
G65 H02 P#101 Q#102 R10
G65 H02 P#101 Q10 R#103
G65 H02 P#101 Q10 R20
上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数
值或变量号内的数值然后等于到P后面的变量号中
H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101
G65 H03 P#101 Q#102 R10
G65 H03 P#101 Q10 R#103
G65 H03 P#101 Q20 R10
上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数
值或变量号内的数值然后等于到P后面的变量号中
H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋予#101
G65 H04 P#101 Q#102 R10
G65 H04 P#101 Q10 R#103
G65 H04 P#101 Q20 R10
上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数
值或变量号内的数值然后等于到P后面的变量号中
H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101
G65 H05 P#101 Q#102 R10
G65 H05 P#101 Q10 R#103
G65 H05 P#101 Q20 R10
上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数
值或变量号内的数值然后等于到P后面的变量号中(余数不存,除数如果为0的话会出现112报警)
三角函数指令:
H31 SIN正玄函数指令:格式G65 H31 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度结果是#101=#102SIN#103,也就是说可以直接用这个求出三角形的另
一条边长和以前的指令一样Q和R后面也可以直接写数值
H32 COS余玄函数指令:格式G65 H32 #101 Q#102 R#103;含义Q后面的#102是三角形的斜边
R后面的#103内存的是角度结果是#101=#102COS#103,也就是说可以直接用这个求出三角形的
另一条边长和以前的指令一样Q和R后面也可以直接写数值
H33和H34本来应该是TAN 和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么
开平方根指令:
H21;格式G65 H21 P#101 Q#102 ;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方跟的指令是没可能用宏做到的
无条件转移指令:
H80;格式:G65 H80 P10 ;直接跳到第10程序段
有条件转移指令:
H81 H82 H83 H84 H85 H86 ,分别是等于就转的H81;不等于就转的H82;小于就转的H83;大于就转的H84;小于等于就转的H85;大于等于就转的H86;
格式:G65 H8x P10 Q#101 R#102;将#101内的数值和#102内的数值相比较,按上面的H8x的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段
用 户 宏 程 序
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
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 600×1000;
N#3 Z2000;
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→BCD
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
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之和
O9500;
#1=0
#2=1
N1 IF [#2 GT10] GOTO 2
#1=#1+#2;
#2=#2+1;
GOTO 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之和
O0001;
#1=0;
#2=1;
WHILE [#2LE10] DO1;
#1=#1+#2;
#2=#2+#1;
END1;
M30;
以上就是关于数控铣床椭圆宏程序怎么编程,详细的全部的内容,包括:数控铣床椭圆宏程序怎么编程,详细的、快速入门数控加工中心编程的方法、数控铣 *** 作与编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)