机床控制流程的一种有限状态机表达方法
- 格式:pdf
- 大小:289.94 KB
- 文档页数:9
机器人程序设计中的状态机设计一、前言工业机器人系统通常分为机器人本体和控制器两大部分。
微控制器的主要作用是根据用户的指令对机器人本体进行操作和控制,为每一个不同的机器人设计不同功能的控制程序是一个设计者经常感到困扰的难题。
许多机器人都是有多个任务的,这些任务间是相关联的,且每个任务都有明确的细致要求,这就使得机器人的控制设计难度增大。
在此,有一种叫状态机理论的相关概念,它能用在机器人的控制程序设计上。
二、有限状态机理论有限状态机,又称有限状态自动机,简称状态机。
有限状态机理论构成有限状态机的具体内容是:有限状态机是由寄存器组和组合逻辑构成的硬件时序电路。
它是由有限个状态相互间的转换构成的,下一个状态不但取决于各个输入值,还取决于当前的所有状态。
在任意时刻,当前状态就只能存在一个。
只有在有事件输入的条件下,状态才会产生并发出一个输出。
对在给定时刻要进行的活动的描述的是动作。
它包括了进入动作、退出动作、输入动作和转移动作四个动作。
三、有限状态机的优、缺点有限状态机,又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。
它具有以下优缺点:优点:思路明确,内容简单易懂,状态间的关系明了,容易编程;只需要改动输出就可以改动机器人的动作要求;当发现程序不对时,更能快速的找到错误的点。
缺点:在每一个时刻,有且只有一个状态,没有并发性的表达方式,更不能描述异步并发系统;当设计需求的状态太多时,反而编程变得更耗时和困难。
四、基于状态转换方法的机器人的程序控制的设计实例状态机是具有基于状态的动态行为的机器。
它是一个动态系统,对时间和状态产生的时间做出反应。
一个状态机包含一组有限的状态和一组转换的集合。
其中状态描述运算中不同的阶段,而转换所描述的是如何使运算从一个状态变化到另一个状态。
依赖于此理论的有限性,才能发此理论用在机器人的编程设计上,设计时可以把机器人的每个动作按要求先合理分成多个状态,并给予特定的符号代表每个状态,在每个状态给予相应的输出要求,及机器人的动作和反映。
三段式状态机标准写法一、概述状态机是一种用于描述系统在不同状态之间转换的模型,广泛应用于各种领域。
三段式状态机是一种简单易懂的状态机,通常由三个状态组成:初始状态、中间状态和最终状态。
这种状态机适用于描述一些简单、有序的系统行为。
二、标准写法1.定义状态机类型和状态名称首先,我们需要定义状态机类型和各个状态名称。
通常,我们将状态机类型命名为“StateMachine”,状态名称使用英文单词或短句表示。
2.描述初始状态在状态机的开头,我们需要描述系统的初始状态。
初始状态通常是系统空闲或无任务的状态。
在代码中,我们可以通过一个变量来记录当前状态机的状态。
3.描述中间状态和最终状态中间状态是系统从初始状态转换到最终状态的过渡状态。
在描述中间状态时,我们需要说明该状态的作用和转换条件。
最终状态是系统完成某个任务后的最终结果状态。
4.编写状态转换函数根据状态机的描述,我们需要编写相应的函数来实现状态转换。
函数名应该与状态转换条件相对应,参数包括当前状态、转换条件等。
在函数中,我们需要根据转换条件判断是否进行状态转换,并更新当前状态。
5.示例代码为了更好地理解三段式状态机的标准写法,我们提供一段示例代码。
代码实现了一个简单的三段式状态机,用于描述一个系统从空闲状态开始,执行一个任务(中间状态),然后进入结果状态(最终状态)。
三、示例代码及解析```pythonclassStateMachine:def__init__(self):self.state=InitialState#初始状态deftransition_to_task(self,condition):ifcondition:self.state=TaskState#进入中间状态else:self.state=ResultState#未满足条件,系统回到初始状态classInitialState(object):passclassTaskState(object):passclassResultState(object):pass#示例代码:一个简单的三段式状态机示例sm=StateMachine()sm.transition_to_task(True)#系统进入中间状态(执行任务)#在此处添加执行任务的代码...sm.transition_to_task(False)#系统回到初始状态(未满足条件)```解析:上述代码实现了一个简单的三段式状态机,其中`StateMachine`类表示整个系统,`InitialState`、`TaskState`和`ResultState`分别表示系统的初始状态、中间状态和最终状态。
codesys状态机用法-回复Codesys状态机是一种用于编写程序的工具,通过使用状态机可以更加高效地管理复杂的程序逻辑。
本文将详细介绍Codesys状态机的用法,以帮助读者了解如何使用和优化状态机编程。
第一部分:介绍Codesys状态机Codesys状态机是一种基于有限状态机(FSM)原理的程序设计工具。
有限状态机是一种计算模型,它通过一个有限的状态集合和一组转换规则来描述系统的行为。
Codesys状态机基于这个概念,提供了一种结构化的方法来编写程序,并且可以更好地管理复杂的控制逻辑。
第二部分:Codesys状态机的基本原理Codesys状态机由状态、转换和行为组成。
状态表示程序所处的状态,转换定义了状态之间的关系,而行为则定义了在某个状态下所执行的操作。
第三部分:创建Codesys状态机在Codesys中创建状态机需要以下步骤:1. 定义状态:根据程序的需求,定义所有可能的状态,例如“停止状态”、“开始状态”、“运行状态”等。
2. 定义转换:根据状态之间的逻辑关系,定义转换规则。
每个转换规则由一个起始状态、一个结束状态和一组触发条件组成。
3. 定义行为:为每个状态定义对应的行为,即在某个状态下所执行的操作。
第四部分:实例分析现假设我们有一个简单的交通灯系统,只有三个状态:红灯、绿灯和黄灯。
我们可以使用Codesys状态机来设计这个系统。
1. 定义状态:我们定义三个状态:“红灯状态”、“绿灯状态”和“黄灯状态”。
2. 定义转换:根据交通灯的逻辑规则,我们定义三个转换规则:从红灯状态到绿灯状态(条件:红灯时间到);从绿灯状态到黄灯状态(条件:绿灯时间到);从黄灯状态到红灯状态(条件:黄灯时间到)。
3. 定义行为:对于每个状态,我们定义相应的行为。
例如,在红灯状态下,我们可以执行关闭绿灯和黄灯的操作,打开红灯;在绿灯状态下,我们可以执行关闭红灯和黄灯的操作,打开绿灯;在黄灯状态下,我们可以执行关闭红灯和绿灯的操作,打开黄灯。
有限状态机原理
有限状态机原理是一种计算模型,它包含一组有限个状态及其之间的转移规则。
它可以被用来描述不同对象或者系统在不同状态下的行为和变化。
有限状态机由三个主要部分组成:状态集合、转移规则和起始状态。
状态集合是有限的,每个状态代表系统的一个特定状态。
转移规则定义了状态之间的转移条件,根据当前的输入确定下一个状态。
起始状态是系统的初始状态,从这个状态开始执行转移规则。
有限状态机可以描述不同的行为和变化情况,通过根据输入选择对应的转移规则来改变状态。
在执行过程中,有限状态机会根据输入和当前状态确定下一个状态,并在转移后更新当前状态。
有限状态机可以根据实际需求进行设计和实现,可以是确定性的(每个输入对应唯一的转移规则)或者非确定性的(一个输入可以对应多个转移规则)。
有限状态机广泛应用于各个领域,例如计算机科学、计算机网络、自动化控制等。
它可以用于设计和实现各种系统和算法,如编译器、路由器、电梯控制和游戏引擎等。
总之,有限状态机原理是一种描述对象或系统不同状态和行为变化的模型,通过状态集合、转移规则和起始状态来描述系统的行为。
它在计算机科学和其他领域有着广泛的应用。
自动售货机控制系统VHDL有限状态机实现1 引言有限状态机FSM(Finite State Machine)及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径。
传统的状态机设计方法需进行繁琐的状态分配、绘制状态表、化简次态方程等,而利用VHDL可以避免这些繁琐的过程,直接利用状态转换图进行状态机的描述,所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELsE语句实现。
此外,与VHDL的其它描述方式相比,状态机的VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的特点。
2 自动售货机控制系统的实现2.1 自动售货机功能描述及控制系统组成设计一个自动售货机的逻辑控制电路。
它有两个投币口分别为一元投币口和五角投币口,假设每次只能投入一枚一元或五角硬币,投入一元五角硬币后机器自动给出一瓶矿泉水,投入两元硬币后,在给出一瓶矿泉水的同时找回一枚五角的硬币。
图1为自动售货机控制系统方框图,由投币信号处理模块和功能控制模块组成。
2.2 自动售货机控制功能的状态描述取投币信号为输入逻辑变量,投入一枚一元硬币时用A=1表示,未投入时A=0。
投入一枚五角硬币用B=1表示,未投入时B=0。
给出矿泉水和找钱为两个输出变量,分别用Z和Y表示,给出矿泉水时Z=1,不给时Z=0,找回一枚五角硬币时Y=1,不找时Y=0。
根据上面的功能描述,可用三个状态S0,S1,S2表示,未投币前的初始状态为S0,投入五角硬币以后为S1,投入一元硬币后(包括投入一枚一元硬币和投入两枚五角硬币的情况)为S2,再投入一枚五角硬币后电路返回S0,同时输出为Z=1,Y=0;如果投入的是一枚一元硬币,则电路也应能返回S0,同时输出为Z=1,Y=1。
根据上面的分析可得到状态转换图如图2所示。
2.3 自动售货机功能控制模块的VHDL实现根据图2所示的状态转换图,用VHDL语言中的CASE_WHEN结构和IF_THEN_ELSE语句实现控制功能,源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY shj_ctrl ISPORT(A,B:IN STD_LOGIC;clk:IN STD_LOGIC;Z,Y:OUT STD_LOGIC);END shj_ctrlARCHITECTURE beha OF shi_ctrl ISTYPE states IS(S0,S1,S2);SIGNAL state:states;SIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINX<=A&B;PROCESS(x,state)BEGINIF rising_edge(clk) THENCASE state ISWHEN S0=>Z<='0';Y<='0';IF(X="01")THENstate<=s1;ELSIF(X="10")THENstate<=s2;ELSEstate<=s0;END IF;WHEN S1=>Z<='0';Y<='0';IF(X="01")THENstate<=s2;ELSIF(X="10")THENstate<=S0;Z<='1';Y<='0';ELSEstate<=s1;END IF;WHEN S2=>Z<='0';Y<='0';IF(X="01")THENstate<=S0;Z<='1';Y<='0';ELSIF(X="10")THENstate<=s0;Z<='1';Y<='1';ELSEstate<=s2;END IF;END CASE;END IF;END PROCESS;END beha;c上面程序中,A、B分别为一元硬币和五角硬币驱动信号,Z为矿泉水输出信号,Y为找钱输出信号。
文章编号:1002-0411(2000)01-047-09机床控制流程的一种有限状态机表达方法雷为民1 于 东2 李本忍2 滕弘飞1(1.大连理工大学机械工程系 116024; 2.中国科学院沈阳计算技术研究所,高档数控国家工程研究中心 110003)摘 要:面向过程的IEC-1131-3规范已难以满足机床控制流程表达新的应用需求,为了更好地支持控制器开放式体系结构设计和面向对象系统实现技术,我们扩展了有限状态机的基本概念,提出了一种机床控制流程表达的分层式有限状态机(FSM )方法.本文首先对分层式FSM 的组织方法、特性、形式定义等进行了详细讨论;为了进一步阐明这种方法的表达特性,我们介绍了一种分层式FSM 表达的机床控制器总体结构,并讨论了这种结构下的开放性设计表达和系统实现等相关问题.a关键词:机床控制器,控制流程表达,分层式有限状态机,I EC-1131-3规范中图分类号:T P 391 文献标识码:B1 引言在机床控制系统的规划、设计与实现中,控制流程的设计表达是一个重要的环节,有效的设计表达不仅可以简化系统的复杂度、促进系统的快速实现、充分体现系统体系结构思想,而且可以通过这种形式主义的表达来验证控制流程的合理性,排除控制系统设计中的各种错误.目前在一般控制系统设计中,比较常见的控制流程表达工具是IEC -1131-3规范[2],在机床控制器设计(特别是控制器中的PLC 设计)中,IEC-1131-3具有广泛的应用基础. 机床控制系统正在经历着新的技术变革,支持开放式体系结构的系统设计和面向对象的系统实现已逐渐成为机床控制器设计和实现技术的主流.IEC-1131-3规范以结构化、模块化过程分析方法为基础,是一种面向过程的表达工具,已难以适应这种新的应用需求. 有限状态机(Finite State M achine,简称FSM )又称有限自动机(Finite Automaton,FA ),是一种具有离散输入输出系统的数学模型,它以一种“事件驱动”的方式工作,可以通过事件驱动下系统状态间的转移,来表达一个控制系统的控制流程. 有限状态机和面向对象程序设计具有相似的工作方式,其基本特性又非常适合表达动态控制行为,我们认为在有限状态机的概念基础上加以扩展,可有效地表达新型机床控制器的控制流程设计.2 有限状态机基本概念有限状态机是由状态的有穷集和状态之间的转移关系组成.其形式定义如下. 定义 FSM 是一个五元组,M =(Q ,2,D ,q 0,F ),其中 (1)Q 为有穷状态集;第29卷第1期2000年2月 信息与控制Infor mation and Contr o l V ol.29,N o.1 Feb.,2000a 收稿日期:1999-04-19 基金项目:中国科学院机器人学开放实验室基金课题(A970111)(2)2有穷的事件集;(3)D 为从Q ×2到Q 上的映射或称转移函数;(4)q 0在Q 中,它是初始状态;(5)F A Q 为终止状态集.FSM 具有状态转移表、状态转移图等多种描述方式.状态转移图是一种形象、直观的FSM 描述方式,它是一个有向图,有向图中的顶点对应于FSM 中的状态;顶点间的路径对应于FSM 中与顶点对应的状态间由于某特定事件e (e ∈2)引起的状态转移;FSM 中初始状态和所有的终止状态q f 1…q f n (q f *∈F )通常对应于具有特定标记的顶点.例如,下列有限状态机描述的是机床控制中某一局部的控制流程.其FSM 的完全表示为:FSM =(Q ,2,D ,q 0,F )其中,Q ={系统就绪,轴运动,刀具破损处理,系统停机}2={加工请求,轴进给,进给完成,刀具破损,人工换刀,刀具就绪,加工结束}D 包括:D (系统就绪,加工请求)=系统就绪;D (系统就绪,轴进给)=轴运动;D (轴运动,进给完成)=系统就绪;D (轴运动,刀具破损)=刀具破损处理;D (刀具破损处理,刀具就绪)=系统就绪;D (刀具破损处理,人工换刀)=系统停机;D (系统就绪,加工结束)=系统停机;q 0=系统就绪F ={系统停机} 其对应的状态转移图见图1.图1 机床控制中某一局部的F SM 状态转移图示例3 用于机床控制流程表达的分层式FSM3.1 机床控制的基本特征 机床控制的特征直接影响控制流程的表达.根据FSM 的表达特性,进行控制流程的系统规划时,要充分地考虑这些特征. 1)复杂的串级控制 机床控制被认为是一种复杂的串级控制,其主要控制流程通常被划分为三个层次:工艺控制、运动控制/逻辑控制、伺服控制/设备控制.三个层次的控制流之间同时具有顺序和并发的关系. 2)多闭环系统 机床控制通常具有多级反馈处理机制,是一种典型的多闭环系统. 3)控制策略的开放性需求48信 息 与 控 制29卷 随着开放式体系结构的发展,控制策略的可替换性、可修改性,也逐渐成为机床控制系统的基本特征.这要求FSM 表达的控制流程具有较强的“可配置性”或者是一种“自生成系统”. 4)智能控制支持需求 智能控制技术正逐渐渗透到机床控制中,所以对机床控制流程的表达要考虑对模糊控制、神经网络控制等控制策略的支持.3.2 分层式FSM 及其组织方法 根据机床控制的基本特征,我们提出一种分层式FSM 表达方法.分层式FSM 的组织类似于软件工程中结构化分析方法中的数据流图(DFD ).其组织原则是:1)状态和层次的划分机床控制是一个复杂控制系统,其控制行为可划分为多个相互协作的控制功能群,每个控制功能群又被划分为多个相互协作的控制功能子群,不能被细分的控制功能子群称为控制基元.见图2示意.图2 机床复杂控制系统控制功能划分示意图 在分层式FSM 中,每个控制基元对应着一个FSM 状态;多个控制基元组成的控制功能子群分别对应着一个FSM 及一个上层的FSM 状态;控制功能(子)群间的层次和逻辑关系构成了相应FSM 间的层次和逻辑关系.这样,机床控制系统的控制流程可由这样一组FSM 来表达:{一个顶层FSM ,若干个一层FSM ,若干个二层FSM ,…}.图3示意了分层式FSM 组织中的状态和层次关系.图3 分层式FSM 组织中的状态和层次关系示意图2)事件 FSM 通过对事件的响应、实现其状态转移,从而表达控制流程的演变.由于机床控制流程491期雷为民等:机床控制流程的一种有限状态机表达方法的三个层次间同时具有顺序和并发的关系,分层式FSM 采用一种支持并发的顺序事件模型.事件按照其来源,被分为两类:系统事件和用户事件.与反馈相关的事件通常被设定为系统事件(或称外部事件),其他事件均被设定为用户事件(或称内部事件),在系统实现中,系统事件和用户事件被分别组织成两个事件队列,在并发FSM 中,对系统事件的响应通常具有更高的优先级. 为了更形象地表达分层式FSM 的层次关系,根据事件对应的目标状态的形式,事件被分为两类:分枝事件和叶子事件,如果事件对应的目标状态可被分解为一个低层FSM ,则称该事件为分枝事件,如果目标状态是不可再分解的,则称这个事件为叶子事件. 在机床控制流程的FSM 表达中,事件是一个二元组(e ,a ),“e ”代表事件的触发器,“a ”是图4 机床控制的分层式FSM 表达中的事件指执行一种控制行为.见图4示例. *这里e =一次插补周期完成; A =某个函数():其主要功能是:将对各运动轴插补结果或生成的运动控制程序传递给运动控制部件. *这个事件是一个分枝事件. *这个事件是一个用户事件.3.3 事件、状态和层次间的协调 任何分枝事件总是与一个代表同一事件的叶子事件对应,分枝事件只是这个叶子事件在上层FSM 中的表达形式. 同一FSM 中状态间的转移是由事件驱动的,同一层次的不同FSM 之间通常没有通信问题,如果这些不同FSM 中的状态所表达的控制流具有并发的特性,它们之间的同步是由上层同一FSM 中的状态来协调的. 在机床控制流程的分层式FSM 表达中,一般总是上层FSM 协调其相关的下层FSM 或状态间的控制行为;另外,机床逻辑控制FSM 也起着重要的协调作用,机床逻辑控制FSM 通过其底层FSM 向其他FSM 发送事件并收集状态,来有效地协调系统的控制流程. 上层FSM 对下层FSM 间的协调,引发了上下层FSM 间的通信问题.为了支持这种通信,在分层式FSM 的实现中,每个FSM 都有一组通信端口,同层的不同FSM 间共享通信端口,但同时只能有一个FSM 响应某一特定事件.为了引用一个低层FSM ,上层FSM 发送一个事件到下层FSM 的通信端口;当下层FSM 到达终止状态时,发送一个终止通知事件到上层FSM 的通信端口. 图5中,2层FSM 是1层FSM 中“轴控制”状态对应的低层FSM ,两层FSM 间的通信是通过相应的通信端口和一个公共的通信对象完成的.3.4 FSM 的管理属性 分层式FSM 由位于不同层次相互关联的多个FSM 组成,其中,每个FSM 都有一组独立的管理属性,包括: (1)带有层次和关联信息的唯一标识 任何FSM 状态都有一个全局性的ID ,ID 是一个分节的字串,如“2.3.1”等,其含义为: 第一节为‘2’,表示在顶层FSM 中与状态2相对应;第二节为‘3’,表示在相应的1层FSM 中与状态3相对应;末节为‘1’,表示在本FSM 中,状态编号为‘1’.50信 息 与 控 制29卷 图5 不同层次FSM 间的通信机制示意图 FSM 的标识和与其对应的上层FSM 中的状态的ID 是完全一致的. (2)可替换性标志 一个布尔类型值.它标识在控制器生成时,这个FSM 是否可被具有同样功能接口的其他FSM 所替换. (3)可删除性标志 一个布尔类型值.它标识在控制器生成时,这个FSM 是否可被删除.如果这个FSM 是系统控制流程中的“关键路径”,那么它是不可删除的. (4)外部引用事件集合 引用这个FSM 的所有事件的集合.它和终止事件集合一起构成了FSM 功能接口. (5)FSM 终止事件集合 如果一个事件触发的转移函数的目标状态不在这个FSM 之内,我们称这个事件为FSM 终止事件.终止事件集合是FSM 功能接口的一部分. 管理属性的定义,使得这种改进的FSM 不仅可以更灵活地表达机床控制流程,而且是控制器可配置性设计的基础.3.5 分层式FSM 的形式定义 分层式FSM 是根据机床控制系统的基本特征和控制流程表达的需求,在传统有限状态机概念的基础上扩展而成的一种有限状态机系统.按照我们对其基本特征的讨论,其形式定义可用巴克斯范式表示为: 分层式FSM ::=<多层FSM >+<全局通信对象> <多层FSM >::=<单层FSM >+<单层FSM 通信接口>+[{<单层FSM >+<单层FSM 通信接口>}] <单层FSM >::=<单元FSM >+[{<单元FSM >}] <单元FSM >::=<FSM >+<管理属性集> <FSM > ::=<状态集>+<事件集>+<转移函数集>+<初始状态>+<结束状态集> <状态集> ::=<状态>+[{<状态>}] <状态> ::=<单元FSM >û<元状态>511期雷为民等:机床控制流程的一种有限状态机表达方法4 分层式FSM 表达机床控制流程的几个相关问题4.1 控制器总体结构 控制流程的设计表达要直接面向系统的实现,根据机床控制流程的特点,我们设计的控制器总体结构可表达为:见图6.图6 分层式FSM 表达的机床控制器总体结构 在这个设计表达中,控制器由多个可以并发的任务组成,每个任务包含一组耦合较强的控制流程,完成一组特定的控制功能.在图6中,加工控制任务对应着顶层FSM 表达;其他任务分别对应着某个FSM 状态,并一起构成了一层FSM 表达;一层FSM 中的状态转移,是通过任务间的通信(全局通信对象,可用共享内存等机制实现)实现的.4.2 控制器的开放性设计表达 控制器的开放性设计表达主要体现在两个方面. (1)任务FSM 的引入,使得控制系统具有增强的可配置性. 我们注意到在图6中,每个任务中都包含两种FSM :一个“任务FSM ”;一个或两个“功能FSM ”.这里,“任务FSM ”的主要功能是管理本任务中“功能FSM ”的生成、配置和执行.其状态转移图见图7.图7 任务F SM 的状态转移图52信 息 与 控 制29卷 任务FSM 在配置状态下,将根据用户需求和机床特性组合相应的功能FSM 部件,并对其进行各种参数配置. (2)FSM 管理属性是可配置性表达的基础 机床控制流程的FSM 表达中,所有的FSM 被称为系统元件,如果两个元件具有同样的功能接口,并且其管理属性中的可替换性标志均为真,则这两个元件被称为是“相似”的.在控制生成和配置时,相似的系统元件是可以被相互替换的,这将有助于控制策略的开放性实现.如,对于“轴控制FSM ”之下的“速度调节FSM ”,可以有“基于PID 的速度调节FSM ”、“基于模糊控制的速度调节FSM ”、“基于用户定制的速度调节FSM ”等多个相似的系统元件.对相似系统元件的选定并不影响控制系统的整体结构,具有相似性的系统元件所表达的控制流程粒度越小,控制系统的开放程度将越高.另外,FSM 的可删除性,直接支持系统为适应机床规模特性而进行的参数调节. FSM 的功能接口、相似性判断、可替换性判断、可删除性判断等均依赖于FSM 管理属性中的信息,所以说,FSM 管理属性是系统可配置性表达的基础.4.3 设计表达与系统实现 有限状态机的基本工作方式是“事件驱动”,这和面向对象程序设计有本质的一致性.分层式FSM 设计是直接面向系统实现的,将系统设计转化为系统的面向对象实现时,可采用下列规则: (1)相似的FSM 系统元件的共性被抽象为类,其特性体现在类的派生; (2)FSM 的管理属性是类的属性; (3)分层式FSM 中的任何一个FSM (不论层次)均对应一个具体的对象; (4)所有的FSM 状态均对应一个具体的对象,状态对象是其相应FSM 对象的公有成员; (5)一个FSM 和其对应的上层FSM 状态对应着同一个对象; (6)同层FSM 通信接口是同层FSM 类的静态成员函数; (7)系统通信对象类是所有FSM 类的友元; (8)事件的触发对应着源状态对象类成员函数,事件的响应对应着目标状态对象类成员函数; (9)实现系统事件队列和用户事件队列,由一个队列管理对象进行管理; (10)FSM 状态转移函数是通过事件触发、事件管理、事件响应所对应的三个不同的对象成员函数实现的.5 评价和结论机床控制流程的分层式FSM 表达设计,是我们BS-2000软件数控[1]研究项目的一部分,这个研究项目的主要内容包括两个方面:(1)完全用PC 应用软件的形式实现机床控制中的伺服控制;(2)机床控制策略的用户开放性实现方法.在项目研究中我们发现,机床控制流程的表达是一个非常重要的问题,有效的设计表达,不仅有助于我们迅速掌握机床控制流程的主要特征,抓住系统实现的主要问题,有效地支持系统的开放式体系结构,而且可以简化系统的复杂程度,有利于控制原型系统的快速实现. IEC-1131-3规范是由国际电工协会(International Electr otechnical Comm issio n)于1993年推出的一个控制流程表达工具,,这个规范实际上是一种主要面向可编程控制器(PLC)的程531期雷为民等:机床控制流程的一种有限状态机表达方法54信 息 与 控 制29卷 序设计语言,其主要内容包括用于表达程序结构的有序功能图(Sequential Functio n Char ts, SFC)及四种操作语言:指令列表(Instr uction List,IL)、梯形图(Ladder Diagr am,LD)、功能块图(Function Block Diagram,FBD)和结构化文本(Structur ed T ex t,ST).IEC-1131-3规范具有较强的流程描述能力,并且支持系统的可配置性设计,在控制系统设计中获得了广泛的应用. 但随着相关技术的进步,IEC-1131-3规范的局限性已阻碍了它的深入应用.其局限性主要表现在: (1)与面向对象程序设计具有较大的语义差距 IEC-1131-3规范强调面向过程的结构化设计,是一种过程程序设计语言,与面向对象语言具有较大的语义差距.而目前,面向对象已成为控制系统实现的主流技术,这种较大的语义差距使得控制系统的设计和实现难以统一,增加了系统实现的难度. (2)可配置性设计支持不够充分 IEC-1131-3规范通过支持结构化控制模块、变量参数方式等支持系统的可配置性设计,随着开放性需求的增长,可配置性设计要求支持“控制策略的用户定制”等更深入的开放性, IEC-1131-3规范已难以满足这样的需求. 为了克服上述局限性,我们在有限状态机概念的基础上加以扩展,并借用了软件工程中数据流图、软件数控参考模型[1]中的管理层面等分析方法和基本思想,提出了用以描述机床控制流程的分层式FSM方法. 有限状态机“事件驱动”的工作方式与面向对象程序设计的“消息驱动”是完全一致的,它们有非常相似的语义.有限状态机基于“事件驱动”的“状态转移”也非常适合动态控制流程的表达,分层式FSM进一步增强了这种表达能力,不仅通过层次划分和相关通信机制的引入,支持复杂控制流程的表达,而且通过在FSM上附加管理属性,更充分地支持机床控制系统的可配置性设计. 我们采用分层式FSM方法设计了BS-2000机床控制器的部分控制流程(运动控制的一部分),并用C++进行了系统实现,可以认为这是一种非常有效的机床控制流程表达方法.在实验中我们还发现,分层式FSM虽然采用一种支持并发的顺序事件模型,但对复杂系统中并发控制流称的表达并不是特别有效,这是这种方法有待改进的的地方.参 考 文 献1 雷为民,乔建中,李本忍,滕弘飞.关于软件数控的一些基本构想.小型微型计算机系统,1999,20(2):81~872 PLC Open Ass ociation.T he IEC1131-3s tandard,http://ww /s tddscr.htm3 Chito Shiu,M ichael J W ashbu rn,Shige W ang,Chinya Ravishanker.Specifying Reconfigurable C on tr ol Flow for Open Arch itecture Controllers.Proc.1998Jap an-U SA.Sympos ium on Flexible Automation,Ohtsu,Japan,July1998:659~6664 S K Birla.S oftw ar e M odelin g for Reconfigur able M achine T ool Controllers.Ph.D.Dis ser tation,T he University of M ichigan,Ann Arb or,M I,M ay19975 邹海明.周 新.形式语言、自动机和语法分析.武汉:华中工学院出版社,19856 Har el D.State Charts:A Vis ual Formalis m for Com plex Sys tems.Scien ce of Computer Programming,1987,8(3):231~274(下转第75页)ral Network s,1995,6(1):144~1553 Goldberg D E .Genetic Algorithms in Search ,Optim ization &M achine Learn ing .Addison Wesley ,1989TRAINING OF DIAGONAL RECURRENT NEURAL NETWORKPREDICTIVE CONTROLLER USING GENETIC ALGORITHMSZHANG A -bu HU ANG Wei -bin(De p t .of A utomation ,X iamen Univ er sity ,X iamen 361005)Abstract :T his paper pro po ses a neur al netw or k predictiv e contr ol scheme based on g eneralized predic-tiv e contr ol (GP C).T he predictiv e contr oller is made of diag onal r ecurr ent neur al netw o rk predictiv e con-tr oller (DR N PC)and feed for w ard neur al netwo r k steady-stat e co mpensato r (F N C).T wo kinds o f neur al net-wo rks ar e trained using genetic alg or ithms.T he sim ulation results show sa tosfacto ry per for mance o f t he neu-ral netw or k pr edict ive co nt ro ller for no nlinear plants w ith dead time .Key words :gener alized predictiv e contr ol,neural netw or k,genetic alg or ithm作者简介张阿卜(1946-),男,副教授.研究领域为预测控制,模糊控制,神经网络,遗传算法等.黄伟斌(1974-),男,硕士.研究领域为神经网络,遗传算法及其应用等.(上接第54页)A HIERARCHICAL FSM METHOD FOR CONTROLFLOW OF MACHINE TOOLLEI Wei -min 1 YU Dong 2 LI Ben -ren 2 T ENG Hong -fei1 (1.Dalian Univ ersity of T echnology 116024; 2.S henyang I nstitute of Comp uting Tec hnology ,Chinese A cademy o f S ciences 110003)Abstract :T he pro cedure -or iented IEC-1131-3specificatio n has poo r capability to suppo rt the open ar chi-tecture desig n and object -or iented implementation in r epr esent atio n of the co nt ro l flo w o f machine too l .In or -der to meet t he new r equir ement ,w e ex tended the co ncept of Finite St ate M achine ,and pr oposed a new hier -archical FSM metho d for r epresenting the co ntro l flow o f ma chine too l.I n this paper ,the o rg anizatio n,pr op-erties and for mal definitio n of hier archical FSM are discussed in det ail.A kind of g ener al structur e based on hier archical F SM r epresentatio n of machine to ol co ntr o ller is descr ibed .M or eov er ,the pr oblems r elated t o repr esenting o penness and sy stem implement atio n a re also discussed.Keywords :machine to ol co ntro ller ,co nt ro l flow r epr esentatio n,hier ar chical F SM ,IEC-1131-3specifi-ca tio n作者简介雷为民(1969-),男,助理研究员,博士生.研究方向为数控技术、计算机应用、智能控制.751期张阿卜等:采用遗传算法训练对角递归神经网络预测控制器。