首页 > 文章中心 > 子程序

子程序

开篇:润墨网以专业的文秘视角,为您筛选了八篇子程序范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

子程序范文第1篇

【关键词】子程序;总结;编程;概念

一、子程序的概念

把同一类型的程序段进行地单独编程,并按照一定的格式单独地加以命名,作为子程序编写起来要求被其他的主程序调用,在进行某一样功能后能自动返回到主程序去的程序。在其最后一条指令是返回指令,并且能被主程序识别进行加工。

二、子程序的运用

(1)应用。原则上讲主程序和子程序之间并没有区别。子程序的一种类型就是循环加工,循环加工包含了一般通用的加工工序,例如螺纹切削、材料切削加工等。通过给定的计算参数赋值就可以实现各种类型的具体加工。(2)结构。子程序的结构与主程序的结构在很多的地方是相同的,在子程序中也是最后一段程序用M99结束子程序来运行程序,子程序结束以后就可以返回主程序了。程序运行好了以后,子程序最后除了可以运用M99这种指令以外,还可以运用RET指令结束子程序并且返回主程序运用。(3)子程序程序名。为了方便地识别某一个子程序,就必须给子程序取一个程序名。这个程序名是可以自由选取,但是必须符合以下几个规定:序开始的两个符号必须是字母;其他的符号可以为字母,数字或下划线;最多八个字符;没有分隔符。其方法与主程序中程序名的选取方法一样。另外,在子程序中还可以使用地址字L…其后的值可以有七位(只能为整数)子程序的调用:在一个程序中(主程序或子程序)可以直接用程序名调用子程序。子程序调用要求占用一个独立的程序段。在使用循环加工进行加工时,要时刻注意一下循环加工的程序也要同样属于四级程序的界面中的一级。对于R的参数也要同样注意一下,不要那种无意识地运用上一段程序界面中所使用的计算参数来修改下段程序界面的计算参数。运用子程序不仅提高程序的可移植性就可以使用子程序来把不可移植的部分,还有明确告诉你当中可移植部分分隔开来。不可移植的部分包括:不是标准性的语言特征、硬件和操作系统的可依赖性等等。加工槽类零件的方法:当一个零件出现了若干处同一种类型轮廓,只要编写该零件一个轮廓形状的一段子程序就可以了,然后运用主程序调用子程序就行了。加工复杂零件时,里面有多道工序,只需要适当调整工序,把它们编成子程序,这样只需要调用子程序就行了,这样就优化了程序。(4)子程序注意事项。子程序编程过程中,不得有循环指令;子程序必须事先编写好并事先储存起来,提供给主程序使用;在子程序的最后面编写M99表子程示该序运用完并且返回主程序;在运用子程序的时候,不仅主程序可以使用子程序,而且子程序也可以使用其他子程序。格式:在不同的程序数控系统中,几乎都有书写格式不尽相同的子程序加工指令。格式如下:M98-调用子程序指令 编写格式:M98 P××××L××××(说明:P后面的四位为子程序名,L后四位为重复调用次数,重复次数省略的时候为这个子程序被调用一次)。M99为该子程序被主程序给调用结束并且返回主程序。槽类零件的加工,需要考虑其加工特点,可分为:单槽、多槽、宽槽、加工中心深槽及异型槽。零件的装夹在切槽过程中根据槽的宽度、大小、切削力的大小等因素。一般采用以下两种装夹方式:利用软卡爪并适当增加装夹的长度,以保证定位准确、装夹稳固。利用车床尾座顶尖做辅助件,可以保证零件的最好稳定效果。车床刀具的选择和进刀方式,对于一些槽深度不深,可以一次性加工,深度深可以利用子程序循环加工。切削用量和切削液的选择,切削速度:600~800r/min,进给速度:0.05~0.3mm/r。(5)切槽注意事项。容易产生振动现象,切削时,切削力的大小容易产生高温,为了降低零件高温的问题,可以使用切削液进行冷却,从而进一步提高生产力和生产的效果。凹圆弧的加工用华中系统进行加工。

子程序范文第2篇

在数控加工与编程中使用子程序多重嵌套,减少了程序调试的工作量,便于编程员检查程序减少出错率,提高了编程质量、加工精度和生产效率,拓展了加工范围。对手工编程有着事半功倍的作用。

【关键词】子程序 嵌套 数控铣削 平面优先 深度优先

1 子程序及子程序嵌套的作用

(1)零件上若干处具有相同的轮廓形状,在这种情况下,只要编写一个加工该轮廓形状的子程序,然后用主程序多次调用该子程序的方法完成对工件的加工。

(2)加工中反复出现具有相同轨迹的走刀路线,如果相同轨迹的走刀路线出现在某个加工区域或在这个区域的各个层面上,采用子程序编写加工程序比较方便,在程序中常用增量值确定切入深度。

(3)在加工较复杂的零件时,往往包含许多独立的工序,有时工序之间需要适当的调整,为了优化加工程序,把每一个独立的工序编成一个子程序,这样形成了模块式的程序结构,便于对加工顺序的调整,主程序中只有换刀和调用子程序等指令

2 子程序调用的指令及格式

在程序中含有某些固定顺序或重复出现的程序区域段时,这些固定顺序或重复区段的程序作为子程序单独存放,过在主程序内书写反复调用子程序的指令,至在子程序中还可以再去调用另外的子程序。调用子程序的指令格式如下:M98P…。子程序调用指令,P后跟被调用的子程序番号。M98P…L…。重复调用子程序指令,L后跟被调用的次数。见图1。

3 子程序及子程序嵌套的应用实例

在编程中使用较多的是二重嵌套,由于数控铣削中有三个轴X/Y/Z一般在加工都需要运动,所以本次实例中讨论三重子程序嵌套以有利于每重子程序分别控制X/Y/Z三轴运动,为此可实现平面(X/Y)优先和深度(Z)优先的两种编程方法。

(1)图2的左下角点为工件原点。

(2)刀具为?10。

(3)程序应用相对与绝对编程。

(4)图2中X平移35, Y平移25,定位点为(-23,-13)。

4 平面(X/Y)优先和深度(Z)优先的编程分析

在平面(X/Y)优先编程中是优先加工一个深度上9个相同型腔或槽再进行其他深度层铣削,而深度(Z)优先是优先加工完成1个型腔或槽再依次加工其他8个。值得注意的是抬刀相对值Z一定要大于型腔或槽总深度,X向3次35mm移动后应还回105mm。

5 结束语

若一个零件中有多个相似或相同的加工部位,可以从这些相似或相同部位入手,建立模型,编写子程序,调用子程序,完成加工。子程序嵌套应用得当,往往比自动编程还要方便快捷。实现平面(X/Y)优先和深度(Z)优先对编程者有很好的指导意义。

参考文献

[1]詹华西.数控加工与编程[M].西安:西安电子科技大学出版社,2007.

[2]田清,方波.参数化编程在简单型腔及槽类零件中的应用[J].科技传播,2011(12下).

[3]聂晶,董守勋.简化编程与子程序嵌套的应用[J].科技传播,2011(12下).

子程序范文第3篇

Abstract: Application of subroutine in layered cutting of metric trapezoidal screw threads addresses effectively the breaking edge. In teaching, students can be safe, effective and high-precision in machining of trapezoidal thread.

关键词: 梯形螺纹;分层切削;子程序

Key words: metric trapezoidal screw threads;layered cutting;subroutine

中图分类号:TG519.1 文献标识码:A 文章编号:1006-4311(2013)14-0046-02

0 引言

梯形螺纹是应用很广泛的传动螺纹,它们的工作长度较长,使用精度要求较高,车削时比普通三角形螺纹困难,在技工学校中在普车上加工梯形螺纹是比较成熟的课题,但在数车实习中很少安排。其实,只要选择合适的刀具,工艺分析合理,编程方法得当,完全可以在数控车床上加工出合格的梯形螺纹,笔者就自身在教学中的一点体会来谈谈梯形螺纹的编程方法的加工技巧。

1 梯形螺纹相关知识

1.1 梯形螺纹标记:梯形螺纹标记由螺纹代号,公差带代号以旋合长度代号组成,彼此用“一”分开。

标记示例:单线螺纹:Tr36×6-7H-L

Tr:梯形螺纹代号 36:公称直径

6:导程(对于单线螺纹,导程与螺距相等)

7H:公差代号 L:旋合长度代号

多线螺纹:Tr36×12(P6)-LH-7e-100

Tr:梯形螺纹代号 36:公称直径

12(P6):导程(螺距) 7e:公差代号

100:旋合长度

1.2 梯形螺纹的计算 以外梯形螺纹为例,其各部分名称、代号及计算公式见表1。

1.3 梯形螺纹车刀

1.3.1 粗车刀 为了左右切削并留精车余量,刀尖角应小于牙型角,一般选粗车刀刀尖角度为29°,刀尖宽度应小于牙型槽底宽度w。

1.3.2 精车刀 车刀的径向前角为0°,两侧切削刃之间的夹角等于牙型角,车削时,车刀的前端不能参加切削只能精车牙侧。精车刀刀头宽度一般比粗车刀刀头窄0.1mm。

1.4 梯形螺纹的车削方法 ①直进法:螺纹车刀X向间歇进给至牙深,采用这种方法加工梯形螺纹时,螺纹车刀的三面都参加切削,导致加工排屑困难,切削力和切削热增加,刀尖磨损严重,当进刀量过大时,还可能出现 “扎刀”和“爆刀”现象,适合加工螺距小于4mm,精度要求不高的梯形螺纹。应用数控螺纹加工指令G32、G92。②斜进法:螺纹车刀沿牙型角方向斜向间歇进给至牙深,采用这种方法加工梯形螺纹时,螺纹车刀始终只有一个侧刃参加切削,从而使排屑比较顺利,刀尖的受力和受热情况有所改善,车削中不易引起“扎刀”现象,适合加工4≤螺距

1.5 梯形螺纹的测量方法 梯形螺纹外径主要采用游标尺寸和千分尺测量,中经主要采用三针和单针测量,梯形底径一般由中滑板刻地盘控制牙型高度。

2 编程实例(只车削梯形外螺纹)

2.1 梯形螺纹参数计算 根据表1所给的公式进行计算:Tr36×6梯形螺纹的大经:36mm,中经:33mm,小径:29mm,牙高:3.5mm(半径值),牙槽底宽:1.928mm。

2.2 刀具选用:粗车刀材料选用硬质合金,刀尖角29°,刀尖宽度1.5,中速车削,提高效率;精车刀材料选用高速钢,刀尖角30°,刀尖宽度1.4,低速车削,保证精度。

2.3 机床系统选择:FANUC 0i

2.4 加工方法的选择:分层车削法,这种切削方式是在每一个进给时把单线梯形螺纹分成三线螺纹,即把一刀分成三刀,从而减少了切削抵抗。实际上是左右切削法改为“中、左、右”切削,因为如果不先从中间切一刀,铁屑仍然会挤刀,这是从实际中得来的结论。与普通车床的左右切削法不同,在数控车床上的“中、左、右”切削需要精确计算。

2.5 指令格式:

①简单螺纹车削循环指令G92

格式:G92_X_Z_F ;

X_Z:螺纹切削终点的坐标值;

F:导程(单头螺纹螺距等于导程)

②子程序调用指令

格式:M98 P :循环次数

:子程序号 M99:子程序返回

为了减少编程语句,应用子程序调用。

2.6 梯形螺纹编程(本文只写出梯形螺纹的加工程序)

①粗加工程序。(表2)②精加工 粗加工程序保证该螺纹的小径29mm达到尺寸要求。此时需要测量牙底宽度,如比理论值大0.1mm,则单边大0.05mm,此时对该螺纹进行精加工,则达到要求。(表3)

3 结束语

在数控车床中采用分层切削梯形螺纹,有效地解决了梯形螺纹加工过程中易扎刀的问题,运用子程序编程,可使程序简化。在教学中采用此方法,学生可以很容易的掌握安全、高效、高精度加工梯形螺纹的方法。

参考文献:

[1]沈建峰.数控车床编程与操作实训[M].北京:国防工业出版社,2005.

子程序范文第4篇

【关键词】比较教学法;单片机原理与应用;调用;中断;

从事《单片机原理与应用》教学工作已有多年,在教学过程中发现初学者很容易把中断和调用这两个过程混淆,这两个知识点既是教学重点又是教学难点,根据多年的经验把它们对比起来进行施教能收到良好的教学效果。

一、调用和中断的定义

1、调用

程序设计过程中,经常会遇到在不同的程序中或同一程序的不同位置要用到功能相同的程序段,对于这样的程序段,将其独立出来,附加少量的额外指令,编制成可供反复调用的独立程序段。这种程序设计方法称为子程序设计。被独立出来的程序段称为子程序。调用子程序的程序称为主程序。

单片机执行主程序的过程中,需要用到子程序的功能,称为“调用”。子程序执行完后,必须回到主程序,称为“返回”。

2、中断

CPU正在执行程序的过程中,由于CPU之外的某种原因,有必要暂停该程序的执行,转而去执行相应的处理程序,待处理程序结束之后,再返回原程序断点处继续运行。这一过程称为中断。

二、调用和中断的联系与区别

1、联系。调用和中断两过程属于完全不同的概念,但它们也有不少相似之处。两者都需要保护断点(即下一条指令首地址)、跳至子程序或中断服务程序、保护现场、子程序或中断处理、恢复现场、恢复断点(即返回主程序)。两者都可实现嵌套,即正在执行的子程序再调另一子程序或正在处理的中断程序又被另一新中断请求所中断,嵌套可为多级。正是由于这些表面上的相似处,很容易使学生把两者混淆起来,特别是把中断也看为子程序,这就大错特错了。

2、区别。调用与中断过程相似,但都是表面的,从本质上讲两者是完全不一样的。两者的根本区别主要表现在服务时间与服务对象不一样上。第一,调用子程序过程发生的时间是已知和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序,因为调用指令所在位置是已知和固定的。而中断过程发生的时间一般是随机的,CPU在执行某一主程序时收到中断源提出的中断申请时,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的。也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的。第二,子程序完全为主程序服务的,两者属于主从关系,主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序两者一般是无关的,不存在谁为谁服务的问题,两者是平行关系。第三,主程序调用子程序过程完全属于软件处理过程,不需要专门的硬件电路,而中断处理系统是一个软、硬件结合系统,需要专门的硬件电路才能完全中断处理的过程。第四,子程序嵌套可实现若干级,嵌套的最多级数由计算机内存开辟的堆栈大小限制,而中断嵌套级数主要由中断优先级数来决定,MCS-51单片机的中断优先级数为两级(即高级和低级)。第五,子程序返回指令是RET,中断返回指令是RETI.。子程序返回指令RET的功能是从子程序返回到主程序,并从调用指令的下一条指令处继续执行主程序,它一般位于子程序结束处;中断返回指令RETI作为中断服务程序的结束指令,除了具有RET的功能外,还具有清除中断响应时被置位的优先级状态、恢复中断逻辑等功能。因此这两条返回指令使用时是有区别的,不能用子程序返回指令RET代替中断返回指令RETI。

三、调用和中断两过程的详细比较

1、调用过程。主程序调用子程序过程应包括保护断点、跳至子程序首地址、保护现场、子程序处理、恢复现场、恢复断点(子程序返回)六步。这六步都是用软件指令完成的。其中前两步保护断点和跳至子程序首地址由调用指令CALL完成。保护断点其实就是把断点地址推入堆栈中保护起来,要注意的是保护的断点应是紧跟着调用指令的下一条指令的首字节地址,而不是调用指令本身的地址,否则会引起重复调用“死循环”,这点必须提醒学生注意。LCALL和ACALL是MCS-51单片机的两条调用指令,分别称为长调用和绝对调用,

2、中断过程。中断过程远比调用子程序过程复杂,它包括中断请求、中断排队(中断优先级控制)、中断响应、中断服务和中断返回五步。这五步是由硬件和软件结合完成的。中断请求:MCS-51单片机共5个中断源,包括两个外部中断(由 和 引脚输入中断请求信号)和三个内部中断源(定时器/计数器溢出中断T0、定时器/计数器溢出中断T1和片内串行口中断TXD发送/RXD接收)。中断请求由中断源向CPU提出并将中断请求标志寄存器(TCON、SCON)中相应的中断请求标志位置1。中断排队:由于CPU在某一时刻只能响应一个中断请求,为处理执行主程序时同时来了多个中断请求和正在处理某一中断时又来了新的中断请求这两种情况,计算机采用硬件或软件给各个中断源优先权大小进行中断排队,从多个中断申请中选出一个级别最高的中断请求并响应,这一过程称为中断排队。MCS-51单片机用户可用指令设置中断优先级控制寄存器IP的值,将5个中断源的请求分为高级和低级两个优先级。而且同级中还有5个固定的自然优先级别,从高到低的优先顺序分别是、T0、、T1、TXD/RXD。这样,在执行主程序时,同时来了两个以上中断请求,则先按高低两级选择高优先级。如果只有一个高级的中断请求就直接选之,如果有两个以上都是同级,则按同级自然优先级别选择其中的一个优先响应。如果正在执行一个低优先级,又来了一个高优先级,则高优先级中断低优先级,这就形成了两级中断嵌套;如果正在执行的中断级别高于或等于新来的中断级别,则不予理睬,不会引起中断嵌套。可见,MCS-51单片机最多形成两级中断嵌套。中断响应:满足响应条件时,进入指定的中断服务程序入口地址。MCS-51单片机的中断服务程序入口地址是固定的,它们分别是 为0003H、T0为000BH、为0013H、T1为001BH、TXD/RXD为0023H。中断服务:有关(禁止)同级和低级中断、中断请求撤除、保护断点、跳至中断服务程序入口、保护现场、中断处理、恢复现场等七步组成。这七步中断服务过程与前面介绍的五步调用子程序过程类似,只是增加了禁止同级和低级中断请求以及中断请求撤除两步,其余五步完全一致。禁止同级和低级中断目的是使不同时来中断请求的同级隐含排队原则无效,此时只能实现高级嵌套低级的两级中断嵌套。在中断处理的返回前清除原中断请求原因是防止同一次中断申请被重复响应。中断返回:中断处理完后,就应返回断点继续执行主程序,包括开(允许)同级和低级中断和恢复断点两步。

中断服务过程的前四步是由硬件自动实现的,这点完全不同于调用子程序过程。当然TXD/RXD中断请求与、电平触发中断请求还需用户分别用软件和硬件清除中断请求。断点现场保护与恢复也是通过堆栈推入与弹出或改变工作寄存器区来实现的。

中断过程与调用子程序过程是《单片机原理及应用》教学中的重点和难点内容之一。两过程之间既有联系又有区别,本文从多个不同角度详细地对比了它们的异同。对于培养学生编制软件及开展计算机应用方面的能力,具有积极的指导意义,采用这种比较教学法,有利于教学质量的提高。

参考文献:

子程序范文第5篇

关键词:数控系统,BEIJING-FANUC0iMate,SINUMERIK840D,HNC-21M

 

数控加工作为现代制造业先进生产力的代表 在航空航天机械电子船舶化工汽车等行业得到广泛应用并逐渐被其它行业广泛使用FANUC数控系统和SINUMERIK数控系统是目前国内最流行的机床控制系统, 华中数控系统作为国产数控系统中的代表,正逐步扩大自己在行业内的市场份额。本文作者主要针对国内行业中最常用的BEIJING-FANUC 0i Mate系统和SINUMERIK 840D 系统和 HNC-21M数控系统在铣削加工中的常用编程指令编程方法的异同作对比分析研究目的是供机床操作编程人员参考与借鉴。

1、程序结构的异同

数控加工程序段的格式有两种:字地址格式和分隔符格式。数控加工程序结构的异同数控加工程序有程序开始、若干个程序段、程序结束三部分组成。每个程序对应一个程序名称(即程序号)。

对于 BEIJING-FANUC0i Mate系统,主程序和子程序的程序名规定相同,由地址“O”和后面的 4位数字组成如O1234。 子程序与主程序是以“独立”的程序被保存在 CNC存储器中。子程序由“M99”结束,主程序需用指令“M98”调用子程序。子程序可以嵌套4 级子程序。

而对于SINUMERIK 840D数控系统, 主程序和子程序的程序名规定相同,由任意字母或双字母与数字组合,主程序以.MPF 为后缀子程序建立时用 .SPF后缀来定义子程序,其结束语句为“RET”。免费论文参考网。免费论文参考网。将子程序名作为主程序的一个程序段,即可实现子程序的调用。子程序可以嵌套11级子程序。

对于华中HNC-21M 数控系统主程序文件名由地址“O”和后面的4位数字组成,如O1234,程序名由%和后面的4位数字组成。如%2345;子程序的程序名由“%”和后面的4位数字组成。子程序须紧跟在主程序的M02或M30 后面,与主程序共同组成一个程序 。子程序可以嵌套9级子程序。

2、刀具半径补偿功能指令的异同

在铣削零件轮廓时由于刀具半径尺寸的影响刀具的中心轨迹与零件轮廓往往不一致。为了避免计算刀具中心轨迹,数控系统提供了刀具半径补偿功能,编程人员可以直接按零件图样上的轮廓尺寸编程。

(1)相同之处

G41是刀具半径左补偿指令,即顺着刀具前进方向看 ,假定工件不动,刀具位于工件轮廓的左边:G42是刀具半径右补偿指令,即顺着刀具前进方向看, 假定工件不动,刀具位于工件轮廓的右边,G40是取消刀具半径补偿指令使用该指令。使用该指令后,G41、G42指令无效。

(2)不同之处

对于BEIJING-FANUC0i Mate数控系统和HNC-21M数控系统,G41或G42必须与G40 成对使用,即编程中刀补方向改变时,必须先取消刀补,才能建立新的刀补。而对于SINUMERIK 840D 数控系统,无需经过G40、G41、G42 就可以相互转换。

刀具补偿值的输入BEIJING-FANUC0i Mate系统可以用功能指令G10 由程序输入,SINUMERIK840D系统也具有类似的功能。这些功能能方便解决刀具补偿值随加工轨迹变化而变化的问题。

3、圆弧插补功能指令的异同

基本移动指令有G00、G01、G02、G03 中,G00 和G01 的编程格式均相同。但圆弧插补有区别。对于BEIJING-FANUC0i Mate 数控系统和HNC-21M数控系统,圆弧插补有终点 /圆弧半径和终点/ 圆心坐标两种编程方式(圆弧半径地址为R)而SINUMERIK 840D 数控系统有更多编程方式,除上面两种方式外,还有中间点/终点、张角/圆心、张角/终点等极坐标编程方式(圆弧半径地址为CR=),使圆弧的编程更为方便。免费论文参考网。

4、刀具长度补偿功能指令的异同

使用刀具长度补偿指令,可以方便解决使用多把刀具加工零件时刀具长度不等长所带来的问题。 还可以方便解决加工时由于刀具磨损、更换刀具等原因引起刀具长度尺寸变化带来的问题。一般的数控系统都具备这样的功能,但在功能指令上有以下的不同。

(1)对于BEIJING-FANUC 0i Mate数控系统和HNC-21M 数控系统须用功能指令来实现长度补偿功能 。其中G43是建立刀具长度正补偿,G44是建立刀具长度负补偿;G49是取消刀具长度补偿。其编程格式为

G43(G44) ZH (建立长度补偿)

G49/ G00/G01Z (取消长度补偿)

(2)对于SINUMERIK 840D系统,刀具调用后,对应刀具地址中的长度补偿值随即生效,长度补偿不需G指令建立,相反该系统将视 G43/G44或G49 指令为非法指令。

5、固定循环功能指令的异同

为了进一步提高编程工作效率,数控系统中一般设计了固定循环功能,它把一些典型加工中的固定、连续的动作用,一个程序段表达,即用固定循环指令来进行孔或槽的加工。

(1)对于BEIJING-FANUC 0i Mate 数控系统和HNC-21M 数控系统,常用的孔加工固定循环有钻孔、攻螺纹和镗孔等指令。这些循环通常包括在XY平面定位、快速移动到 R平面、孔的切削加工、孔底动作、返回到R平面返回到起始平面 6个基本动作。

其编程格式如下:

G90(G91) G98(G99) G73~G89 X Y Z R QP F K/L

式中G90/G91表示绝对坐标编程或增量坐标编程;G98调用固定循环,并使刀具返回到起始平面;G99调用固定循环,并使刀具返回到 R平面;G73~G89表示孔加工方式,如钻孔加工、高速深孔钻加工、 镗孔加工等;X、Y表示孔的位置坐标;Z表示孔底坐标;R表示安全面 (R平面)的坐标;Q表示每次切削深度;P表示孔底的暂停时间;F表示切削进给速度;K表示规定的重复加工次数;(FANUC 0i 数控系统)L 表示规定的重复加工次数;(HNC-21M 数控系统)固定循环由G80或01组的G代码撤消。

(2)SINUMRIK 840D系统中固定循环的编程

SINUMERIK 840D数控系统的固定循环包括钻孔循环(如中心钻孔、深度钻孔、刚性攻丝、铰孔、镗孔等)钻孔样式循环(加工一排孔、加工一圈孔)和铣削循环(矩形槽、键槽和圆形凹槽)固定循环的功能更为强大。

掌握了不同数控系统的功能指令的差异在熟悉一种数控系统的NC编程的基础上可以轻松地完成其它数控系统的NC编程

参考书目:

1、SINUMERIK 840D/810D操作说明书

2、BEIJING-FANUC 0i Mate操作说明书

3、世纪星 铣床数控系统HNC-21M 编程说明书

子程序范文第6篇

【关键词】 交流变频调速 可编程逻辑控制器 AB变频器 自由口通信 运动控制

传统的PLC-变频器系统采用开关量控制启停,模拟量输出0-5(10)V电压或4-20mA电流信号控制,需要更多的传感器和输入输出点,成本高,维护困难,干扰性较大。在当今的企业工业控制系统中,利用可编程控制器与变频器通信并构建庞大的通信网络完成各种运动控制功能已经成为主流。本文利用西门子S7-200的官方手册以及AB PowerFlex40的快速启动手册设计出了S7-200与AB PowerFlex40变频器的自由口通信。

一、S7-200的自由口通信模式

使用自由口模式时,必须先对其工作模式进行定义,S7-200的数据通信格式包括一个起始位,一个停止位,7位或者8位的数据位,校验位和校验类型(奇或偶校验)。当使用通信模块上的端口0时,需要通过编程将控制字节送入寄存器SMB30.使用端口1时,送入SMB130。T通信操作数定义如下:波特率 mm:协议选择。

二、系统硬件设计

利用RS-485串行通信接口进行数据传输,此次通讯中,利用九针RS485通信口的3针口与8针口进行通信,变频器一端连接RJ45端口的4、5脚。用带水晶头的网线连接变频器的通讯端口,网线另外一端用两跟单线连接RS485的3、8针口,可完成本次通讯试验的硬件连接。

三、 系统软件设计

(1)变频器通信参数的设置。AB PowerFlex 40 参数设定:P035[最大频率]:50HZ 、P036[起动源]:5(通讯端口起动)、 P038[速度基准值]:5[通讯端口控制]、A103[通讯数据传输率]:3(9600波特率)、A104[通讯节点地址]:1、A105[通讯丢失动作]:3(保持最后状态)、A106[通讯丢失时间]: 15s、A107[通讯格式]:1 RTU8-E-1(偶校验)

(2) S7-200程序模块即各自的功能。主要程序模块说明:

设置VB100-VB108为发送指令XMT缓冲区、VB200-VB08,VB217,VB218为接收指令RCV缓冲区,M0.0,M1.0,M1.1为标志寄存区,I0.0-I0.4为输入映像寄存区,Q0.0,Q1.0,Q1.1为输出映像寄存区。

主程序:用于初始化并查询各变频器指令,先通过SM0.1调用通讯端口初始化子程序进行空闲行间间隔检测时间、自由口通信的数据接收格式 、字符间定时器超时检测、接收信息的最大缓冲区等指令设置。用开关数字量I0.0调用运行频率子程序,用I0.1调用正转子程序,I0.2调用停机子程序,I0.3调用复位子程序,I0.4调用查询变频器状态子程序。通过M0.0(接收数据CRC验算错误标志)、M1.0(变频器正转运行标志)、M1.1(变频器待机标志)分别给Q0.0,Q1.0,Q1.1赋值输出,借此观察系统运行状态。通讯端口初始化程序:用于设置自由口通信模式、各种寄存区的复位、发送接受中断,全局启用中断。设定运行频率子程序:用于设定发送的字节数、变频器地址,变频器频率设定值地址、频率设定值、调用CRC校验程序、选择发送端口。正传子程序按照设定运行频率子程序编写即可。

停机子程序包括:发送字节数、变频器地址、modbus读功能码、变频器停机指令地址、停止指令、调用CRC校验程序、选择发送端口。复位子程序用于清空变频器的寄存器,查询变频器状态子程序包括:XMT指令要发送的字节数、变频器地址1、modbus读功能码03、变频器状态参数地址高位、变频器状态参数地址低位、被数字个数高位、被读参数字个数低位、调用CRC校验子程序、将缓冲区VB100-VB108数据由0端口发送。

CRC校验程序:数据通信领域中常用的差错校验码,特征为信息字段和校验字段的长度可以任意选定。改程序用于信号传输的检错。

CRC校验程序的流程图:

四、结束语

本文探讨了S7-200PLC与AB PowerFlex40变频器的自由口通信的实现方法与现实意义,对于工业运动控制系统的设计提供了借鉴价值,对于提高系统稳定性与抗干扰性以及实现通信网络具有重要的意义。

参考文献

[1]孙晓明,熬非.S7-200PLC与Danfoss变频器自由口通信的实现[J].武汉理工大学学报,2009.8

[2]西门子(中国)有限公司自动化与驱动集团.深入浅出西门子S7-200PLC[M].北京:北京航空航天大学出版社,2003:1-21

子程序范文第7篇

1 引言

所谓中断是指当CPU正在处理某件事情的时候,外部发生的某一事件(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方继续原来的工作,这样的一个过程称之为中断。以8051为例,中断系统含有5个中断源,分别是外部中断0请求(INT0),外部中断1请求(INT1),定时/计数器0溢出中断请求(T0),定时/计数器1溢出中断请求(T1)以及串行口中断请求(Tx/Rx)。既然系统含有5个中断源,就有可能出现数个中断源同时提出中断请求的情况,这样,设计人员必须事先根据它们的轻重缓急来为每个中断源确定CPU对其的响应顺序。然而,对于中断优先级寄存器IP来说,只可能设定两级优先,即控制位为1时对应的中断源为高级中断,反之,控制位为0时对应的为低级中断。这样就出现一个问题:如果一个中断正在执行,如何才能让它响应同级甚至是低级中断请求呢?

2 中断多优先级的扩展

根据8051的结构特点,其中断系统中含有两个不可寻址的“优先级生效”触发器。一个用于指出CPU是否正在执行高优先级的中断服务程序,这个触发器为1时,系统将屏蔽所有的中断请求;另一个则指出CPU是否正在执行低优先级中断服务程序,该触发器为1时,将阻止除高优先级以外的一切中断请求。由此可见,若要响应同级甚至是低级中断请求,必须使得该“优先级生效”触发器清零。但该触发器又是不可寻址的,所以无法用软件直接清零。遍历系统所提供的111条指令,只有RETI可以达到此目的。该指令可在CPU执行该指令时,一方面清除中断响应时所置位的“优先级生效”触发器,另一方面可从当前栈顶弹出断点地址送入程序计数PC,从而返回主程序。

3 软件扩展方法

3.1 高级中断源响应低级中断源的软件设计

现以当前IE=84H(开放外部中断1及总控制位),IP=04H?设定INT1为高优先级?正在执行外部中断1服务子程序为例来进行说明。如欲响应串行口中断,也就是要实现高级中断源响应低级中断源,设计时可加入如下代码而无须改变IP寄存器的内容:

PUSH IE ;IE内容入栈保护

MOV IE , #10010000B ;开放串行口中断

CALL PP ;继续执行原中断子程序,但可

随时响应串行口中断请求

...

POP IE ;恢复原IE内容

RETI

PP: RETI

3.2 同级中断源之间的响应

上述代码体现了高级中断源(INT1)响应低级中断源(串行口)的软件实现方法。但是, 8051系统共含有5个中断源,因此必须解决同优先级中断之间的嵌套问题,具体源程序如下:

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP X0 ;INT0入口地址

ORG 000BH

LJMP T0 ;T0入口地址

ORG 0013H

LJMP X1 ;INT1入口地址

ORG 001BH

LJMP T1 ;T1入口地址

ORG 0023H

LJMP SS ;串行口入口地址

MAIN: MOV IE ,#9FH ;开放所有中断

MOV IP,#03H ;设定INT0、T0为高优先级

SJMP $

X0: PUSH DPL

PUSH DPH

MOV DPTR,#X0RL

PUSH DPL

PUSH DPH

RETI ;(PC)=X0RL,清"高优先级生效"

触发器,此时可响应其它中断请求

X0RL:· ;INT0子程序的真实入口地址

·

·

·

POP DPH

POP DPL

RETI

T0: PUSH DPL

PUSH DPH

MOV DPTR,#T0RL

PUSH DPL

PUSH DPH

RETI ;(PC)=T0RL,清"高优先级生效"

触发器,此时可响应其它中断请求

T0RL: · ;T0子程序的真实入口地址

·

·

·

POP DPH

POP DPL

RETI

X1: PUSH DPL

PUSH DPH

MOV DPTR,#X1RL

PUSH DPL

PUSH DPH

RETI ;(PC)=X1RL,清“高优先级生效”

触发器,此时可响应其它中断请求

X1RL: · ;INT1子程序的真实入口地址

·

·

·

POP DPH

POP DPL

RETI

T1: PUSH DPL

PUSH DPH

MOV DPTR,#T1RL

PUSH DPL

PUSH DPH

RETI ;(PC)=T1RL,清"高优先级生效"

触发器,此时可响应其它中断请求

T1RL: · ;T1子程序的真实入口地址

·

·

·

POP DPH

POP DPL

RETI

SS: PUSH DPL

PUSH DPH

MOV DPTR,#SSRL

PUSH DPL

PUSH DPH

RETI ;(PC)=SSRL,清"高优先级生效"

触发器,此时可响应其它中断请求

SSRL: · ;串行口子程序的真实入口地址

·

·

·

POP DPH

POP DPL

RETI

上述程序利用IP寄存器给出了两级优先级,其中INT0、T0为高优先级,INT1、T1串行口为低优先级。为使某中断能响应同级甚至低级中断,只要在中断服务子程序中用RETI指令清除相应的不可寻址的“优先级生效”触发器即可。程序一开始的两条PUSH指令的作用是对原始数据进行入栈保护(如此时DPTR中的数据不需保留,则这两条压栈指令也可不要,相应的弹栈指令也可不要),然后将其真实子程序入口地址入栈,并经RETI出栈后弹给PC指针,以便在执行完RETI后正确执行真实子程序。当该中断服务子程序执行完毕后,RETI将返回主程序断点处以继续执行原来程序。

子程序范文第8篇

(1)用主程序及被调用的宏程序编程

用主程序及被调用的宏程序进行编程,程序标准化程度和通用性高,特别是对于使用加工中心进行大批量和连续生产情况下,加工参数调整方便。在主程序和被调用的宏程序中包括对各个自变量赋值,当情况比较复杂、选用变量或中间变量比较多时,由于FANUC系统对于局部变量的用法有着严格的规定,如果在选用变量时,需要同时兼顾主程序和宏程序对变量赋值(即只考虑使用自变量Ⅰ进行赋值)的方便,则在实际编程时难免分散精力、影响思路,而且实际加工需要主程序和被调用的宏程序共同生效才能完成,这期间二者间的程序号的对应也容易出错的。

(2)在带有自变量的同一个程序编程

该宏程序的使用没有上面给变量赋值容易出错、影响思路的顾虑,编程者只需要把注意力集中在如何表达刀具运动轨迹这个核心问题上,变量选用完全可以从#1~#33依次选择。但是,程序标准化程度和通用性不好,需要进入程序内部修改加工参数。因此,如何对这两种编程方法如何选择,需视情况而定。一般来说,相对简单的程序,用第一种方法好处多,对于复杂工件来说,第二种更为实用。

2用宏程序对孔编程加工应用分析

在宏程序中子程序应用中,针对同一产品的多个相同加工特征的情况,以CAM软件编程或手工编程时,如果能充分利用子程序功能,既可减少建模的工作量,也可提高程序的简洁性,降低程序的错误率。在多数数控系统中,子程序调用都有专门的指令,如在FANUC系统中有M98/M99等指令。以下为两种常见的加工分析。

2.1如何进行相同轮廓的重复加工

(1)在同一零件上相同轮廓在不同位置出现多次;

(2)在连续板料上加工多个零件;

(3)在一个平面进行多个孔加工。

2.2实现相同轮廓和特征重复加工的方法实现相同轮廓和特征重复加工的方法有:

(1)用增量方式定制轮廓加工子程序,在主程序中用绝对方式对轮廓进行定位,再调用子程序完成加工;

(2)用绝对方式定制轮廓加工子程序,并解决坐标系平移的问题来完成加工;

(3)用宏程序完成加工。该加工图纸由于孔直径比较大,不应采用常规的孔加工的固定循环指令,故采用上述方法来完成大孔的加工编程。进行高速加工关键技术有三点:首先保持切削载荷平稳进行,这样才能够保证精度要求;其次是最小的进给率损失,保证刀具按要求的进给速率进行切削;最后是CNC处理系统功能强大,才能够把随即的处理数据传给伺服系统。同时,在高速铣削条件下,加工工件时,要求公差带要设置尽量小,切削层要(切削深度不大于刀具直径的10%)尽量小,以便刀具达到足够的刚度和韧度要求,也能够提高工件表面加工质量,从而达到加工精度要求。

3结束语