3 数控系统软件的开放化设计
开放化数控系统的软件设计首先需要选择合适的操作系统和软件开发工具。目前常用的操作系统如005, Windows 3.1, Windows 95, Windaw5 NT等均被应用到数控系统中。DOS木质上是一种单任务操作系统,在DOS下的多任务只能通过中断技术来实现。数控系统各软件功能模块一般不能同时执行,若要同时执行,需自行解决模块之间的调度问题。但DOS的规模很小,人们对DOS的了解比较多,在DOS上开发应用程度相对容易口Windows3.1 是一种非抢先多任务操作系统,可同时完成多个任务。其缺点在十某个任务,如任务A得到CPU资源时,其’言任务是否能顺利执行完成取决于A是否能及时处理完其木次事件,因此实时性没有保证。Windows 95和Windows NT都是性能优异的抢先式3}位多任务操作系统,操作介而良好,就功能而言,适合数控系统的需要。但在工业场合使用,其稳定性有待证实。综台考虑的结果,我们选择了DOS操作系统。与此相应,我们选择Turbo C++ 3.0作为软件开发工具。
软件设计:工作分为三个部分:主机软件、通讯机软件和位置控制卡软件。制订完善的通讯协议是其首要问题。为了保证可靠传输数据,通讯机构件采用分时处理的方法分别完成与主机及位控卜的信息传输。其时间上的同步关系见图3。时间片的划分及三部分之间的同步关系由通讯机进行控制。第一时间片开始时,通讯机向主机及位控卡发出同步信号,通知主机向双口RAM中写入新的数据,同时使位控卡开始位置控制运算口第二个时间片内,通讯机从双口RAM中取出位置指令,分发给各个位控卡,同时从各位控卡采集实际位置数据,写入双口RAM。
主机软件主要由NC程序编辑模块、手动操作、电气控制模块、通讯模块、自动加工、机床参数调整、系统定位、螺矩补偿等功能模块构成。一卜而以电气控制模块为例说明软件模块的开放化设计方法。
电气控制是所有机床必不可少的一部分。在数控机床中,其实现方法有三种:外装式PLC,嵌入式PLC和虚拟PLC。市场上现有的各种PLC一般具有通讯功能,可以通过通讯接口与数控系统构成一个整体,这种电气控制方式称为外装式PLC;此外,也可以设计一个智能型I/O接口,通过总线_直接与数控系统构成一休,卡上带有CPU,完成开关逻辑运算与控制,这种方式为嵌入式实现。也可以_篙接利用数控系统主机CPU周期性地进行逻辑运算,配合普通的开关量I/O卡实现对电气开关的控制,这种方式称为虚拟PLC。
如果采用常规的程序设计方法,对十以上三种电气控制方式,就得设计不同的软件接口,数控系统软件主体就会直接涉及到电气控制的实现方式及其细节,一旦控制方式发生变化,将不得不对软件进行人工修改二这样编写出的软件通用性较差,难以适应预料之外的变化。为了增加软件与硬件之间的相互独立性,我们运用而向对象技术对系统进行了开放化设计。
显然,不论哪一种控制方式,其目标都是相同的。经认真分析,我们找出了三者之间的共同点,由此得出一抽象类CPlc,提供了数控机床电气控制所有的外部特征,为数控系统主体软件提供了完备的消息处理函数,数控系统中其‘自部分只需向PLC对象发送消息(message)就可使电气开关做出相应的动作。该部分不涉及电气操作过程中的细节。
在抽象类CPlc的基础上,针对三种方式分别定义了派生类CExernalPic, CEmbedPlc和CVirtual Plc,在这些类中,完成消息的解释及硬件的操作。按照这种设计思想得到的电气控制部分软件具有图4所示的结构口由图中可以看出,这种设计方法在数控系统主体软件与电气控制硬件之间加入了抽象类层次,使其相互依赖性减弱,成为相对独立的两部分口运用这种方法得到的数控系统软件具有与设备无关的特征。当有新的硬件设备出现时,只需在原抽象类上派生出新的对象类,按照共同的标准对消息进行解释,操纵硬件做出相应的动作即可,无需对软件其‘言部分做任何修改,大人提高了软件设计的效率,实际_匕在对消息的数据结构及其意义做出明确的规范后,其它任何人都可以参照该规范设计出新的电气控制硬件及相应的驱动程序,集成入系统中二这也是软件开放化设计的主要目的。
上而以PLC为例说明了数控系统软件开放化设计的思想。我们按照这种思路完成了数控系统的软件设计。虽然在开发初期反复做了多次分析讨论,但在系统结构确定后,软硬件开发还是比较顺利的。从开发过程和联机调试情况来看,开放化设计可以有效缩短软件的开发周期,提高数控系统软件的质量。