在机械加工领域,控制逻辑规定了机床控制器完成特定功能所必须的步骤或事件的序列。当向机床中添加新的部件、增加新的控制算法或替换已存在的子系统时,其控制逻辑必然发生改变。为使控制软件具有复用性和重构能力,需要研究控制逻辑的建模方法和软件重构。控制逻辑反映了系统的动态特征,采用动态行为模型来构造。在面向对象方法中,行为表示对象为完成某种功能而进行的一系列处理操作,是指对象“做什么”;动态行为模型表示瞬时的、行为化的系统的“控制”性质,它规定了系统中对象的合法变化序列。
本文采用面向对象的编程技术,基于模块化思想构造开放式数控系统以层级式有限状态机(Fi2nite State Machine , FSM) 作为其行为模型,建立了有限状态机基础类库,以确保有限状态机机制的实施。该类库具有定义和修改有限状态机的接口,使模块内部控制逻辑的定义与实现相分离。当扩充系统功能时,如添加对刀具的状态监控,可以基于有限状态机机制完成对系统的行为重构。
1 有限状态机
FSM由一定数目的状态和相互之间的转移构成,在任何时候只能处于给定数目状态中的一个。它以一种事件驱动的方式工作,当接收到一个事件时,状态机产生一个输出,同时也可能伴随着状态的转移。它包括以下一些构成要素:
(1) 状态 是对象的生命周期中满足某种条件、执行某些动作或等待某些事件发生的一个阶段,能持续一段时间。
(2) 转移 是从一个状态节点(源状态) 到另一个状态节点(目标状态) 的移动,发生状态转移时,对象会相应地执行某些动作。
(3) 事件 是一个在时空中显式出现的特定现象,它可以触发状态转移。事件可以来自外部,也可以是内部生成的。
(4) 动作 是对象在状态发生转移时所作的一系列处理操作。
对于复杂系统,如采用上述基本FSM 建模,可能存在成百上千的状态,导致系统效率下降,且难于验证和维护。因此,出现了对基本FSM 的扩充,如层级式FSM。层级式FSM 由一系列基本FSM 按照层级方式组织起来,一个或多个下层FSM 对应于上层FSM 中的某一状态(称其为组合状态) 。当FSM 处于某一组合状态时,一个或多个下层FSM可以并行或顺序执行。
2 基于有限状态机的行为模型
2.1 机床的行为建模
FSM 经常用来模型化反应式系统,反应式系统对外部和内部事件作出反应,属于事件驱动系统。在确定性的反应式系统中,输入事件的顺序和数值决定了系统响应的顺序和数值。
数控系统根据输入的信息(如数控程序、操作面板的输入、传感器反馈信息) 控制机床移动,实现加工操作(如轴运动、换刀、停止机床等) ,其行为是可预见的,属于典型的反应式系统。因此,将外部输入的信息表示为FSM 的输入事件,将机床的加工操作表示为FSM 的动作,采用FSM 作为机床的行为模型。
图1 所示为采用状态转移图表示机床行为的简化FSM ,它描述了该系统可以根据用户的命令实现轴进给、停止,并在监控到刀具破损后停止轴运动。其FSM 包含3 个状态:系统就绪( system ready) 、轴运动(axis moving) 和刀具破损(tool broken) 。可以处理3 个事件:其中两个代表用户的请求即进给(move) 和停止( stop) ,一个代表传感器反馈信息即刀具破损。机床可完成的操作被抽象为FSM 中的动作moveAxis () 、stopAxis () 。机床的动态行为以FSM 方式被清晰、规范化地描述出来。可以看出,在FSM 中,状态转移触发动作的过程就是机床实现加工操作的过程。
实际应用中机床行为复杂,其状态数目庞大,笔者将整个系统按照层级方式分解为一系列子功能模块,整个系统的行为被分解为子系统的行为,并用单独的FSM 描述,然后再把这些模块集成起来构成系统,得到层级式FSM 所表述的整个系统行为模型(如图2) 。采用层级式FSM 进行行为建模,可实现系统行为的结构化、层次化表达。最终,机床的行为可以看作是各模块行为的集成,机床的加工过程就是各模块FSM 的转移过程。