随着电子技术的发展和运动控制技术的成熟,人们开始将运动控制技术应用于测量设备,产生了数控工作台。数控工作台是利用运动控制系统控制工作台的运动机构动作,以运动到需要的位置,大大提高了工件测量的效率。
 UML[1]是一种可用于大型系统建模的统一建模语言, 它不仅支持面向对象的分析和设计, 还支持软件开发过程,利用不同的模型来描述一个应用系统在不同生命周期中的各种静态结构方面和动态行为方面的特征, 为任何具有静态结构和动态行为的系统建模,同时提供模型扩展和管理等方面的支持。
 本文针对数控工作台的功能特点,以自主开发的基于HCS08运动控制系统为平台,并以UML为工具,设计相应的软件,满足实际生产需要。
1 数控工作台控制原理
 工作台运动系统主要由手柄、载物台等运动机构组成。系统以Freescale HCS08型单片机为核心的运动控制器作为下位机,通过控制伺服电机驱动器来实现对载物台上下、左右、前后运动的控制,以PC作为上位机来实现调速、自动校零、自动找零、位置显示等。
 上下位机通过串口进行数据传输。工作台工作时,用户将测量工件(如丝杆)放在载物台上,通过操作手柄让载物台走到测量范围内,通过手柄的高低速按键控制电机的高速或低速运动,方便测量时的粗调和微调。
2 数控工作台功能分析
 本文的主要任务是根据用户对系统功能需求进行分析,通过对整个系统框架进行构造和实现下位机软件设计与建模。下位机是整个系统的中间层,主要功能是根据接收的数据和指令控制工作台运动。通过上位机界面可以设定各轴的速度和电机转动方向,以及实时位置显示、零点位置显示等,具体可为自动找零、校零、手动操作、伺服报警信号等。
 对于下位机,参与者包括用户、上位机、限位开关、手柄、伺服电机。用户除了可以通过上位机软件显示零点位置、实时位置之外,还可以通过调速界面调整伺服电机转速和方向,故下位机的用户用例为手柄控制。上位机和下位机的连接是系统的关键部分,是整个系统正常运转的通道。伺服电机是动作的执行者,根据下位机的指令进行动作,其用例主要是高低速度控制。限位开关的用例主要包括I/O信号、限位、故障报警。
 根据上面的用例分析,使用UML构造下位机的用例图[6],如图1所示。

点击看大图

3 下位机软件结构
3.1下位机软件状态模型
 通过对数控工作台下位机用例图的分析可以将下位机软件按状态分为几个模块:自动找零点状态、手动控制状态、校零状态、故障状态等。采用UML状态图可以将参与交互的模块及模块之间的消息交互表示清楚,可以比较直观、高效地建立软件的状态模型。建模如图2所示。


点击看大图

 系统进入工作状态时首先进入自动找零状态。在自动找零状态下,下位机主程序读取Flash存储[3]的信息,对3个轴的电机按照先Z轴找零,再X轴、Y轴同时找零的顺序发脉冲,使工作台运动到工作起点位置。
 一旦自动找零完成之后,系统状态就会自动转移到手动控制状态中去。例如通过手柄控制让电机走到某个位置,同时通过手柄上的高低速切换按键让工作台实现高或低速运动。

 校零是设定当前的位置为零点位置,通过上位机操作将数据写入Flash中,在下次上电工作时工作台会在自动找零时,自动运行到这个设定的零点位置。由图2可以清楚地看到,整个状态模型可以分为4个部分:自动找零状态、手动控制状态(包括高低速转换、三轴电机运动的方向)、校零状态和故障状态。其中故障状态可以与其他的状态根据转移条件发生状态转移,而手动控制状态只能与校零状态和故障状态根据转移条件发生状态转移,其内部各个状态之间不能发生状态转移,这是由工作台的工作特性所决定的。从上电开始工作,在同一时间内只允许进行一种活动,只有在当前活动结束后才允许进行其他的活动,这种工作台的工作特性就可以用UML状态图[6]清晰地表现出来,使得任何人都能对系统软件模型有比较直观的认识。
根据状态来划分整个系统软件结构[2],可以有效地对系统工作进行掌控,防止软件功能互相耦合而引起逻辑混乱。简单来说,当系统正处在手动控制中,如果此时收到校零指令,系统就可以根据当前状态转移条件转移到校零状态,工作台会按顺序依次走到各轴的两端限位位置,将两端限位之间的距离保存到Flash中以便下次读取,这样就提高了系统的稳定性和可靠性。
3.2 下位机软件算法活动模型
鉴于数控工作台在日常生产中对于控制的要求,