有限状态机在数控系统软件中的应用研究
有限状态机在数控系统软件中的应用研究
李为建 王文 秦兴
浙江大学 现代制造工程研究所 , 浙江 杭州 310027
摘要 :在数控系统软件开发中 ,控制软件的开发是开发的关键。针对数控系统复杂性和实时性特点 ,把有限状态机应用在
数控系统软件开发中 ,构造了控制器软件结构 ,并应用于数控系统的原型开发。
关键词 :有限状态机 ;数控系统 ;软件结构
中图分类号 : TP273 文献标识码 :A 文章编号 :1001 - 2265(2003) 04 - 0050 - 02
Study on the application of finite state machine in CNC software
L I Weijian WAN G Wen QIN Xing
Abstract : The development of control software is the key in developing CNC software. Controller software architecture was con2
structed in the development of CNC software using Finite State Machine. Finally , by applying the proposed controller software ar2
chitecture , a CNC system prototype is constructed.
Key words : Finite State Machine ;CNC ; software architecture
图 1 三状态 FSM 状态转换图
图 2 控制器软件结构图 图 3 构件图
1 引言
一个系统如果在它生存期内行为有改变 ,则称系统具有动
态行为[1 ] 。有限状态机是一种具有离散输入输出系统的数学模
型 ,它以一种“事件驱动”的方式工作 ,可以通过事件驱动下的系
统状态间的转移表达一个系统的动态行为。它作为有限自动控
制理论的一部分 ,应用在很多领域 ,如集成电路设计、正规表达
分析器及控制理论等[2 ] 。数控系统是一个复杂且具有不同层次
实时性要求的多任务控制器。在数控系统软件的开发过程中如
何准确地分析和表达系统的控制流程和行为是关键 ,同时也影
响着系统的开发时间和可靠性。本文结合有限状态机的工作原
理介绍如何把有限状态机应用在数控系统的软件开发过程中。
2 有限状态机的基本原理
有限状态机 (Finite State Machine ,简称 FSM) 是由状态的有
穷集和状态之间的转换关系组成 ,其数学定义[1 ,3 ]如下 :
FSM 是一个五元组[ A , Z , S ,υ,ζ] ,其中
·A 是有穷输入集 : A = { a0 , a1 , . . . , an} ,
·Z 是有穷输出集 : Z = { z0 , z1 , . . . , z n} ,
·S 为内部状态集 : S = { s0 , s1 , . . . , sn}
·υ为映射 S ×A →S ,可看作是状态转换映射 ,
·ζ为映射 S ×A →Z ,可看作是输出映射。
FSM 的工作原理可解释如下 :给定一组状态集 S 和输入集
A 的前提下 ,一但输入 an - 1 和状态 sn - 1 确定 ,在映射υ和ζ作
用下 ,则可确定 FSM 的下一个状态 sn 和输出 z n 。这一工作原
理可以通过状态转移表、状态转换图等方式描述。如 ,一个系统
具有三个状态 ,通过状态转换图描述如图 1 所示;通过状态转移
表描述如表 1 所示。FSM 下一个状态的到达依赖当前输入和
当前状态;而输出也依赖输入和当前的状态。
表 1 三状态 FSM 状态转移表
当前状态 输入 下一状态 输出 输入 下一状态 输出
S0 0 S1 0 1 S0 1
S1 0 S2 1 1 S1 0
S2 0 S0 1 1 S2 0
3 基于有限状态机的数控系统软件结构
3. 1 控制器软件结构
数控系统是多任务、强实时性要求的计算机控制系统。控
制器软件和应用软件是组成数控系统软件的两部分[4 ] ,而构造
控制器软件是关键。图 2 为控制器软件结构图 。控制器软件运
行在相应的软硬件平台 (计算机和操作系统) 上 ,定义了系统的
功能 ,并向上提供服务 ,而应用软件定义了系统的行为[5 ] 。
控制器软件由构件构成 ,构件可以是组件 (二进制兼容) ,也
可以是面向对象中的类等 ,同时构件也可以复合而成为复合式
构件。在软件分析时可以采用面向对象分析 ,具体实现时可以
用组件实现也可以用面向对象等其它方法实现。
05 组合机床与自动化加工技术
图 4 轴及控制器结构图
图 5 控制器软件主要类关系图 图 6 控制器嵌套 FSM
图 7 轴 FSM 驱动器状态转换图
3. 2 构件结构
构件由一系列的外部事件接口、FSM 驱动器构成 ,如图 3
所示。
外部事件接口定义了构件功能的操作集 ,只有通过外部事
件接口才能触发构件的实际功能 ,而这种机制是由 FSM 驱动器
实现的。FSM 驱动器通过查询触发事件 ,如果事件是在 FSM
驱动器中注册的 ,那么调用相应的功能函数 ,否则不予处理。
为了支持不同粒度的复合 ,构件可以通过层次结构进行组
织而成为复合式构件。复合式构件的行为可以通过嵌套的有限
状态机 (NFSM) 模型化并与其成员构件的 FSM 同步。
嵌套的行为模型有两个明显的优点 :1) 它支持行为在层次
结构上的集成和修改 ,因此 ,降低了系统行为分析和修改的复杂
性。2) 因为 FSM 可以完全通过一张状态表说明 ,从而方便了控
制逻辑的实现和运行时的重新配置。
3. 3 FSM 驱动器
FSM 驱动器设计的主要目的是把构件的功能定义与控制
逻辑分离 ,这样软件行为的规范和修改可以与软件的实现分离 ,
以提供更大的柔性。其中包含以下几个概念 :
1) 状态 :一个系统所处的状况。
2) 转换 : < 事件 ,条件 ,行动 ,下一个状态 > 的联合。
3) 事件 :行动的请求。
4) 条件 :一个布尔表达式 ,作为转换的“监护者”,当表达式
的值为真时 ,转换被触发 ,执行转换中指定的行动 ,状态机改变
到下一个状态。
5) 行动 :与状态转换关联的执行函数。
FSM 驱动器可以看作是访问和修改构件内部控制逻辑的
接口。需要行为控制的构件都应具有 FSM 驱动器。一个构件
的控制逻辑完全可以由一个状态表说明以供 FSM 驱动器执行。
FSM 驱动器根据状态表和事件产生命令以触发运行时的控制
对象。
4 实例应用
基于以上控制器软件结构 ,将其应用于三轴铣床数控系统。
该系统采用″NC 嵌入 PC″结构 ,由 PC 机和运动控制器构成。PC
机主要负责系统的管理功能及与运动控制器通讯。运动控制器
主要负责实时性控制 ,完成轨迹规划和运动。控制器软件主要
功能是控制运动控制器以协调三轴的运动最终完成相应的轨迹
运动。控制器软件的实现是基于以上软件结构和机制的。
4. 1 控制器软件构成
控制器软件的构件主要包括控制算法、物理设备驱动程序、
子系统等。图 4 为轴构件和控制器软件组成图。控制器软件中
的一些高层构件主要有 :
轴 :接受控制命令并发出控制信号以控制相应轴完成预定
的运动轨迹 ;
数控代码编译器 :解释数控代码以供控制规划使用。
4. 2 控制器软件实现
在构造控制器软件时我们采用了面向对象实现。其中主要
的类关系如图 5 所示。
在用状态机描述控制器软件的行为时 ,我们主要在以下两
种情况下使用状态机 :第一种情况 ,它是与某个类相联的 ,完整
地定义了该类对象的行为 ,那么该类从有限状态机类继承 ,如其
中的轴类。当客户发出的请求被发送到拥有状态机的对象时 ,
状态机按照接收到的事件决定采取什么样的行动来实现状态的
转换。第二种情况 ,独立于功能模块 ,它为完成一定的功能把一
些操作集中到一起并且规定了激活它们的顺序。它作为一个单
独的类而被定义 ,当执行这些方法时要调用一些其它的类或者
其它的状态机所包含的操作 ,如轴 FSM 驱动器类。
控制器软件的 FSM 形成一个嵌套的 FSM ,如图 6 所示。
在系统级上 ,控制器类实现对整个系统的协调 ,如可以选择
不同的操作模式 (自动、手动) 、回零操作等。它从有限状态机类
继承 ,是最上层的 FSM。控制器类包含的轴类从有限状态机类
继承 ,有限状态机负责控制轴的行为 ,包括轴的使能控制、复位、
停止等。
在子系统级上 ,轴 FSM 驱动器嵌套在轴 FSM 中 ,控制和协
调手动、自动和回零三个对象的功能行为。它的 FSM 如图 7 所
示。轴的初始状态为使能无效状态 ,只有轴进入允许使能状态
才能进入下一级的功能 FSM。
5 结论
把有限状态机应用到数控系统软件开发过程中 ,一方面规
范了系统的行为和控制流程 ,缩短了数控系统的开发周期 ,增加
了系统的可靠性 ;另一方面 ,构造的 FSM 驱动器把软件单元 (构
件) 的功能定义和控制逻辑分离 ,提高了系统的柔性。
(下转第 53 页)
152003年第4期
图 3 动态画面效果图
图 4 报表程序流程框图
1) 软件系统建立在 windows 98/ windows 2000 的操作平台
上。
2) 兼容中英文输入、输出 ;提供一个友好图形界面 ,通过运
用鼠标点击 ,方便地选择菜单。
3) 数据自动编辑、存储、写入、处理 ;收集和分析数据历史记
录 ,根据要求自动绘制工作特性曲线。
4) 提供可随时查看的有实时数据显示的中文电子表格 ,并
可随时输出打印。该系统的软件设计主要为检测参数动态模拟
程序设计部分和输出报表程序设计部分。
3. 1 检测参数动态模拟程序设计
该系统检测参数动态模拟是利用“组态王”工业控制组态软
件包进行开发。“组态王”是运行于 Microsoft windows 98/ N T
中文平台的全中文界面的组态软件。动态画面的开发和运行由
工程浏览器调用画面制作系统 TOUCHMA K 和画面运行系统
TOUCHEW 来完成的。TOUCHMA K是应用程序的开发环境 ,
TOUCHVEW 是“组态王”软件的实时运行环境 , TOUCHVEW
从工业控制对象中采集数据 ,将其记录在实时数据库中 ,并负责
把数据的变化用动画的方式形象地表示出来。画面效果如图 3
所示。动态画面采用常规指针式仪表结合数字显示 ,直观明了 ,
试验操作者既可从数字显示观察实时试验数据 ,又能从指针的
变化 ,预测动态变化趋势。
3. 2 输出报表程序设计
输出报表软件采用 Visual C ++ 6. 0 软件开发 ,在 windows
98/ N T 中文平台上 ,其具有占用内存少、速度快、编程方便的优
点。报表程序框图如图 4 所示。将显示器画面转到报表画面 ,
每 10 秒采集更新一组数据 ,每 5~10 分种记录存贮最后采集的
一组数据 ,并将数据自动填入表中。
4 系统应用效果
本系统应用于湖南湘潭电机集团公司 108 吨电动轮自卸汽
车制造过程中 ,对进口的 1200 匹马力的柴油发动机性能进行检
测 ,取得了良好的社会及经济效果 ,其突出的特点有如下几点 :
1) 该系统操作简单 ,人机界面友好 ,动态画面直观明了。2)
采用 IPC 工控机和 PLC 分别作为系统数据处理及操作控制 ,系
统抗干扰能力强 ,
性能可靠 ,运行稳
定 ,造价低 ,非常适
合于现有测试系统
的改造。
3) 测试参数数
据自动生成报表 ,
大大减少了人工抄
表的观察误差与劳
动强度 ,大大地提
高了工效 (原先每
班试验需 10 ~ 12
人操作读表抄表 ,
现只需 2 人) 。
5 结束语
采 用 IPC 工
控机和 PLC 作为
工业控制上的数据
处理单元和控制单元 ,将
以其优良的性能 ,较好的
性价比 ,广泛地应用于工业现场的监视、检测与控制 ,本系统仅
是其中应用之一。
[参考文献 ]
[1 ] 金昊等. PC 自动化测试技术及软件结构. 自动化仪表 ,
1999 ,20(4) :1~3
[2 ] 徐科军等. 自动检测和仪表中的共性技术. 北京 :清华大学
出版社 ,2000
[3 ] 黎苏. 汽车发动机动态过程及其控制. 北京 :人民交通出版
社 ,2001
[4 ] 袁任光等. 可编程序控制器 ( PC) 应用技术与实例. 广州 :华
南理工大学出版社 ,2001
收稿日期 :2003 - 01 - 15
作者简介 :胡俊达 (1954 - ) ,男 ,湖南长沙人 ,湖南工程学院
电气与信息工程系副教授。 (编辑 李秀敏)
(上接第 51 页)
[参考文献 ]
[1 ] Jean - Pierre Kruth , etc. The use of finite state machines for
task - based machine tool control , Computers in Industry ,46 ,
2001
[ 2 ] NIST. FSM REFERENCE DOCUMEN TATION , http :/ /
www. isd. mel. nist. gov/ omacapi/ FSMlibrary
[3 ] 雷为民等. 机床控制流程的一种有限状态机表达方法 1 信
息与控制 ,2000 ,29(1)
[4 ] 冯勇等. 现代计算机数控系统. 北京 :机械工业出版社 ,1996
[5 ] Shige Wang and Kang G. Shin. Modelling Manufacturing Con2
trol Software , Proceedings of the 2001 IEEE International
Conference on Robotics & Automation , Seoul , Korea - May
21 - 26 ,2001
收稿日期 :2002 - 08 - 02
作者简介 :李为建 (1977 - ) ,男 ,黑龙江鸡西人 ,浙江大学现
代制造工程研究所在读硕士研究生。 (编辑 江复)
352003年第4期
有限状态机在数控系统软件中的应用研究.pdf