0 前言
由于信息技术领域的迅速发展,制造技术正在经历第三次革命。商业信息系统在过去20年的发展指明了车间制造自动化系统的发展方向。融合了Infranet(Infrastructure net)、Intranet、Intemet的信息系统获取信息更加灵活。开放式控制器就是在这种背景下发展起来的。开放式控制系统(OACS)领域的大多数研究计划主要集中在欧洲、美国和日本,包括以下方面。
ESPRIT 1II的0SACA(Open system arehRecturefor controls within automation system)计划。它制定了包括网络、应用软件和硬件在内的所有标准。
EMC(Enhaneed machine controller)是美国国家标准局为开放式控制器开发制定的一套接口标准。
通用汽车公司开发了OMAC(Open modular”.chitecture controller)应用于汽车制造领域。日本的六家公司组成了名为OSE(Open systemenvironment for controller)的工作组,它定义了制造系统的开放式结构和接口标准。
但学术界对开放式控制系统还没有一个统一的定义,这样系统制造商就很难将他们的系统称为开放式控制系统。目前,人们对开放系统的不同层次的开放性提出了几种解决方案。
(1)“PC嵌入NC”结构。这只不过在传统数控系统中加入了PC机,如FANUC Seriali50/160/180/210。其需要双操作系统,如MS windows和专用的数控操作系统,PC机只不过用来提高可操作性。
(2)“NC嵌入PC”结构。它由开放式运动控制板+PC机构成。这种运动控制板通常选用高速DSP作为CPU来完成实时件的NC内核任务而由P作为CPU来完成实时性的NC内核任务而由PC机来完成非实时性的任务。两个CPU之间通过PC总线和双端RAM来通信。它开放的函数库供用户在Windows平台下自行开发构造所需的控制系统。
(3)“基于现场总线的PC.NC”结构。它是将现场总线卡,如SERCOS和PROFlBUS,插入到PC机的插槽中。基于此种标准的产品有北京机电研究院的JT2100、Indramat System 2000和Simulink802D。
(4)软件型开放式数控系统。它提供给用户最大的选择和灵活性,它的软件全部存在于PC机中,而硬件仅为PC机与伺服驱动和外部I/O之间的标准化通用接口。其典型产品有德国Power Automation公司的PA8000NT等。
1 开放式数控系统体系结构
在对典型NC和PLC控制器分析的基础上,按分布式控制的原则,采用系统、子系统和模块分级式的控制结构,而按功能分层结构划分模块,各模块组成了CNC功能库。系统结构如图1所示。
图1开放式数控系统体系结构
(1)运动控制(MC)生成用于机床运动的命令位置坐标。命令坐标的生成可划分成几个子功能模块:程序解释、补偿计算、转换和插补。这只是从功能的角度对其进行的划分,不必在一个模块中实现。
(2)轴控制(AC)的任务是根据从系统其他单元接收的命令值以及它的配置,为运动轴提供控制信号。
(3)主轴控制(SC)管理一个或多个主轴。它的工作独立于运动控制(MC)通道。主轴控制具有插补功能并能为AC提供插补数据。
(4)逻辑控制(LC)通常是OEM写机床LC程序的平台。此程序是机床传感器(微动开关、按钮等)和机床执行部件(继电器和照明灯等)问的接口。
(5)人机控制(HMC)I拘任务是执行没有实时要求的任何软件对所连接的系统进行操作。其功能包括:各控制模块的人机界面部分;网络通信功能;故障诊断与处理系统;参数管理功能;配置系统。
(6)过程控制(PC),是机床控制系统的辅助系统,如刀库,机械手等,它们也需要进行数据管理和处理系统功能。
2 通信对象管理系统
2.1 通信对象管理的功能机理
通信对象管理系统(COM.Communication object management system)的主要功能是协调各功能模块,实现各模块的资源分配、实时调度等。由于传统的CORBA缺少标准的QoS策略和机制,缺少实时特征,缺少必要的性能优化,因此它只适合传输速度较低的应用场合;为了满足高性能及确定性和统计性实时的要求,通信对象管理系统主要由实时公用对象请求调度程序体系结构RTCORBA fReal time cornlllon object request broker architecture)来实现㈤。其结构如图2所示。选用的实时CORBA的中间件是TAO(The ACE ORB)。
图2通信对象管理机制
客户机提出请求时,有两种方式,一种使用由对象接口定义,用c++编译的静态存根(Static stubs),另一种使用动态调用接口DII(Dynamic invocation interface),不论哪种方式,客户机都直接将请求传送给与这个进程链接的ORB核心;客户机ORB核心通过网络传送给与服务器应用程序相链接的服务器ORB核心:服务器ORB核心将这些请求分配给对象适配器(Object adapter),由它产生目标对象;对象适配器进一步将请求分配给实现目标对象的伺服程序,与客户机一样,服务器可以选择静态或动态调度机制用于它的伺服程序,这取决于是由对象接口定义,用c++语言编译的静态框架(Static skeleton),还是其伺服程序可使用动态框架接口DSI(Dynamic skeleton interface);伺服程序执行请求后,它返回结果给客户应用程序。
TAO的I/O子系统负责仲裁ORB和应用程序对底层网络和操作系统资源的访问。在TAO的I/O子系统的底层是一个高速网络接口,它由APIC(ATM port interconnect eontroller)芯片组成菊花链网络,其双向传输速度达2.4 Gb/s。当然,I/O子系统也支持VME和Compact PCI接口及共享内存环境。实时I/O子系统避免了线程优先级倒置并且隐藏了协议处理过程中的调度:为了避免优先级倒置,为协议处理预先分配一个内核线程库,这些内核线程与应用线程库一起调度。为了保证可预测性,内核线程属于一个实时I/O调度类。这个调度类采用RMS(rate monotonic scheduling)算法。当操作系统内核允许一个实时I/O线程运行时,实时I/O子系统计算这个线程相对调度类中其他线程的优先级,并周期性地调度此线程。
由实时操作系统定义的调度抽象层相对来说是比较低层的,这对面向对象的应用与开发不直观。为了使应用程序以一种比较直观的方式指定其调度需求,TAO提供了一种实时调度服务,这个服务是一个CORBA对象,负责分配系统资源以满足应用程序的QoS需求。
调度服务为每一个请求分配一个优先级。运行时,运行调度器使用这些优先级参数。运行调度器将客户请求映射为本地操作系统线程派发器所能识别的优先级。然后,派发器将这些优先级授权给实时I/O线程以执行调度。
CORBA被设计为可以运行于多种传输协议之上。标准的ORB互操作协议是GIOP(General interORB protocol)。
在CORBA中,对象适配器作为伺服程序和ORB之间的纽带。一个对象适配器是一个对象,它将一个对象接口配置给调用程序所需要的不同接口。也就是说,一个对象适配器是一个插入式对象,它用来作为代理,允许调用程序在不知道对象实际接口的情况下调用一个对象的请求。
2.2 数控系统功能模块的IDL接口定义
OMG IDL是CORBA的基本抽象机理,它从实现中分离出对象接口。OMG IDL在客户机和服务器之间建立起一个契约,用它来描述在应用程序中需要用到的类型和对象接口。这些描述与实现的语言无关,所以不用考虑客户程序的编程语言是否与服务器程序的编程语言一致。
对于各功能模块,它即可能是客户,也可能是服务器。程序解释模块相对于轨迹规划模块来说就是服务器,而轨迹规划就是客户,当轨迹规划模块需要调用程序段时,可以通过同步机制启动程序解释模块;当轨迹规划完毕生成基本运动指令,此时,轨迹规划模块是服务器而插补控制模块就是客户。下面是基于OMG IDL的模块接口定义。
程序解释模块:
3 结论
在分析传统数控功能的基础上,根据CORBA的通讯机制建立了开放式数控系统的体系结构,并根据RTCORBA的QoS策略框架定义了功能模块的IDL接口。
(审核编辑: 智汇胡妮)