2.2 系统软件设计
系统软件包括: IPC (上位机) 的数控系统应用程序;上下位机通讯程序;UMAC (下位机) 中对各种输入、输出量进行监控的PLC 程序。 由于上位机使用非实时系统,要求下位机对实时操作有很强的自主控制功能,其逻辑控制功能主要由其内置的PLC 功能实现,上下位机通讯的原理图如图3 所示。 数控系统图支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 ;
}
系统软件设计方案如图4所示,此系统中IPC
采用Win2000 操作系统,使用VC6.0 + + 及DeltaTau 公司所提供的通讯库进行上位机数控系统支撑软件设计。 通过将Delta Tau 公司所提供的通讯库PComm32.dll 设计为通用的通讯类库CommAPI。dll ,提供通用的API (如CommStart ( ) ) ,供人机界面模块及数据采集模块使用,对于不同类型的运动控制器所提供的不同的通讯库,只需对底层可配置通讯库进行配置,上层数控软件功能模块无需更换或只需较少的更换,从而提高上层数控支撑软件的硬件独立性。 设计过程中充分利用系统所提供的丰富资源,可缩短开发时间。
3 结束语
PC+ NC型数控系统在结合运动控制器稳定的运动控制功能基础上,利用Win2000 系统提供的多任务并行机制和面向对象的开发环境,使用VC6.0+ + 等快速开发工具,开发出可配置,可重用,易于维护,硬件独立性好的数控系统平台。 基于此平台,快速开发出了螺旋桨用数控系统和刺绣机用数控系统,取得了良好效果。