2.2.1 任务调度模块
任务调度模块是系统的主用户界面。它是操作人员与机器之间进行交流的媒介,~个好的用户界面能使操作人员心情愉快,并在较短时间内通过屏幕上所显示的信息,了解到机器当前各主要模块的工作状态。本文的人机界面设计遵循以下原则:①“一致性”,系统的界面外观、布局、交互方式及显示格式与市场主流产品相符合,便于操作人员轻易上手。②“信息反馈”,对操作人员的操作能做出及时响应,通过文本、图形、声音等方式。⑧“布局合理”,空间布局应合理,竖床加以横线搭配,尺寸分配适当运用黄金分割比例0.618,显示表放置于水平视线以下0—30°,垂直视野左右各15°范围内。(缈“合理运用色彩和图形”,整体界面颜色应不超过3-5种,色调搭配不宜过于刺激或兴奋或沉闷,以纯度低而明度高为宜。面板上的按钮颜色按用途分类,如:红色表示危险、停止和报警;绿色代表正常和安全运行;黑白色代表文字、符号和编码。⑤“字体、字型合适”,字符的高宽比应为2:1或1:1。
主用户界面由四个视图、系统菜单和状态栏构成。图形显示区主要用于实时显示刀具的运动轨迹;参数显示区主要用于显示当前系统的若干重要参数值;系统菜单负责在各功能模块间进行切换;实时数据显示区主要用于实时显示不同参考下的坐标值;辅助面板为一个虚拟的机床操作面板。通过菜单栏F5可以控制其显示或消隐;状态栏主要用于显示一些基本信息,如:开发单位、系统时间、已加工工件数等。
2.2.2数据管理模块
数据管理模块掌管着整个系统的数据流向,通过自定义一个类,专门处理数据文件的打开、关闭、读取、写入等动作,并将数据按类别保存到一系列的数据结构中,这些数据结构是文件与用户界面、模块与模块之间进行数据交换的容器。
如图4,CFileDeal类中定义了一系列的成员函数和成员变量,他们的作用主要是针对数据文件进行操作。白箭头表示读入,CFileDeaf类将数据从文件中读取出来,并通过自己在C)(x.App类中的一个对象将数据加载到指定的数据结构StructData中,当某个模块需要使用这些数据时,它的关联类C×X便通过一个指向CXX.App的指针pApp调用Struct Data的一个对象来对Struct Data进行操作,将数据提取出来,并在特定的成员函数里引用这些数据进行运算处理,处理后的数据或显示到视图面板中或发送到另一个数据结构中保存起来。黑色箭头则表示了数据的存储过程。
2.2.3通信模块
通信模块包括系统上、下位机间的通信和系统间的网络通信,其中最重要的是系统软件与运动控制器间的通信。本文定义和封装了一个类CCardFunc,结合运动控制器的API函数来编写各成员函数,用于处理所有与运动控制器发生交互的工作。例如可以如下编写:
2.2.4 状态诊断模块
状态诊断模块中最核心的部分是错误诊断机制。一个良好的错误诊断机制能够在系统软件发生错误时,迅速定位到错误发生处。本文考虑到错误可能会出现在任一核心层下的任一模块中,因此将错误诊断机制设定为全局函数。例如可以采用如下形式来定义。
在编写关键功能模块的代码时,可为某些关键函数的调用定义一个状态返回值,并随后调用该错误诊断机制.虽然这样做会加大代码编写的工作量,但却可以在错误发生时大大地减少错误排除的工作时间,提高工作效率。
3 结束语
本文介绍了一种基于PC机与运动控制器构建的开放式数控系统,描述了这种系统的基本构成及工作原理,及系统软件设计上的若干关键问题。为了验证系统的实际运行性能,将一台二维绘图实验平台接入系统,并对其进行了自动运行、手动运行、点位控制及多种速度规划模式下的实验。绘制的图形轮廓完整、数据的反馈和试验台的响应迅速。