最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

基于组件技术的计算机数控系统开发

发布时间:2014-09-09 作者:徐爱莉 陈 东 周 鹏 吴海洲  来源:万方数据
关键字:组件技术 数控系统 
传统数控系统的结构封闭、功能单一、开发周期长、成本高等弊端已经成为制约制造业发展的瓶颈。在详细分析开放式数控系统研究现状的基础上,借鉴了OCEAN、OSACA项目的开发经验,使用CORBA组件模型技术,建立了一个开放式数控系统,并介绍了该系统设计、实现、封装、部署的全过程。

3 组件的IDL/CIDL定义

  以HMI Server为例,对定义过程进行描述。

  HMI Server的IDL定义如下:
  component HMIServer supports
  SystemService
  {
  provides RegisterService RegSrv;
  provides NCCodeManager NCCodeMgr;
  uses AuthenticationService AuthSrv;
  publishes StartMotionControl StartMC;
  publishes StopMotionControl StopMC;
  publishes PauseMotionControl
  PauseMC;
  publishes NCCodeReady NCCodeRD;
  publishes SystemInitiation SysInit;
  };
  home HMIServerHome manages
  HMIServer{}。

  其中,系统服务面向系统外部的HMI Client注册服务面向所有运动控制组件;NC代码管理器则面向MCK中的NC代码解释器组件;Home则是用于创建组件实例的工厂(Factory)。

  允许系统使用者开发适合自身需要的HMIClient也是本系统的一个目标,所以应该让系统使用者自主选择HMI Client的开发技术,而不应该使HMI Client仅基于CCM,因此HMI Client只要遵循系统接口规范,可以使用任何技术实现。由于Provides/uses方式仅能用于组件之间连接的建立,因此HMI Server以支持(supports)的方式对外提供系统服务,而注册服务和NC代码管理器则以提供(provides)的方式与相应的使用者建立连接。

  由于系统服务中的登录和注销功能只是对HMI Client提供了一个访问认证服务的接口,因此HMI Server需要与认证服务组件建立连接,以使用其提供的认证功能。对于HMI Server组件,由于其状态不需要在生存期以外进行保存,所以没有必要将组件定义为Entity或Process类型,并且一个组件的生存期需要超过一次客户请求,所以Service类型也不合适。因此,要使组件在整个系统运行期间保持激活状态,Session类型是最合适的选择。

  HMI Server的CIDL定义如下:
  composition session HMIServer_impl
  {
  home executor HMIServerHome_Exec
  {
   implements
   CNC::HMISERVER_MODULE::H
   MIServerHome;
   manages HMIServer_Exec;
  };
  }。

4 IDL/CIDL到C++的映射

  完成IDL和CIDL的定义后,首先,使用TAO/CIAO开发包中的Perl脚本来生成工程描述文件;然后,建立空白的实现文件,这样可以使整个工程通过编译,而具体的实现代码则可在随后逐步完善。编译完成后,将会在各组件的工程目录中生成映射到C++的客户端stub、服务器端skeleton、服务器端servant等文件。在生成了组件的C++框架文件后,就可以以此为基础进行组件的具体实现过程。

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。