基于PC+NC的开放式数控系统平台的研究与应用

来源:互联网

点击:1293

A+ A-

所属频道:新闻中心

关键词:数控系统 开放式 PC+NC

    0 引言

      对开放式数控系统的开发主要有3 种类型: PC嵌入型CNC ,NC 嵌入PC 型和全软件型。 第2 种类型是工业PC 机配合专用的CNC 卡(如运动控制卡) 组成,它能够充分地保证系统性能,是目前比较可行的一种开发方式。

    1 基于PC + NC 的开放式数控系统平台的开发

      在系统平台建模时,通过对数控平台需求进行分析后,将数控软件抽象成一些功能独立、内聚强、相互间耦合松散的软件功能模块,并定义好接口,以便与其它模块通信。 根据其通信对象,模块间通信分2种:一种是数控系统软件中,各模块之间的内部数据通信,另一种是数控系统中,某些模块与底层运动控制单元的通信。

      对于数控系统中各模块之间的内部数据通信,以数据通信为中心来进行开发,内部通信模块作为整个数控系统软件的中心模块,具有多个模块接口,通过这些接口可以与其它数控功能模块相连接。 每个模块的输入和输出,都通过模块与数据通信这个中心环境交互,数据交互环境自治地从各接口读取和发送数据,并将数据发送到各接口。

      对于数控系统中某些模块与底层运动控制单元的通信,主要利用底层所提供的通信库来完成。 由于不同的底层运动控制单元所提供的通讯库不一样,而数控系统中某些模块必须使用相应的通讯库进行开发,从而导致数控软件对于底层运动控制单元有很大的依赖性,为了克服这种依赖性,将数控系统软件通讯模块按可配置的方案进行设计,此模块根据不同的底层运动控制单元,选择装载相应的通讯库,通过将不同的通讯库设计为通用的通讯类库,为系统中需要通讯的模块提供通用的API,提高上层数控支撑软件的硬件独立性,从而提高系统的开放性。

    2 实例

      作为开发基于PC + NC 开放式数控系统平台应用实例,我们采用了IPC + UMAC ,对大型螺旋桨用重型七轴车铣复合加工机床数控系统进行了开发。 在此系统中,采用开放式平台体系结构,上位机使用Win2000 操作系统,通过网络接口将UMAC运动控制器和工业控制计算机连接,采取HMI和实时控制分开的上、下位机结构,实现系统的开发。系统硬件建立在通用的工业PC(IPC) 基础之上,实质采用了多CPU 的分层控制结构, 每一层之间均通过标准的总线方式和开放的接口规范相连。

      2.1 系统硬件设计

      UMAC 是美国Dleta Tau 公司生产的一种运动控制系统,此系统可配置控制任何类型的机床自动化应用。 IPC 与UMAC 集成数数控系统的硬件结构按用户需求,根据系统需求选择电机、电机驱动及各种接口模块。

      a.通过UMAC 提供的位置捕捉功能,完成机床大型零件的在线检测,实现装夹找正、加工余量预估和对刀调整补偿。

      b.通过UMAC 提供的数据采集及分析功能,完成数控系统所需的信号及参数, 实现对加工工件的跟踪扫描及远程操作控制。

      c.使用UMAC 提供的电机参数调整功能,实现双电机消除反向间隙。

      d.通过UMAC 提供的插补功能,完成各电机的运动控制。

      e.通过UMAC 的I/ O 口,输入检测部件、行程开关等各种开关量输入信号。

      f .通过UMAC 的I/ O 口,输出各种控制和指示信号。

      UMAC 提供通用的网络接口和USB 接口,通过带屏蔽的双绞线或USB 信号线可实现UMAC与工控机之间的数据传输,220 V 的AC 电源经过UPS 后,给工业控制计算机和UMAC 供电,以保证在掉电后可以正常停机。 根据不同的伺服系统(数字或模拟) ,可选择相应的轴接口模块,各模块之间通过跳线设置其地址,以避免地址冲突。

      2.2 系统软件设计

      系统软件包括: IPC (上位机) 的数控系统应用程序;上下位机通讯程序;UMAC (下位机) 中对各种输入、输出量进行监控的PLC 程序。 由于上位机使用非实时系统,要求下位机对实时操作有很强的自主控制功能,其逻辑控制功能主要由其内置的PLC 功能实现, 数控系统图支3撑 软上件下位分机为通几讯个原大理的模块。

      a.NC 代码解释模块。 实现通用数控加工文件到NC 运动指令的转换,此部分与底层关系密切,因为不同的底层NC 卡所识别的NC 指令并不统一,所以此模块的开发也很重要,所使用的开发工具为LEX 与YACC。

      b.系统仿真模块。 该模块从内部数据通讯处理模块中获得所需数据,处理后实现零件加工实时显示以及加工前的仿真校验。

      c.数控文件管理模块。 实现数控加工文件的创建,编辑及索引。

      d.测量模块。 该模块从内部数据通讯处理模块中获得所需数据,进行在线测量毛坯及成品的尺寸,实现加工余量及产品质量预估。

      e.人机界面模块。 实现人机界面的屏幕操作功能,如系统参数设置,刀具管理,加工坐标显示,各种报警信息显示等。

      f.数据采集模块。 定时采集各轴数据及I/O点状况,实现上位机对下位机的监控,同时负责程序缓冲区文件传输,由于此部分与底层关系密切,所以在平台开发过程中将其独立出来,如要更换底层NC模块,此数据采集模块可能需要重新编写;但重新编写的原则是对内部数据通讯处理模块提供统一接口,从而保证接口一致性,减少新系统开发工作量。

      g.内部数据通讯处理模块。 提供与各模块通讯的接口,管理模块间数据的交换,使整个系统构成了一个模块化、分布式系统,实现其它各模块之间通讯的独立性。 开发过程中,使用操作系统所提供的内核对象同步机制和关键代码段,来实现线程的同步及关键共享数据的保护,对于多进程间的数据通讯,则使用内存映射文件机制。

      h.底层可配置通讯库。 这是实现系统平台中的一个关键模块,因为不同的底层NC 卡所提供的软件接口一般区别很大,而上位机软件又不可避免地需要与底层通讯,为了实现上位机软件的硬件独立性,所以开发此模块。 使用VC6.0 + + 将NC 卡所提供的API 进行二次开发生成新的可配置通讯库CommAPI.dll ,此通讯库将不同NC 卡所提供的API 转换成通用的API ,其它模块将此通用库所提供的通用API 导出后即可使用,从而屏蔽掉不同底层通讯库之间的差别,提高其它模块的独立性,部分接口代码如下(CommAPI.cpp) :

      # define EXPORT_FUN _decl spec (dllexport )   / / 通讯库导出函数宏定义  CUmacComm g_Dpr ;  / / 定义类变量,此类利  用UMAC 底层通讯库的API 编写  EXPORT_ FUN BOOL CommStart ( )  / / 启  动通讯的通用API 定义,供其它模块导出后调用  {  if ( !g_Dpr .Load_UMAC ( ) )  / / 装载UMAC  动态库并打开UMAC 卡通讯库  {Af xMessageBox (、打开UMAC 卡失败! !" ,  MB_O K| MB_ TOPMOST) ;ret urn FAL SE ;}  return TRUE ;  }

      采用Win2000 操作系统,使用VC6.0 + + 及DeltaTau 公司所提供的通讯库进行上位机数控系统支撑软件设计。 通过将Delta Tau 公司所提供的通讯库PComm32.dll 设计为通用的通讯类库CommAPI。dll ,提供通用的API (如CommStart ( ) ) ,供人机界面模块及数据采集模块使用,对于不同类型的运动控制器所提供的不同的通讯库,只需对底层可配置通讯库进行配置,上层数控软件功能模块无需更换或只需较少的更换,从而提高上层数控支撑软件的硬件独立性。 设计过程中充分利用系统所提供的丰富资源,可缩短开发时间。

    3 结束语

      PC+ NC型数控系统在结合运动控制器稳定的运动控制功能基础上,利用Win2000 系统提供的多任务并行机制和面向对象的开发环境,使用VC6.0+ + 等快速开发工具,开发出可配置,可重用,易于维护,硬件独立性好的数控系统平台。 基于此平台,快速开发出了螺旋桨用数控系统和刺绣机用数控系统,取得了良好效果。

    (审核编辑: 智汇张瑜)