基于Windows下数控软件的设计与实现

   日期:2018-06-28     来源:中国数控机床网    作者:中国雕刻机品牌网    

  pc机进入数控领域,极大地丰富了数控系统的硬软件资源,有利于实现总线式、模块化、开放化的数控系统,使其具有很高的性能价格比。随着Windows系统的发展与普及,开发WindowB CE)下的数控系统已经成为广大CNC同行的共识。近年来,国内已有不少厂家开发了几种基于Windows的控制系统。国内的控制系统各有优点,但从数控系统发展的趋势来看,仍有许多需要改进之处。

  等新型操作系统。软件开发思想与技术落后,始终处于甚至低于结构化程序设计的水平。没有充分利用面向对象的新理论、新技术。

  其次,数控系统软件设计中存在设计不规范,可靠性与可维护性差,没有采用一种开放式、模块化软件设计方法。

  本文所介绍的系统软件,利用Windows的多线程机制和中断机制解决数控软件的实时多任务处理;利用面向对象的新理论、新技术,采用一种开放式、模块化软件设计方法,使软件具有开放性。本系统软件能使插补、伺服控制、NC程序编制同时进行,能较好地满足数控系统的要求,并且已形成了产品,应用效果良好。

  2CNC软件的总体设计为了使数控软件具有明显的开放数控特点,使数控软件易于组装、扩充、维护,我们采用了工程化的设计方法,利用面向对象等技术开发一套基于Windows32位数控软件。软件设计遵循模块化、层次化、动态配置的原则。

  开放式控制系统应采用分层的体系结构。分层使得各层实现隔离,层与层之间通过标准的接口进行通信,实现可移植性和可用第三方软件,只用更换相应层即可。本系统的纵向第一层次为界面层,它完成系统的监控管理:输人、I/O处理、显示、诊断和监控。此界面层由界面和各回调函数组成。回调函数的功能是完成界面上控件的事件驱动操作。回调函数的调用操作,由操作系统管理。

  系统的纵向第二层次为功能单元层,包括译码类、刀补类、插补动态连接库、运动控制器类。译码层将数控指令解释成为数控系统的内部数据格式。刀补层进行刀具补偿。插补动态连接库完成数据插补,产生加工数据、速度处理、辅助功能设备控制D运动控制器类完成位置伺服的控制D译码类、刀补类分别由多个软件芯片组成。此功能单元层的调用操作放在回调函数中。

  系统的纵向第三层次为支撑层,包括运动控制器卡、运动控制器的设备驱动程序、I/O卡、操作系统、PC机。运动控制器卡主要完成位置伺服的任务。运动控制器的设备驱动程序完成对运动控制卡和I/O卡的直接操作。本系统的体系结构如所示。

  在该数控系统的软件中,采用了前后台型的结构形式。前台程序即实时中断程序,完成全部的实时功能(插补动态连接库、运动控制器类、设备驱动程序),主要是插补功能。后台程序的主要功能是插补前的准备功能及调度管理(包括界面、I用户缦入I译码类、刀补类)。具体地讲,是数控程序输人、译码、刀具补偿、显示及上述任务之间的调度管理功能。后台程序结构是一个多线程结构,完成多任务处理。在运行过程中,前台程序(中断服务程序)不断插人,共同完成零件加工任务。而位置伺服的任务主要由运动控制器完成。加工程序由计算机进行译码、刀具补偿、速度处理后,得到刀具中心的插补指令数据。计算机将这些插补指令数据和其他的指令数据以固定格式存放于一缓冲区中。每次中断发生时,计算机根据这些指令数据进行相应的处理。如果存在插补指令,则实时计算出插补数据,并且送人缓冲区,运动控制器根据这些数据控制相应轴的电机动作。当计算机中的一帧指令数据被读完后,在插补间隙自动计算出新的插补指令数据,填人缓冲区。

  文件编面厉作炻面刀具/醇设1面系统设置面手动撅作子更面ipi撬作盍面自动操作子页面类刀朴类运动後I/O卡支层颜补动塞M数控软件体系结构3实现方法3.1软件系统的多任务实时控制策略CNC系统是一个专用的多任务计算机系统。

  在它的控制软件中,融合了许多软件技术中的先进技术,其中最突出的是多任务并行处理和实时处理CNC装置通常作为一个独立的过程控制单元,应用于工业自动化生产过程中,它的软件必须完成管理和控制两大功能。系统的管理部分,包括输人、I/O处理、显示、诊断。系统的控制部分,包括译码、刀具补偿、速度处理、插补、位置控制。在CNC装置的实际运行过程中,多个任务中的若干个任务要同时进行。

  CNC软件在工业自动化的实际应用过程中,为了满足生产的要求,必须具有实时性。

  为了使我们的数控软件具有并行处理和实时处理的能力,我们采用Windows95的多线程模型和中断机制的控制策略。

  为了使CNC系统软件能在Windows环境下并行处理多任务,采用多线程来实现多任务控制。线程是32位操作系统的主要特点,它支持抢占式的多任务机制,是操作系统的基本调度单元。我们可将各管理和控制模块置于独立的线程中,从而实现数控软件系统的并行处理操作。在我们的数控软件中,建立了主控制线程(监控和界面线程)、显示/面板操作线程和自动加工线程。显示/面板操作线程的预置时间片为50ms.自动加工线程是由主线程启动和消除的。通过建立这三个线程,可实现整个系统的协调运行。

  主控制线程主要完成监控和界面管理、功能控制、系统管理等,并负责实时启动和消除自动加工线程。系统退出时,将消除显示/面板操作线程。主控制线程是经过Windows的消息排队,来实现其操作流程。

  用户输入(程启动p:NC初始化一系统主菜单界面和事件循3不线程停止)文件辑的方式实现实时性强的任务。由于中断可以在任何时刻发生,而不限于使用设备的应用程序运行期间,所以,中断服务程序必须在固定代码段中。在大框架EMS内存配置中,只有一种类型的代码,才能保证任何时刻均可用来进行此类中断服务。这种类型的代码就是动态连接库(DLL)的固定代码段中的代码。因此,必须采用DLL来实现中断。在我们的系统中,采用DLL实现了硬件中断,运行可靠。

  在我们的软件中,在的自动加工线程中,采用中断机制来实时控制。自动加工线程主要完成打开NC文件、语法检、译码、刀具补偿、插补,产生加工数据。在这些功能中,插补必须实时完成,因而采用中断服务程序来实现。自动加工线程的开启,在回调函数中完成。自动加工线程的控制流程见,中断服务程序控制流程见自动加工线程由于动态连接库可以根据需要被应用程序灵活地装载、卸出,占用的系统资源将相应减少,所以把插补中断服务程序编译连接成动态链接库的形式使用。

  由于面向对象的软件开发技术综合了功能抽象与数据抽象,它较好地实现了软件的可扩性、多态性,并使软件易于修改。我们采用面向对象方法对数控软件进行建模,分3个层次对其进行描述与实现:系统、控制单元和基本类,使CNC软件可组装、易扩展。

  基本类是数控系统功能细粒度分解的结果,是组成开放系统的最小单位。基本类构成面向对象数控软件的类体系。具有标准化接口的基本类,称之为软件芯片。

  控制单元是由一系列功能相关的基本类组成的、完成一定功能的软件实体。控制单元可以嵌套。

  系统是由一系列控制单元组成的某种类型的数控系统软件。

  在我们的数控软件开发的类,有运动控制器类、译码类、刀补类。它们都作为功能单元分别完成位置伺服功能、译码功能、刀补功能。译码类、刀补类较复杂,由多个软件芯片继承组成。

  3.3多缓冲区技术运动控制器类、译码类、刀补类、动态连接库都是相对独立的功能单元,它们相互有大量的数据交换,因此采用多缓冲区实现数据交换。

  为了协调各线程、各任务之间的运行,使各模块相对独立,在软件中建立多个数据缓冲区,具体的实现方法是:为多缓冲区分配内存,建立指向当前缓冲区的读、写指针,构成一个环形多缓冲区;为每块内存设置一个标志位,作为对各缓冲区进行操作的判断依据;每读一个缓冲区,对该缓冲区设置已读标志,当前读指针向前移动一个缓冲区;每写一个缓冲区,对该缓冲区设置已写标志,当前写指针向前移动一个缓冲区;对于当前操作未结束的缓冲区,设置正在操作标志,禁止其他操作。

  采用这种方法,将系统中必须在单个插补周期内完成的运算,“均化”在多个插补周期内完成,有效地利用了CPU的计算时间,提高了系统的工作效率。

  3.4界面实现技术测控软件的界面不仅具有Windows―般控件功能,而且还必须具有模拟一些实物的控件,如:电表显7TC、旋钮等。因此,采用LabWindows/CVI工具设计系统界面。采用LabWindows/CVI时以一种C语言设计界面非常方便。此工具设计的界面包括头文件(。h)、界面文件(。uir)。在中,提供界面控件的回调函数。应用程序可在回调函数中实现所需要的功能。在此系统中,显示/面板操作线程作为界面的定时器控件的回调函数。Windows按照定时器设定的时间,定时调用定时器控件的回调函数。

  4结论多线程模型与中断机制相结合的控制策略和层次化的体系结构,利用面向对象技术、多缓冲区技术、界面实现技术,成功地在Windows环境下实现数控系统的实时多任务控制要求,较好地实现软件的可扩充性、多态性、重构性,并使软件易于修改。该设计方法应用于我们开发的数控软件上,已取得了良好的效果。

(完)

 
打赏
 
更多>同类行业资讯

推荐图文
推荐行业资讯
点击排行
新手指南
采购商服务
供应商服务
交易安全
<
关注我们
手机网站: m.168dkj.com
新浪微博:
微信关注:

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服