《基于Windows下数控软件的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Windows下数控软件的设计与实现.docx(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于Windows下数控软件的设计与实现hanjuan导语:在该数控系统的软件中,采用了前后台型的构造形式。摘要:基于Windows的CNc,是数控技术开展的必然趋势。提出了在Windows环境下实现实时多任务处理的方法,介绍了数控软件的体系构造和实现的相关技术。理论证实,采用这些方法和技术较好地实现了数控系统的实时多任务控制开发的数控软件具有开放性。关键词:多线程实时多任务控制数控系统中断面向对象Pc机进入数控领域,极大地丰富了数控系统的硬软件资源,有利于实现总线式、模块化、开放化的数控系统,使其具有很高的性能价格比。随着Windows系统的开展与普及,开发Windows环境Windows9
2、5,WindowsNT及WindowsCr下的数控系统已经成为广阔oiC同行的共鸣。近年来,国内已有不少厂家开发了几种基于Windows的控制系统。国内的控制系统各有优点,但从数控系统开展的趋势来看,仍有很多需要改良之处。首先,没有充分利用像Windows、UNIX、0S2等新型操纵系统。软件开发思想与技术落后,始终处于甚至低于构造化程序设计的程度。没有充分利用面向对象的新理论、新技术。其次,数控系统软件设计中存在设计不标准,可靠性与可维护性差,没有采用一种开放式、模块化软件设计方法。本文所介绍的系统软件,利用Windows的多线程机制和中断机制解决数控软件的实时多任务处理;利用面向对象的新理
3、论、新技术,采用一种开放式、模块化软件设计方法,使软件具有开放性。本系统软件能使插补、伺服控制、NC程序编制同时进展,能较好地知足数控系统的要求,并且已形成了产品,应用效果良好。2CNC软件的总体设计为了使数控软件具有明显的开放数控特点,使数控软件易于组装、扩大、维护,我们采用了工程化的设计方法,利用面向对象等技术开发一套基于Windows32位数控软件。软件设计遵循模块化、层次化、动态配置的原那么。开放式控制系统应采用分层的体系构造。分层使得各层实现隔离,层与层之间通过标准的接口进展通讯,实现可移植性和可用第三方软件,只用更换相应层即可。本系统的纵向第一层次为界面层,它完成系统的监控治理:输
4、入、O处理、显示、诊断和监控。此界面层由界面和各回调函数组成。回调函数的功能是完成界面上控件的事件驱动操纵。回调函数的调用操纵,由操纵系统治理。系统的纵向第二层次为功能单元层,包括译码类、刀补类、插补动态连接库、运动控制器类。译码层将数控指令解释成为数控系统的内部数据格式。刀补层进展刀具补偿。插补动态连接库完成数据插补,产生加工数据、速度处理、辅助功能设备控制。运动控制器类完成位置伺服的控制。译码类、刀补类分别由多个软件芯片组成。此功能单元层的调用操纵放在回调函数中。系统的纵向第三层次为支撑层,包括运动控制器卡、运动控制器的设备驱动程序、IO卡、操纵系统、Pc机。运动控制器卡主要完成位置伺服的
5、任务。运动控制器的设备驱动程序完成对运动控制卡和IO卡的直接操纵。本系统的体系构造如图l所示。在该数控系统的软件中,采用了前后台型的构造形式。前台程序即实时中断程序,完玉成部的实时功能插补动态连接库、运动控制器类、设备驱动程序,主要是插补功能。后台程序的主要功能是插补前的预备功能及调度治理包括界面译码类、刀补类。详细地讲,是数控程序输、译码、刀具补偿、显示及上述任务之间的调度治理功能。后台程序构造是一个多线程构造,完成多任务处理。在运行经过中,前台程序中断效劳程序不断插入,共同完成零件加工任务。而位置伺服的任务主要由运动控制器完成。加工程序由计算机进展译码、刀具补偿、速度处理后,得到刀具中心的
6、插补指令数据。计算机将这些插补指令数据和其他的指令数据以固定格式存放于一缓冲区中。每次中断发生时,计算机根据这些指令数据进展相应的处理。假如存在插补指令,那么实时计算出插补数据,并且进入缓冲区,运动控制器根据这些数据控制相应轴的电机动作。当计算机中的一帧指令数据被读完后,在插补间隙自动计算出新的插补指令数据,填入缓冲区。3实现方法31软件系统的多任务实时控制策略CNC系统是一个专用的多任务计算机系统。在它的控制软件中,交融了很多软件技术中的先进技术,其中最突出的是多任务并行处理和实时处理。多任务并行处理CNC装置通常作为一个独立的经过控制单元,应用于工业自动化消费经过中,它的软件必须完成治理和
7、控制两大功能。系统的治理局部,包括输入、IO处理、显示、诊断。系统的控制局部,包括译码、刀具补偿、速度处理、插补、位置控制。在CNC装置的实际运行经过中,多个任务中的假设干个任务要同时进展。实时处理CNC软件在工业自动化的实际应用经过中,为了知足消费的要求,必须具有实时性。为了使我们的数控软件具有并行处理和实时处理的才能,我们采用Windows95的多线程模型和中断机制的控制策略。311Windows多线程模型为了使CNC系统软件能在Windows环境下并行处理多任务,采用多线程来实现多任务控制。线程是32位操纵系统的主要特点,它支持抢占式的多任务机制,是操纵系统的根本调度单元。我们可将各治理
8、和控制模块置于独立的线程中。进而实现数控软件系统的并行处理操纵。在我们的数控软件中,建立了主控制线程监控和界面线程、显示面板操纵线程和自动加工线程。显示面板操纵线程的预置时间片为50ms自动加工线程是由主线程启动和消除的。通过建立这三个线程,可实现整个系统的协调运行。主控制线程主要完成监控和界面治理、功能控制、系统治理等,并负责实时启动和消除自动加工线程。系统退出时,将消除显示面板操纵线程。主控制线程是经过Windows的消息排队,来实现其操纵流程。312Windows的中断机制Windows是一种非独占式的多任务系统,应用程序通过应用程序队列来接收输人,然后消息。循环从应用程序队列中获取输人
9、消息,并把它发进给相应的窗口。在这种工作形式下,实现实时控制较为困难。然而,从另外一个角度看,用户的键盘、鼠标及定时器输人都是硬件中断,而windows提供的设备驱动程序,实际上是中断效劳程序。由于实际加工对于实时性的要求很高,因此,必须采用中断J的方式实现实时性强的任务。由于中断可以在任何时刻发生,而不限于使用设备的应用程序运行期间,所以,中断效劳程序必须在固定代码段中。在大框架EMS内存配置中,只有一种类型的代码,才能保证任何时刻均可用来进展此类中断效劳。这种类型的代码就是动态连接库DLL的固定代码段中的代码。因此,必须采用DLL来实现中断。在我们的系统中,采用DLL实现了硬件中断,运行可
10、靠。在我们的软件中,在图2的自动加工线程中,采用中断机制来实时控制。自动加工线程主要完成翻开NC文件、语法检查、译码、刀具补偿、插补,产生加工数据。在这些功能中,插补必须实时完成,因此采用中断效劳程序来实现。自动加工线程的开启,在回调函数中完成。自动加工线程的控制流程见图3,中断效劳程序控制流程见图4。由于动态连接库可以根据需要被应用程序灵敏地装载、卸出,占用的系统资源将相应减少,所以把插补中断效劳程序编译连接成动态链接库的形式使用。32面向对象的开发技术由于面向对象的软件开发技术综合了功能抽象与数据抽象,它较好地实现了软件的可扩性、多态性,并使软件易于修改。我们采用面向对象方法对数控软件进展
11、建模,分3个层次对其进展描绘与实现:系统、控制单元和根本类,使CNC软件可组装、易扩展。根本类是数控系统功能细粒度分解的结果,是组成开放系统的最小单位。根本类构成面向对象数控软件的类体系。具有标准化接口的根本类,称之为软件芯片。控制单元是由一系列功能相关的根本类组成的、完成一定功能的软件实体。控制单元可以嵌套。系统是由一系列控制单元组成的某种类型的数控系统软件。在我们的数控软件开发的类,有运动控制器类、译码类、刀补类。它们都作为功能单元分别完成位置伺服功能、译码功能、刀补功能。译码类、刀补类较复杂,由多个软件芯片继承组成。33多缓冲区技术运动控制器类、译码类、刀补类、动态连接库都是相对独立的功
12、能单元,它们互相有大量的数据交换,因此采用多缓冲区实现数据交换。为了协调各线程、各任务之间的运行,使各模块相对独立。在软件中建立多个数据缓冲区,详细的实现方法是:1为多缓冲区分配内存,建立指向当前缓冲区的读、写指针,构成一个环形多缓冲区;2为每块内存设置一个标志位,作为对备缓冲区进展操纵的判定根据;3每读一个缓冲区,对该缓冲区设置已读标志,当前读指针向前挪动一个缓冲区;4每写一个缓冲区,对该缓冲区设置已写标志,当前写指针向前挪动一个缓冲区;5对于当前操纵未完毕的缓冲区,设置正在操纵标志,制止其他操纵。采用这种方法,将系统中必须在单个插补周期内完成的运算,“均化在多个插补周期内完成,有效地利用了
13、CPU的计算时阉,进步了系统的工作效率。34界面实现技术测控软件的界面不仅具有Windows一般控件功能,而且还必须具有模拟一些实物的控件,如:电表显示、旋钮等。因此,采用LabWindowsCVI工具设计系统界面。采用LabWindowsCVI时以一种c语言设计界面非常方便。此工具设计的界面包括头文件h、界面文件uir。在h中,提供界面控件的回调函数。应用程序可在回调函数中实现所需要的功能。在此系统中,显示面板操纵线程作为界面的定时器控件的回调函数。Windows按照定时器设定的时问,定时调用定时器控件的回调函数。综上所述,本CNC系统软件采用Windows的多线程模型与中断机制相结合的控制策略和层次化的体系构造,利用面向对象技术、多缓冲区技术、界面实现技术,成功地在Windows环境下实现数控系统的实时多任务控制要求,较好地实现软件的可扩大性、多态性、重构性,并使软件易于修改。该设计方法应用于我们开发的数控软件上,已获得了良好的效果。1黄太贵微机数控系统电子科技大学出版杜,19952美GateVimaI50开发使用手册机械工出版杜。19983王浩高级Windows程序设计技术同济大学出版杜,19974王燕面向对象的理论与C+理论清华大学出版社19950
限制150内