最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

有限状态机在开放式数控系统中的应用

发布时间:2014-06-17 作者:李 霞 永章 梁宏斌 钟 力  来源:万方数据
为增强开放式数控系统的重构能力,采用层级式有限状态机作为描述系统控制逻辑的行为模型,并给出了建模方法。为便于实施有限状态机的机制,建立了有限状态机基础类库,该类库提供了定义和修改有限状态机的接口。当系统扩充功能时,可以根据有限状态机完成对系统行为的重构。通过向三轴数控铣床系统中添加刀具的监控功能,验证了系统的行为重构能力。

  2.2 行为建模方法

  本文基于FSM ,采用以下方法来模型化机床的行为:

  (1) 考察对象的运行周期,识别相应的、较固定的、具有某些相同特点的时间段,将其抽象为状态。

  (2) 考察对象能否从一个状态变为另一个状态,如果能变,探究状态变化的原因(抽象为事件) ,确定是否伴随发生一些反应(抽象为动作) ,从而定义转移,转移=〈事件,动作,目标状态〉。另外,还存在一种自身转移,它是源状态等于目标状态的转移,触发自身转移的事件可能是对象内部自生成的,如刷新事件(up date) ,可参见下文的例子。

  (3) 考察每个状态,看其是否应该分解。通过对状态的层次结构分解,将一个大的状态分解为若干子状态,分解层数的多少取决于系统的复杂程度;再逐步细化,直到所有的状态都是原子的(不再分解的) ,确定原子状态之间的转移形成状态机。通过上述方法完成系统的有限状态机规划。

3 基于有限状态机的行为重构机理

  机床FSM 的内容实际上由状态集合、事件集合、转移集合和动作集合组成,称之为状态表。在实际应用中,由于系统的配置发生变化(增删设备、引入新功能或新的控制算法等) 而改变系统的行为时,对数控软件系统而言,则需重新规划FSM ,创建新的状态表。

  状态表可以采用链表的结构,链表中的每个单元都包含一个状态标志,还有一个指向转移集合的指针。每个转移又包含一个触发它的事件标志和动作集,以及指向下一个状态的指针,其中动作集是状态转移时被调用函数的完整集合。状态表的组织结构如图3 所示。每个状态具有一系列转移(转移集) , 其中, 状态state7 为组合状态, 对应状态state7. 1 和state7. 2 构成的下一层FSM。当系统需求改变而导致行为发生变化时,对应状态表内容的添加、删除和替换,如图3 中阴影表格所示,可以进行动作的替换(采用modifiedAction ()替换action3 () ) ,添加新的状态( newState) 、新的转移( &t ran7) 和新的事件(newEvent1) 。通过对状态表的修改来完成基于FSM 的系统行为重构。由于FSM 采用层级式管理,行为改变通常仅对特定子系统产生影响,只需要修改相应模块的状态表即可。一般情况下,将一个新的状态表以文件的形式保存,在系统启动时加载,就可以实现执行代码级别的行为重构。为此,对于每个模块,设计了多个状态表来规定它在不同系统模式下的不同行为,系统启动时只加载其中一个状态表,使同一模块可以满足于不同的应用。当系统行为变化涉及到修改动作集时,就需要编写源代码,因为动作是在状态转化时被调用的函数。

 状态表的组织结构
图3 状态表的组织结构 

  为了便于创建和修改状态表,还设计了FSM基础类库。它不仅提供了定义、查询和修改状态表的接口,而且是FSM 机制运行的驱动中心,其作用与硬件设备驱动程序类似。系统运行时,FSM 基础类库负责接收事件,在状态表中根据当前状态查找对应的转移,触发规定的动作,进而实现了系统的特定功能。FSM 基础类库是实现系统行为重构的关键。

  因此,在行为重构过程中, 设计者不必关心FSM 机制的实施细节,只需负责FSM 的重新规划和动作集合的编程(如果需要) ,可大大减少重构的时间和成本。

4 重构实例验证

  现以一个实例,即向已有三轴铣床数控软件中添加监控刀具破损功能,来演示系统行为重构的能力。

  4.1 三轴铣床软件系统的原始构成

  三轴铣床数控系统采用模块化思想建造,软件系统的组成如图4 所示。其中:

图4 软件系统基本组成
图4 软件系统基本组成 

  (1) 任务协调器 进行任务分配,并协调各个模块的运行。

  (2) 译码模块 完成语法检查、译码和刀具补偿功能。

  (3) 轴组模块 完成加减速处理和插补功能,向各轴发送相应的设定点协调它们的运动。

  (4) 轴模块 接收来自轴组的设定点,进行单轴控制,向外部设备发送信号。

  按照前述的行为建模规则,任务协调模块、轴组模块、轴模块的简化FSM 如图5所示,它们按照图3 的结构层次集成起来组成系统。其中,任务协调器是控制软件的调度中心,FSM 位于系统的顶层,其他模块FSM 在其管理下并行运行,状态的自动(auto) 或手动(manual) 方式对应于系统的加工模式。

任务协调模块、轴组模块、轴模块的简化FSM
图5 任务协调模块、轴组模块、轴模块的简化FSM  

本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。