快捷搜索:

线接触加工数控系统的实时控制解决方案

引 言

数控系统是一种范例的工业节制软件,其系统的实时检测以及节制时序都必要光阴基准。只管Windows操作系统因其具有强大年夜的功能和友好的通信用户界面,而使得它不仅被广泛的用作治理事务型事情的平台,也被工业领域的工程职员所关注。但Windows系统顶层的利用法度榜样并非是基于优先级来调整义务的,无法急速相应外部事故的中断,是以也就不能满意工业利用情况中实时事故处置惩罚和实时节制利用的要求,是以若何在Windows情况下实实际时节制是实现大年夜多半实时系统的关键。本文归纳了Windows情况下实时操作系统实现的几种规划,并经由过程阐发对照,提出了线打仗加工数控系统中实时节制的办理规划——引入外部高精度的准时时钟,在Windows情况中编写WDM法度榜样来相应高精度准不时钟,从而实现线打仗加工数控系统的强实时节制问题。

1、 Windows 2000操作系统进行实时节制的办理规划

在Windows 2000操作系统情况中进行实时节制时,根据对准时精度以及实时性要求不合,平日可采纳以下几种措施。

1.1 使用Windows系统供给的老例准时器及多媒体准时器

PC机中,最小的准光阴隔是55 ms申请一次中断哀求。在一样平常的利用软件开拓平台上都供给了一个具有准时功能的Timer控件用于相应这其中断,如C++Builder中的TImer控件,用户可以经由过程Windows供给的API函数SetTImer和KillTImer来实现准时,然则因为系统时钟的限定,采纳这种要领所得到的时钟周期是不会跨越55 ms的。同时这些常用的准时器事故也是由消息机制驱动的,准时消息被放在消息行列步队里与其他消息一路排队,而准时消息的优先权很低,一旦碰到系统对照忙时,就有可能在消息行列步队里同时壅闭很多条准时消息。Windows系统对准时消息的处置惩罚是:当在行列步队中同时有几条光阴消息时,系统就会丢弃其他的光阴消息,而仅仅处置惩罚此中着末的一条准时消息。由此可见,使用系统供给的准时器只能处置惩罚一些对准时精度、实时节制要求不高的环境。别的也可以使用Windows操作系统中mmsystem.dll多媒体扩展库供给的准时器,它是使用设置准时器回调函数TImeSetEvent,准韶光阴一到,系统就会调用回调函数,从而实现准时。准时回调函数是经由过程挂接准时中断来实现的,从而避开操作系统的消息驱念头制。采纳这种措施最高可以得到1 ms的准时精度。

1.2 使用系统准时中断

使用PC机中8254定芯片孕育发生的中断哀求0得到准光阴隔。操作系统在事情时,事情时钟主要由PC机的8254时钟芯片供给。8254.共有三个自力的16位计数器,计数器0,1,2的地址分手是40H,41H和42H,43H是节制寄存器的端口地址。此上钩数器0为日时钟的中断源,同时也是系统的准时中断源。在系统加电后,:BIOS对8254初始化,设置计数器0的初值为0,脉冲输出要领是要领3(输出方波脉冲)。这样,就可以在输出端获得频率为f=1.913 18 MHz/65 535=18.2 Hz(此中1.913 18 MHz是8254时钟输入真个输入脉冲频率,65 535是16位计数器的计数宽度)的方波输出脉冲作为输出中断频率,即每隔55 ms提起一次中断哀求,CPU相应后转入日时钟中断处置惩罚法度榜样,即中断哀求0的中断办事法度榜样。

经由过程上面的阐发,要想得到高精度的准不时钟,可以经由过程两步实现:首先,根据必要改动8254计数器0的计数初值,从而改变计数器0的输出时钟中断频率。然后经由过程改动中断哀求0中断办事法度榜样的中断地址,将中断哀求0挂接到中断办事法度榜样上。

详细挂接中断办事法度榜样的法子是经由过程编写WDM驱动法度榜样,改动IDT(Interrupt Descriptor Table)中断描述符表。IDT是定义硬件中断映射的表,其事情道理类似于MS-DOS情况中的中断向量表,它在内存中的地址是从0000:0000开始,每个表项共占4个字节,共有8 192其中断描述符,然则CPU能够使用的只有前面的256个。在Windows 2000操作系统中这些IDT表项及其所对应的中断地址可以经由过程在SoftICE中履行IDT指令显示出来。傍边断到来时,要履行中断办事法度榜样,可以经由过程将IDT中8号中断对应的中断办事例程地址改为中断办事法度榜样所在的地址。硬件中断发生的时刻,CPU就会直接把节制权交到IDT的响应ISR中去运行。

经由过程改动8254.准时器0的准时初值,并挂接中断办事法度榜样,可以得到一个稳定的时钟中断。然则因为8254准时器除了供给系统的日时钟中断源外,照样系统事情的准时中断源,当把中断哀求0挂接到中断办事法度榜样上时,为确保系统稳定事情,必须保存原本系统的中断办事法度榜样地址,当8254计数器0的准韶光阴达到55 ms时,必须将中断哀求8的中断办事法度榜样地址规复为原本的中断办事法度榜样地址,以完成系统准时必要。这种经由过程改动中断办事法度榜样地址的措施得到高精度的准时中断,因为涉及到系统事情的准时中断源,一旦处置惩罚欠妥,很轻易使系统事情不稳定,严重时会造成系统的崩溃。

1.3 经由过程对系统CMOS及不时钟编程

Windows 2000操作系统中要得到高精度的准时中断,可以经由过程改动CMOS及不时钟的措施来得到,纵然用PC机的中断哀求8来得到。在Pc机中都存在一个CMOS及不时钟芯片,该时钟因为采纳的是自力晶振、用自力的电池供电,是以可以永不间断地运行。它的主要功能是为系统供给备用时钟、三个可樊篱的中断和一个通用的中断输出、可编程方波发生器等。别的,它与操作系统互相自力,改动它的准时中断频率对操作系统事情的影响不大年夜,以是,经由过程改动CMOS中断频率的法子可得到与前面使用系统准时中断相对照,更靠得住、更稳定的高精度准不时钟中断。

PC机的CMOS及不时钟一样平常采纳MC146818芯片,该芯片上包孕了一个及不时钟和一个64 B的CMOS内存。在这64个字节的内存中0~0DH是与及不时钟相关的信息,0E~3FH中包孕的是关于谋略机的硬件设置设置设备摆设摆设信息。此中CMOS内存的地址口的地址为70H,数据口的地址为71H。及不时钟有4个状态寄存器A,B,C,D。此中寄存器A主要功能是用来开启、关闭振荡器,并选择不合的输出频率,它的详细位定义如表1所示。寄存器B用来节制及不时钟各类功能的使能状态等。寄存器C与D是只读寄存器,寄存器C主如果供给各类中断状态标志位。是以,当设置好A,B寄存器后,要想读出CMOS内存的数据,只需将要读数据所在内存地址送到70H,再从71H中将数据读出即可,向CMOS内写入数据的历程恰恰与上面的操作相反。

表2列出了寄存器A的周期性中断速度和方波输出频率,可以看到,经由过程改动CMOS及不时钟的A寄存器选择不合的方波输出频率,其最大年夜输出速度可达到122μs。与上面使用系统供给的中断哀求0相对照,IRQ0是每隔55 ms中断一次,而IRQ8由于用的是自己的晶振,中断频率则要高很多,软件上的实现上同前面使用系统准时中断中的措施相同,即经由过程编写WDM驱动法度榜样,改动中断描述表(IDT),然后经由过程hook挂接中断办事法度榜样,从而抢先实现义务。

1.4 引入外部准时中断

在Windows 2000操作系统下要得到高精度准不时钟还可以经由过程引入外部准不时钟的措施。即在PC机的外部供给一个高精度的时钟,在PC机的内部,在Windows 2000操作系统下,经由过程编写WDM法度榜样的要领来相应这个外部的中断。

经由过程对这几种实时节制规划办理措施的阐发,可以看到,使用Windows系统供给的老例准时器及多媒体准时器,其准时精度太低,无法满意数控系统对高精度准不时钟的需求;使用系统的准不时钟,一旦处置惩罚欠妥,很轻易使系统事情不稳定,是以不得当于数控系统对节制靠得住性的要求;经由过程改动CMOS及不时钟的措施来得到高精度的准不时钟,由于受到输入晶振频率的限定,其最大年夜输出频率也只能可达到122μs,仍旧无法满意数控系统对较高加工速率的要求。

综合以上缘故原由,本文提出经由过程ISA总线引入外部时钟的措施来得到高精度、稳定的准时中断。在法度榜样上经由过程编写WDM驱动法度榜样来相应该时钟中断。使用这种措施完全避开了寄托操作系统供给的中断的弊端。采纳这种措施有两点好处:首先,使用外部供给的时钟,其时钟的频率可以根据实际的必要供给,也便是说可以机动地供给所必要的任何频率的准不时钟。其次,使用外部准时中断供给高精度的准不时钟与使用PC机系统供给的准不时钟相对照,可避免应用欠妥而导致的系统事情不稳定。

2、线打仗加工数控系统高精度准不时钟的办理

经由过程对Windows操作系统下高精度准不时钟引入措施的阐发,采纳了第四种措施,即经由过程引入外部准不时钟中断的措施,在操作系统的内部经由过程编写系统WDM法度榜样来相应这个外部中断。图1是线打仗加工数控系统高精度准不时钟办理措施的方框图,即在PC机的外部供给一个高精度的准时中断源,在PC机一侧则是使用ISA总线经由过程中断IRQ5接入PC机,在Windows操作系统内部经由过程WDM法度榜样相应这个外部中断。

为了方便试验以及测试必要,选用了华邦公司临盆的W77E58单片机来孕育发生不合频率的时钟。W77E58是与Intel51系列单片机完全兼容的8位单片机,然则它比51系列单片机的事情速率更快。该单片机一个机械周期仅必要4个时钟周期,外接晶振最高频率为40 MHz。经谋略这种单片机的单周期指令仅必要O.1μs,经由过程如下的轮回指令很轻易就实现1μs的准时周期。

输出的中断脉冲如图2所示。在上面的轮回指令中插入适当个数的Nop指令便可以获得一系列小于1 MHz时钟的输出脉冲。

将上面输出的方波脉冲作为外部中断颠末ISA总线连接至中断哀求IRQ5以此作为线打仗加工数控系统的基准中断时钟。为了试验的必要,本文将单片机输出的时钟连接到了ISA总线的几个不合的中断上,并别的做了一个小的键盘用来选择ISA总线上不合频率的时钟源。

为了能够使系统实时相应外部的IRQ5中断,必须经由过程编写Windows操作系统下的设备驱动法度榜样。WDM驱动法度榜样是*.sys系统驱动法度榜样。在WDM法度榜样中对中断的相应可以经由过程下面的措施实现:

该WDM设备法度榜样长短即插即用的ISA驱动法度榜样,是以驱动法度榜样的资本分配必须在.inf文件中进行。线打仗加工数控系统对资本的分配是在.inf文件的资本分配中按下面的要领分配端口资本和中断资本的:

3、结 语

在Windows操作系统布局理论的根基上,钻研了Windows 2000操作系统下实实际时性节制的几种办理规划,并对这几种规划进行了详细的阐发对照,着末提出了得当于数控系统的最优的实时节制规划——引入外部准时中断的要领,并详细钻研了此措施的实现历程,同时用实验手段验证了线打仗加工数控系统,终极实现了节制系统的极限加工进给速率可达到1 500 mm/min,系统的最小脉冲当量是O.037 μm。

责任编辑:gt

您可能还会对下面的文章感兴趣: