欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于有限状态机的工控系统软件设计.docx

    • 资源ID:17754955       资源大小:21.78KB        全文页数:11页
    • 资源格式: DOCX        下载积分:15.18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15.18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于有限状态机的工控系统软件设计.docx

    基于有限状态机的工控系统软件设计ronggang导语:通过分析工控系统的特性,提出采用状态机的思想进展工控软件设计。具体阐述了高速状态机的错步问题以及控制层中状态机的状态划分问题摘要:通过分析工控系统的特性,提出采用状态机的思想进展工控软件设计。具体阐述了高速状态机的错步问题以及控制层中状态机的状态划分问题。结合详细的应用实例,给出了基于状态机的实现方法。实验说明,采用状态机的设计方法有助于准确描绘受控对象的行为,软件的强健性和可靠性得到显著进步。关键词:有限状态机工控软件控制环状态划分1.引言1.1工控软件的一般问题工控软件设计可分为基于控制环和基于实时操纵系统两大类。控制环是把各个功能模块连接成首尾相接的环状构造。其特点为任何一个功能模块都不能出现死循环,甚至循环次数过多的循环语句都应防止出现。以保证可以在实时意义上尽可能快地遍历各功能模块,进而知足实时多任务的需求。在各功能模块中一般用状态机来描绘模块所处的状态。而实时操纵系统那么可以通过一套底层机制根据优先级和各任务状态调度各功能模块。此时各功能模块就以“任务作为表现形式。但是在每个任务内部仍然为一个独立的控制环构造,仍然需要用状态机描绘。本文将结合工程理论阐述状态机在工控中的应用,给出通用模型和留意要点。1.2有限状态机有限状态机是一种重要的思想方法。从数学的角度看,它实际是一个五元组M=I,O,S,,其中I,O分别表示输入输出,S为状态向量,为次态方程:S×I->S,表示输出方程:S×I->O。有限状态机从构造体系上有层级状态机,并发状态机等。层级状态机类似于软件中的子程序调度:更高层的一个状态对应于较低层的一个状态机。这个高层的状态处于底层状态机的某个状态中。这个低层状态称为子状态。与子程序调用受到系统堆栈深度制约不一样,层级状态机可以由开发者根据控制对象的层次性运动规律任意指定深度。与子程序的目的一样,层级状态机也是为了进步控制软件的模块化程度,降低状态分析的复杂度。并发状态机侧重于描绘状态机的调度。状态机本身不能实现什么并发功能,并发的实现是通过软件调度的。假如把状态机理解成一个任务,那么就能理解并发的实现。在控制环中,一个“任务就是一个功能模块,我们只需要把多个状态机串联在环中,也就是实现了多输入多输出的并发控制。此时,多个状态机在空间上是并存的,然而却是分时调用的,调用的周期等同于控制环扫描一周的时间。不过假如CPU运算速度足够快,这个周期将会足够的快,到达“实时的程度,进而这多个状态机也就实现了“并发运行。同理,在多任务操纵系统中,“并发的实现就更轻易理解了,除了在单个任务内存在控制环的并发控制外,在任务之间也同样存在多状态机的并发运行。当然,从CPU的角度而言,只要是单核的,也就从来不存在真正的“并发,它在任何一个特定的时间点都只能处理某个特定状态机。不太多任务操纵系统却提供了一套底层机制来调度原来仅靠控制环来调度的任务。2.有限状态机在前后台信息交互中的作用工控系统一般都具有人机对话界面。其通常的操纵形式为用户进入某个页面,选取某项操纵并执行。人机对话界面通常被设定为一个独立模块。该模块软件构造为一个消息控制环。用户在硬件接口的操纵会通过接口的驱动程序封装成消息参加到专属界面模块的消息队列中。消息控制环循环扫描该队列,如有新消息那么提取并解释然后封装成新消息发往后台执行。前后台软件的接口模块负责分发界面消息到各个执行模块。消息应包括目的模块的编码,命令编码以及命令参数。前后台接口模块的软件构造多采用以下两种形式。align=center图1两种消息分发构造/align形式一的输出构造根据消息数据的目的模块编码直接分发消息到各模块中。形式二那么是根据当前系统所处的状态再分发消息到各模块中。也就是讲形式二在形式一的根底上增加了一个系统级的状态机。下面我们看看两种不同的输出构造会带来何种影响。工控软件设计者通常会碰到两种情况。一是在研发阶段,界面任务与控制任务联调时,双方均有可能出错。对于界面任务而言,有可能自身原因误发消息;而对控制任务,也有可能输出时序出错。此时需要在联调中快速定位故障,缩短研发周期。二是在产品运行中由于恶劣工况的影响,导致缓冲区数据发生异常。比方消息头的模块编码发生位翻转,那么会直接导致控制任务接收到错误的界面消息。对于形式一,假如界面消息出错那么会出现全局的混乱。比方模块1收到消息后开场输出一个控制时序,期间界面层又发来一个错误的消息,使其分发到模块2,于是模块2马上开场输出时序。这个不希望输出的时序在工控中有可能会导致灾难。而在联调时出现这种现象,那么无法立即判定到底是模块1还是界面层出的问题。但假如采用形式二那么可以屏蔽这种混乱。如下列图align=center图2不同分发构造对错误消息的处理示意图/align我们可以看到由于形式二采用全局状态机标定当前软件所处的状态,消息首先会到达相应的状态处理程序,然后才进展分发。此时分发语句可以根据当前的状态屏蔽不应该被调用的模块。即使消息出现错误,也会过滤掉,等待正确消息的到来。而且可进一步优化为当收到错误消息可以通知界面层。可见在控制软件前后台的接口层增加一个标记后台状态的全局状态机有助于增强软件的强健性。3.状态机的错步问题工控软件本质上是根据一定的逻辑条件给出有序的输出。根据输出的次序可以划分不同的状态。逻辑条件在嵌入式领域中就是用户的输入和传感器的状态。正是这些条件决定了状态的跃迁。在这里我们讨论的是根据传感器输入而建立的状态机。很明显,它的运行速度比前述系统级状态机高很多。这种状态机分布在软件的控制层中,正是它们使得受控对象可以有序准确高速的运行。对于这样高速运转的状态机,假如考虑不周全,会使其产生失步或跳步,即高速状态机中的错步现象。由于控制层的状态机的跃迁条件;于传感器信号,假如不能完全跟踪到传感器信号的变化,那么跃迁条件将被遗漏,导致状态机不能跃迁到新的状态。这就会导致失步。有两种情况会导致传感器信号的检测遗漏:一是采样频率不够高,遗漏了一些保持时间较短的信号。这可以通过硬件上进步采样频率得到解决。二是状态机设计的缺陷,详见以下例子。align=center图3出现失步的状态机/align由图3可以看出,状态1根据传感器a信号跃迁到状态2,状态2根据传感器b信号跃迁到状态3。假如b信号在a信号前发出了一个完好的脉冲,由于根据状态图在状态1时并不需要检测b信号,因此当跃迁到状态2以后,状态机就出现失步了。解决这个问题需要预先分析好a,b信号的关系。假如是b信号一定出如今a信号前,那不妨把状态1和2的条件判定对调,假如两个信号是并发关系的,那就要合并状态机1,2,把a,b信号作为跃迁到3的综合条件。因此解决失步问题的要点在于仔细考察受控对象处于此状态时所可能出现的传感器信号变化及其变化关系。在处理“输入-输出对时要留意防止状态机跳步。“输入-输出对是嵌入式领域中经常碰到的控制形式,类似于应答机制。控制层给出一个输出,使得传感器信号产生变化并反应,过一段时间后,控制对象运动完成,传感器信号恢复初态,此时控制层可以撤消原输出并给出相关处理。设计者会有意无意的把留意力放在“什么时候撤消输出,因此设计出如图4a所示的有潜伏问题的状态机。align=center图4出现跳步的状态图/align可是控制对象在收到控制层输出的驱动产生运动,传感器感悟运动并给出信号变化是需要时间的。根据图4a的状态机,很可能跳过传感器信号变化的状态,而直接到达“撤消输出的状态。结果导致控制层的输出仅仅是一瞬而过甚至是无法输出,这就是跳步。为解决跳步问题,就需要设计者仔细分析所有的“输入-输出对,把状态细分。如图4b所示,增加一个等待对象运动的新状态,确保上一状态的输出驱使对象真正运动以后才判定对象运动停顿。然而在细分状态的同时也要留意防止失步。状态分得越细,越要留意分析此状态中所有可能出现的信号变化。4.状态机在工控软件中的状态划分问题把一个状态机看作是一个动作模块,并把这些模块串联起来,就可以实现这几个动作的并发输出。假如是基于操纵系统的,状态机还可以放在不同的任务中,也可以实现并发输出。每个状态机设定一个空闲状态,当不需要其运转时让其进入该状态。同一个控制环的状态机之间的通讯可以用标志位或状态变量,不同任务的状态机可以通过一个全局的构造体交互信息,实现同步。状态机的调度并不困难,关键在于怎样根据受控对象的运动规律来划分状态机动作模块。在实际应用中,“周期性是解决问题的关键。从复杂的运动时序中归纳出带有“往复运动性质的输出,连同与其同步的其他输入输出归入一个状态机中。这样每个具有“往复运动性质的运动模态都建立一个状态机。同时,可以运用上文介绍的方法实现这几个运动模态的并发和同步控制。下面通过某型进油系统来讲明怎样划分状态机。某型进油系统分左右两路。每路由一油链,摆臂,拨动滑板组成。油链上装载多个装油模块。摆臂把模块提升到滑板,并由滑板推进到燃烧舱中,然后油链步进一次。全经过双路交替供油。供油分为低速供油和高速供油。时序如下列图,黑色横线代表动作持续时间。align=center图5供油系统低速供油时序图/alignalign=center图6供油系统高速供油时序图/align先分析低速供油的情况。可以看出油槽下降-油门关-油槽上升-油门开-滑板左或者右这几个动作是交替出现,在滑板动作完成以后,油槽又开场新一轮的动作。由于这种周期性,可以把这几个动作归入状态机A中。而油链动作是由滑板动作触发的,当滑板运动到一定位置时候油链会启动,油链的运动会持续到下一次同侧运动开场后。假如把油链运动也归入状态机A中,就打破了A的周期性,进而增加了A的状态确定复杂化。另外从运动的本质上来讲,油链运动被状态机A中的滑板运动所激发,因此把油链运动定义在另一个状态机B更为公道。B是在A运动到某个状态时所触发的,触发后,B和A就是并发运行的状态机。高速供油与低速时序的区别在于在左路状态机A的周期没有完成的情况下,右路的状态机A已经开场了。但是尽管如此,对于单路而言,油槽下降-油门关-油槽上升-油门开-滑板左或者右仍然呈现周期性。所以应该为左右两路各建立一个状态机A,也就是A1和A2。A1和A2的状态机代码是一样的,当判定油槽重新上升后马上触发相对一侧的状态机。同理对于油链运动,也应该建立B1和B2状态机。在多任务系统中,左右两路可以分别建立一个任务。把Ax和Bx归入其中一个任务中。综上所述,根据周期划分受控对象的运动,并建立相应的状态机,就可以描绘各种复杂并行的时序输出。本文结合嵌入式工控软件设计的工程理论,分析了状态机思想在软件设计中的应用。给出了状态机在嵌入式软件中前后台信息交互的通用模型;分析了高速状态机轻易出现的错步问题;最后结合某型供油系统,给出了划分状态机的周期性准那么,该准那么对于分析受控对象运动具有一定的参考价值。1.周怀得,肖传,伟郝志航.基于DSP和CPLD的智能相机系统设计与研制J.微计算机信息,2006,Vol.22,No.172.王剑,赵海燕.基于CPLD的控制器冗余设计J.微计算机信息.2005Vol.12,No.233.JamesR.ArmstrongF.GailGray:VHDLDesignRepresentationandSynthesis.ChinaMachinePress.4.赵世霞,杨丰,刘揭生.VHDL与微机接口设计。北京,清华大学出版社,2004。5.王诚,薛小刚,钟信潮.XilinxISE使用详解。北京:人民邮电出版社,2004。6.杨庆.有限状态机的设计与优化.湖北民族学院学报自然科学版,Vol.24,No.1,Mar2006.7.邬杨波,王曙光,胡建平.有限状态机的VHDL设计与优化.信息技术.VOL.28,NO.1,Jan.2004.8.李霞,王永章,梁宏斌,钟力.有限状态机在开放式数控系统中的应用J.计算机集成制造系统,2005,03:429-432.9.AlainGirault,BilungLee,andEdwardA.Lee,HierarchicalFiniteStateMachineswithMultipleConcurrencyModels,IEEETrans.Computer-AidedDesignOfIntegratedCircuitsAndSystems,Vol18,No.6,pp.742-760,June,1999.

    注意事项

    本文(基于有限状态机的工控系统软件设计.docx)为本站会员(安***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开