董伯麟,朱华炳,b,罗祖平
(合肥工业大学a.机械与汽车工程学院;b.工业培训中心,合肥 230009)
UML Statechart在嵌入式数控系统软件中的应用研究*
董伯麟a,朱华炳a,b,罗祖平a
(合肥工业大学a.机械与汽车工程学院;b.工业培训中心,合肥 230009)
针对数控系统复杂行为的描述和控制,分析了采用有限状态机方法的利弊,提出了采用UML Statechart的系统行为描述方法。应用该方法对一嵌入式数控系统的软件开发进行了尝试,给出了系统任务管理器对象的UML Statechart及其实现方式。结果表明,该方法有效地简化了行为描述,提高了行为描述的可读性,降低了数控系统软件的实现难度。
UML Statechart;嵌入式数控系统;行为表达
很多系统,特别是实时系统,都是高度状态依赖的。数控系统是一个高度状态依赖的系统,它的动作不仅依靠给它的输入,而且还依赖于此前系统发生了什么。在数控系统的开发过程中如何准确地描述和控制数控系统的行为至关重要[1-3]。
文献[1-6]提出了采用有限状态机(FSM)来控制数控系统的行为,在一定程度上实现了系统行为的规划。但是由于FSM本身的局限性,它不具有层次性或需要对其进行层级扩展,以及状态转移图的表示方式相对简单,使得通过FSM对数控系统行为的描述和控制依然显得复杂和凌乱。
本文提出采用UML Statechart来描述和控制数控系统行为,并通过在嵌入式数控系统开发中的应用验证其有效性。
有限状态机(Finite State Machine,FSM)是由一定数目的状态和相互之间的转移构成,在任何时候只能处于给定数目状态中的一个。当接收到一个事件时,状态机产生一个输出,同时可能伴随状态的转移[4]。有限状态机以一种事件驱动的方式工作,可以通过事件驱动下的系统状态间的转移表达一个系统的动态行为[5]。
同时应该指出,有限状态机在建立复杂系统会变得无力[7]。如图1所示,若系统有n个状态,每个状态都会因为某一个事件转移到一个特定的状态,则会出现n2个转移路径。同时,我们考虑一个系统,其包含2个并发子系统,每个子系统分别包含m和n个可能的状态,若采用FSM来表示这个系统,则需要m.×n个状态。因此,采用这种FSM来建模时,当状态或转移达到一定数量时,实现就会变成一种不可能。
图1 FSM的转移爆炸
Statechart是Harel于1987年提出的一种可视化规格语言[8]。针对传统FSM的不足,Statechart增加了层次、并发、广播通讯等概念,使得Statechart能够适用于描述大型复杂的反应式系统。
UML Statechart(也称UML状态机或UML状态图)[9]是 Harel Statechart的基于对象的变种,并组合了在ROOM图中定义的几个概念,以及实时面向对象建模(ROOM)语言中所定义的各种状态图。如图2所以为一个简单的UML Statechart。
图2 一个简单的UML Statechart
UML Statechart包含如下一些基本要素[10]:
(1)初始状态:是状态机起始位置,它不需要事件触发。
(2)状态:是对象执行某项活动或等待某个事件时的条件。在UML中状态被赋予四个特定的事件。entry指对象进入(激活)状态时执行的动作(或类方法)。do指对象状态保持不变时持续执行的动作(或类方法),它不会因为event而停止。event事件是指对象接收到某个事件时执行的动作,这种动作不会导致对象状态的变化,可以通过绘制一条返回状态自身的转移来表示动作执行结果。exit指状态在退出时执行的动作。
(3)复合状态:是具有子状态(或者称为嵌套状态)的状态。在复合状态中子状态也可能有一个初始状态和终止状态,并且当触发事件加载到复合状态时最先进入子状态中的初始状态,子状态间如何变迁由复合状态决定。另外,子状态还可以再嵌子状态到任意级别。
(4)转移:是连个状态之间的关系,它表示当发生指定事件并满足指定条件时,第一个状态中的对象将执行某些操作并进入第二个状态。
(5)事件:是一个特定的动作或行为,有时也包括系统时钟之类的定时器。如果条件满足,事件的发生将触发一个转移。
(6)条件:是一个布尔表达式,当事件发生时检查这个表达式的值。条件求值结果可能决定转移的分支,或者拒绝转移。
(7)最终状态:表示状态机执行结束,或者对象生命期结束。
如图3所示为一嵌入式数控系统的硬件结构。在该系统中,FPGA运动控制卡可以完成运动轨迹的插补及执行电机的控制,PLC能够根据选择的刀号处理刀库旋转电机及气泵的开关逻辑。本文主要针对X86工业主板上的软件设计进行。在X86工业主板上除需要完成程序的输入、显示及参数设置外,还要监视MDI键盘的控制输入、运动控制卡和刀库的运行状态、警报等信息,根据这些信息控制系统执行如译码、指令发送、停止、报警等一系列任务。
图3 硬件结构
任务的执行是不确定的,无序的,与此前发生的事情、当前的事件、条件及状态有关。因此,这里将采用UML Statechart来对数控系统的这些任务的进行描述和实现。
如图4所示是数控系统的软件结构。在该结构中任务管理器接收来自人机接口、外部系统(刀库和运动控制卡)以及当前运行任务的事件信号,根据所接收到的信号控制任务集中相应任务的执行与终止。数控系统的行为由任务管理器控制,任务管理器起到规划数控系统行为的作用。
图4 数控系统的软件结构
数控系统具有回零、手动、手轮、MDI、自动、编辑和参数设置多个工作模式。在不同的模式下,只对特定的事件和信号进行处理;相同的事件和信号,在不同的模式下处理的方式也不一样;在相同的模式下,事件和信号发生的顺序不同处理的方式也不同[11-12]。因此,任务管理器是一个高度状态依赖的对象,通过UML Statechart建立其状态图如图5所示。Statechart的复合状态大大地简化了转移路径。如,回零、手动、手轮、MDI、自动、编辑、参数设置七种模式间具有任意两种模式间可切换,采用FSM需要72=49个转移路径(包括自身转移),图5中通过复合状态On只使用7条转移路径;除此,在任何状态,遇到急停事件时都必须转移到急停状态,采用FSM则系统中有多少个状态就需要多少条转移路径,在图5中通过复合状态On只用了一条转移路径。
图5 数控系统的UML Statechart
从图中可以看出:
UML Statechart清晰地描绘了该数控系统的行为。图中可以看到系统在每一个状态将执行的动作(任务)、处理的事件以及可能转移到的状态。如,在Return的Non-origin状态可以处理X+、Y+、Z+事件,当进入Origin状态后将不会处理;Manual状态可以处理X+、X-等事件,而MDI或Auto状态只可处理 Start、Hold、Reset等事件;进入 Running状态时会启动循环任务,退出Running状态时会停止循环任务等。
与经典平面有限状态机FSM相比,通过UML
UML Statechart可以通过行为继承模式来实现[13]。图6所示是任务管理器UML Statechart的实现方式。TaskSupervisor(任务管理器对象类)继承状态机基类QHsm,QHsm可以完成状态间的进入、退出及转移等功能。TaskSupervisor只需添加每个状态的状态处理函数,以及一些其它的属性。在状态处理函数内通过switch-case的方式判断收到的事件,然后根据事件调用相应的状态转移或事件动作函数。
图6 任务管理器UML Statechart的实现方式
本文将UML Statechart应用于嵌入式数控系统软件开发中,应用结果表明了该方法的可行性,对数控系统软件的实现有良好效果。
(1)以图形的方式描述了数控系统的行为,提高了可读性,增强了软件的建模能力。
(2)通过对UML Statechart实现,达到对数控系统行为的控制,降低了数控系统软件的开发难度。
(3)与传统的FSM方式相比,UML Statechart的表达方式更加丰富,图形更加简洁清晰。
[1]Chito S,Michael J,Shige Wang,et al.Specifying Reconfigurable Control Flow for Open Architecture Controllers[J].proceedings 1998 Japan-USA Symposium on Flexible Automation,1998,7(2):659-666.
[2]Shige Wang and Kang G.Shin.Constructing Reconfigurable Software for Machine Control Systems[J].IEEE Transactions on Robotics and Automation,2002,18(4):475-486.
[3]雷为民,于东,李本忍,等.机床控制流程的一种有限状态机表达方法[J].信息与控制,2000,29(1):47-54.
[4]李霞,王永章,梁宏斌,等.有限状态机在开放式数控系统中的应用[J].计算机集成制造系统,2005,11(13):428-432.
[5]李为建,王文,秦兴.有限状态机在数控系统软件中的应用研究[J].组合机床与自动化加工技术,2003(4):50-51.
[6]孙维堂,刘永贤,张禹,等.有限状态机在开放式数控系统中的应用[J].东北大学学报(自然科学版),2007,28(8):1174-1177.
[7]Hassan Gomaa著,吕庆中,译.用 UML设计并发、分布式、实时应用[M].北京:北京航空航天大学出版社,2004.
[8]Harel D.Statecharts:a visual formalism for complex systems[J].Science of Computer Programming,1987,8(3):231-274.
[9]OMG.OMG Unified Modeling Language(OMG UML),Superstructure(v2.4.1)[EB/OL],(2011-08-06)[2012-02-20].http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF.
[10]谭云杰.大象——Thinking in UML[M]. 北京:中国水利水电出版社,2009.
[11]廖效果.数控技术[M].湖北:湖北科学技术出版社,2000.
[12]Suk-Hwan Suh,et al.Theory and Design of CNC Systems[M].UK:Springer,2008.
[13]Miro Samek.PRACTICAL UML STATECHARTS IN C/C++,Second Edition[M].Burlington:Newnes,2008
Study on the Application of UML Statechart in Embedded CNC System Software
DONG Bo-lin1,ZHU Hua-bing1,2,LUO Zu-ping1
(a.School of Mechanical and Automotive Engineering;b.Industrial Training Center,Hefei University of Technology,Hefei 230009,China)
As it is hard to describe and control the CNC system’s behaviors.First of all,the pros and cons of the method of FSM were discussed.And the second,the method of UML Statechart was proposed.Finally,an instance of Embedded CNC system software development was illustrated and the UML Statechart and its implementation way were given.The result shows that this method simplifies the description,improves the readability,and reduces the difficulty of CNC system software realization.
UML Statechart;embedded CNC system;behaviors expression
TH16;TG65
A
1001-2265(2012)11-0067-04
2012-03-07;
2012-03-31
合肥工业大学博士专项科研资助基金资助项目(GDBJ2009-045)
董伯麟(1973—),男,安徽安庆人,合肥工业大学机械与汽车工程学院副教授,工学博士,研究方向为数字化制造、高端数控,(E-mail)dongbl2000@163.com。
(编辑 赵蓉)