文章来源:CAD世界网
作者:Wang
Guangyan Zhao
Jiandon Shuai
Mei Wang
Xiaochun
摘 要:介绍了一种基于工控机的五轴联动数控系统,对其系统构成,硬件软件开放化设计方法进行了探讨。从开发过程及使用效果来看,开放化设计可有效地缩短开发周期,提高数控系统软硬件的质量。
关键词:开放化系统;ISA总线;CNC
The open-architectured
design of 5-axis CNC system
Abstract:In
this paper,a 5-axis CNC system based on Industrial PC is
introduced. Its architecture,hardware and software opening
design method is discussed.From the developing procedure and
actual working,we can make a conclusion that opening design
is effective in shorting the developing time and improving
the quality of CNC system.
Key words:open-architectured
system;ISA bus;CNC
1 概述
从MIT开发出第一台三轴铣床数控系统到现在的四十多年中,数控系统的设计方法经历了巨大的变化。特别是近十年来,随着计算机技术的迅猛发展,数控系统从整体结构到详细设计,从软件设计到硬件设计,都与早期的数控系统有了很大不同。早期的数控系统出于效率的考虑,许多功能采用硬件电路实现,专用性很强,可维护性、可扩展性比较差。另一方面,通用计算机的运算速度随时间以指数规律不断提高,现在一台微机的运算能力已经达到或超过了早期的小型机,而且,通用型微机应用广泛,有完善和开放的标准,有众多外围硬件设备和丰富的软件资源的支持。借助微机进行数控系统的开发可以达到事半功倍的效果,因此成为目前数控领域的国际趋势。
五轴联动数控系统联动轴数比较多,同时又涉及到两个回转运动,插补算法复杂,而且其各组成部分,如伺服驱动单元、位置反馈单元、误差补偿、电气控制、机床机械结构等在不同的应用场合有不同的特点,在系统整体设计时对此应有充分的考虑。目前,多数数控系统不能满足这种多样性的需要,对不同的应用场合,就得选用不同型号的数控系统,这势必增加开发与维护费用。研究开放式数控系统及其功能部件,就可以根据用户需要,比较容易地对整个数控系统进行重新组合,以提高系统的可移植性、可伸缩性、可维护性和兼容性。
2 数控系统硬件的开放化设计
2.1 硬件设计的一般原则
传统数控系统的硬件设计分为两个流派:采用专用芯片的大板结构与总线式体系结构。大板结构对用户而言是一个封闭的系统,功能的扩展与系统维护都受到限制。总线式结构有一定的灵活性,但由于这种总线由生产厂自己确定,缺乏共同的行业标准,不同厂商的产品之间不具备互换性,所以,这种设计方法已不适应现代制造业的需要。另一方面,随着计算机技术的发展,微机的速度与十几年前相比是天壤之别。在这种形势下的软硬件设计中,人们关注的重点出现了由效率向互换性、可维护性转移。受其影响,在数控系统的设计进程中,由大板结构或专用总线向标准总线、可重组的单元模块发展成为国际趋势。
硬件设计的开放化主要体现在总线标准上。开放化的数控系统是由多种模块构成的,模块通过标准的总线连成一个整体。总线的选择应当满足三个要求:①在技术上有一定的先进性,能够满足数控系统各种功能模块对信息交互的需要。②总线标准完全开放,且在国际上得到广泛认可与应用,而不是由某个厂商自己定义使用的某种特殊总线标准。③具有高度的可靠性。
选择了合适的总线标准后,才能进行各功能模块的设计。在数控系统中,主要的功能模块有:运动轴位置控制模块、电气控制模块、机床操作面板及数控面板接口模块、通讯模块、显示模块等。功能模块应当能够重新配置,以免不同模块I/O端口地址及中断类型发生冲突。
2.2 五轴联动数控系统的硬件设计
在五轴联动数控系统开发过程中,我们选择工控机作为设计的基础。工控机本身符合多种工业标准,是一种开放化的计算机系统,与常用的微机有良好的兼容性,有大量的软硬件的支持。目前工控机底板插槽总线类型主要有两种:ISA总线(工业标准总线)和PCI总线(外围设备接口)。ISA总线的数据传输速率比较低,但已能满足数控系统的需要。同时,高总线速率会对各功能模块的硬件提出更高的要求。因此,我们选用ISA总线作为所有模块设计的基础。
由于五轴联动插补算法复杂,有大量浮点运算,对实时性要求又较高,我们选用Pentium
166 CPU完成插补运算。另外,系统中各个坐标轴还需具备位置控制功能,位置控制实时性很强,且控制轴数比较多,该任务与插补共用一个CPU会导致数控系统主机负担太重,实时性不易保证,而且故障风险过于集中,较好做法是每根轴采用一个独立的CPU进行控制,采用层次式体系结构构成系统。根据位置控制CPU与主机交互信息方法的不同,分为两种结构(见图1)。第一种结构把位置控制板直接插到工控机底板的ISA插槽中,在这种情况下,主机与多个位控板之间直接进行信息传输,由于位控板CPU速度低,数据通讯阶段会浪费主机CPU资源,控制轴数越多,主机CPU的效率就越低。此外,主机还需采取措施来保证多个位控板在时间上的准确同步。因此,我们选择了第二种结构。第二种结构采用单独的通讯机完成主机与位控板之间的信息传递。通讯机一方面通过双口存储器与主机之间进行信息交换,另一方面通过自建的局部总线与位控板进行信息交换。双口存储器容量为2kb,它同时也起数据缓冲器的作用。这种方案大大减少了主机用于信息交换的CPU时间。
图1 分布式多CPU数控系统的两种结构
通讯机在系统中起着承上启下的作用。它接收Pentium
166插补得出的各坐标轴位置指令,通过并行口把这些指令分发给位控板。另外,通讯机还提供对数控面板按键及指示灯的管理功能。通讯机的设计见图2。图中的仿ISA总线,提供了通讯机与位控板之间传输信息的通道。这时的“仿ISA总线”是根据位控板及常用控制插卡的需要而设计的,它重建了标准ISA总线的部分信号,包括:I/O操作所需的各种信号线、中断信号线、就绪控制、电源线等。按照“仿ISA总线”设计的位控板与标准的ISA总线完全兼容。这样做有两个好处:①在系统开发阶段,通讯机与位控板的设计和调试工作可借助微机各自单独完成,两者之间无先后依赖关系;②在控制轴数较少的系统中,可以采用图1
中的第一种结构,把位控板直接插到工控机的底板上,方便地实现对系统的重组。
图2 通讯机设计原理
在设计过程中,在通讯机与位控板之间,我们曾采用了自定义的专用总线。专用总线效率高,但根据专用总线设计的位控板与工控机不兼容,互换性较差,开发、调试与维护都比较麻烦。为此,我们对这一部分进行重新设计,走开放化道路,采用“仿ISA总线”向标准总线靠近,收到了良好的效果。
3 数控系统软件的开放化设计
开放化数控系统的软件设计首先需要选择合适的操作系统和软件开发工具。目前常用的操作系统如DOS、Windows
3.1、Windows
95、Windows
NT等均被应用到数控系统中。DOS本质上是一种单任务操作系统,在DOS下的多任务只能通过中断技术来实现。数控系统各软件功能模块一般不能同时执行,若要同时执行,需自行解决模块之间的调度问题。但DOS的规模很小,人们对DOS的了解比较多,在DOS上开发应用程度相对容易。Windows
3.1是一种非抢先多任务操作系统,可同时完成多个任务。其缺点在于某个任务,如任务A得到CPU资源时,其它任务是否能顺利执行完成取决于A是否能及时处理完其本次事件,因此实时性没有保证。Windows
95和Windows
NT都是性能优异的抢先式32位多任务操作系统,操作介面良好,就功能而言,适合数控系统的需要。但在工业场合使用,其稳定性有待证实。综合考虑的结果,我们选择了DOS操作系统。与此相应,我们选择Turbo
C++
3.0作为软件开发工具。
软件设计工作分为三个部分:主机软件、通讯机软件和位置控制卡软件。制订完善的通讯协议是其首要问题。为了保证可靠传输数据,通讯机构件采用分时处理的方法分别完成与主机及位控卡的信息传输。其时间上的同步关系见图3。时间片的划分及三部分之间的同步关系由通讯机进行控制。第一时间片开始时,通讯机向主机及位控卡发出同步信号,通知主机向双口RAM中写入新的数据,同时使位控卡开始位置控制运算。第二个时间片内,通讯机从双口RAM中取出位置指令,分发给各个位控卡,同时从各位控卡采集实际位置数据,写入双口RAM。
图3 数控系统各进程之间的关系
主机软件主要由NC程序编辑模块、手动操作、电气控制模块、通讯模块、自动加工、机床参数调整、系统定位、螺矩补偿等功能模块构成。下面以电气控制模块为例说明软件模块的开放化设计方法。
电气控制是所有机床必不可少的一部分。在数控机床中,其实现方法有三种:外装式PLC、嵌入式PLC和虚拟PLC。市场上现有的各种PLC一般具有通讯功能,可以通过通讯接口与数控系统构成一个整体,这种电气控制方式称为外装式PLC;此外,也可以设计一个智能型I/O接口卡,通过总线直接与数控系统构成一体,卡上带有CPU,完成开关逻辑运算与控制,这种方式为嵌入式实现。也可以直接利用数控系统主机CPU周期性地进行逻辑运算,配合普通的开关量
I/O卡实现对电气开关的控制,这种方式称为虚拟PLC。
如果采用常规的程序设计方法,对于以上三种电气控制方式,就得设计不同的软件接口,数控系统软件主体就会直接涉及到电气控制的实现方式及其细节,一旦控制方式发生变化,将不得不对软件进行大量修改。这样编写出的软件通用性较差,难以适应预料之外的变化。为了增加软件与硬件之间的相互独立性,我们运用面向对象技术对系统进行了开放化设计。
显然,不论哪一种控制方式,其目标都是相同的。经认真分析,我们找出了三者之间的共同点,由此得出一抽象类CPlc,它提供了数控机床电气控制所有的外部特征,为数控系统主体软件提供了完备的消息处理函数,数控系统中其它部分只需向PLC对象发送消息(message)就可使电气开关做出相应的动作。该部分不涉及电气操作过程中的细节。
在抽象类CPlc的基础上,针对三种方式分别定义了派生类CExernalPlc、CEmbedPlc和CVirtualPlc,在这些类中,完成消息的解释及硬件的操作。按照这种设计思想得到的电气控制部分软件具有图4所示的结构。由图中可以看出,这种设计方法在数控系统主体软件与电气控制硬件之间加入了抽象类层次,使其相互依赖性减弱,成为相对独立的两部分。运用这种方法得到的数控系统软件具有与设备无关的特征。当有新的硬件设备出现时,只需在原抽象类上派生出新的对象类,按照共同的标准对消息进行解释,操纵硬件做出相应的动作即可,无需对软件其它部分做任何修改,大大提高了软件设计的效率,实际上,在对消息的数据结构及其意义做出明确的规范后,其它任何人都可以参照该规范设计出新的电气控制硬件及相应的驱动程序,集成入系统中。这也是软件开放化设计的主要目的。
图4 电气控制软件的抽象化设计
上面以PLC为例说明了数控系统软件开放化设计的思想。我们按照这种思路完成了数控系统的软件设计。虽然在开发初期反复做了多次分析讨论,但在系统结构确定后,软硬件开发还是比较顺利的。从开发过程和联机调试情况来看,开放化设计可以有效缩短软件的开发周期,提高数控系统软件的质量。 |