机器视觉之家VISIONHOME微信公众号:石鑫华视觉网

 找回密码
 注册会员
查看: 1915|回复: 5

[共享] labview的深入探索-----状态机的基本类型顺序结构(陈树学)

[复制链接]

主题

好友

12万

积分

超级版主

  • TA的每日心情
    无聊
    5 小时前
  • 签到天数: 1201 天

    [LV.10]100FPS

    发表于 2013-9-24 15:34:00 |显示全部楼层
    前文介绍了LV编程的重要概念---状态机,状态机是个基本概念或者说理论,其具体表现形式多种过样,很难具体分类,我根据个人在编程实践中的体会,归纳几种常见类型.
    ) F* L9 I: @, {  k  l
    + s1 Z- h2 L+ |$ J# O: v一、顺序结构
    6 J5 l* o8 Q/ p( t8 G
    4 E( [5 q3 J$ Q8 X$ d2 z$ ALV本身是有顺序结构的,而且有两种方式,STACKED (堆叠)和FLAT FRAME(平铺)。
    ' y1 L" N6 p6 {# C$ a: L0 N" C# z, i& K8 J
    顺序结构的状态机更象是堆叠顺序结构,不过二者的区别在于LV本身的顺序结构是强制的,无法中间退出的,而状态机的顺序结构是采用的循环扫描的方式.我举一个例子来说明一下:& J* a& z" Z& Z* m! g
    , w0 a5 Q7 q* p$ _9 G' e7 {/ G
    一个加工零件的程序,过程如下:2 _  t& E: G* _2 K% T

    2 v# S( O- T! n) X$ V. a& h等待启动按钮--->主轴启动--->滑台快进---->滑台工作进给--->终点延时--->滑台快速返回原位-------->等待启动按钮(下一次循环)
    9 X& a% f% }! |" D3 D7 E
    ' S. E. R7 P, W6 N# c( k) y5 v这里的启动按钮可以是界面上的按钮也可以是操作台上的按钮.用普通顺序结构应该是(我们用平铺更容易理解)
    / A1 `  y1 k8 i% C# `% ]5 d0 i8 d# b

    7 V5 K2 `$ l6 z1 a0 V( Z" D我们注意到,每个动作(FRAME)内部都是一个循环结构,需要等待一定条件后,如果条件满足,转入下一个FRAME,我们没有任何办法改变它,比如我们有一个急停按钮,则需要在每一个FRAME中检测急停,如果急停生效,退出本FRAME,转入下一个FRAME,依然要判断急停,直到所有的FRAME都完成才能退出,# v; E( ^% }9 |8 |! N2 r
    在这个过程中,外层循环需要所有动作完成后才执行下一循环,对它改造一下,就可以形成顺序状态机结构.
    + f5 n( k- l1 S8 l& d! _4 B! {, W
    我曾经提到过,严格类型的枚举是状态机的核心要素,我们先构造一个严格类型的枚举.枚举变量有一个特点,当最后的元素执行加一操作时返回第一个元素.
    0 N, \7 s4 o: a- G! `
    & D3 S7 \! a4 f- m, z- @9 e& t
    ' b( X3 v% R) y& c4 O) c
    3 j4 \, [8 i$ W这个状态机的功能和上面的顺序结构完成的功能是相同的,区别在于每个CASE不存在循环等待了,, U- b; [, d) {$ p. h, [8 P

    " @( Z2 P5 G6 G8 O' w. q$ _6 _. L) Q! M整个循环过程都是在外层循环中实现的,外层循环不断地更新,如果转换条件(事件未发生),下一次循环仍然执行前一个CASE(状态不变),如果转换条件满足(事件发生),采取加一的动作(ACTION),转入下一个状态.7 Y2 h0 B& r0 _( @  g! Z
    , w% w" H3 G4 K! I
    这样做和上面的顺序结构比较,好处是显而易见的,整个过程只有一个循环,而上面的顺序结构实际每个FRAME都是一个循环,这样,如果有急停按钮,我们可以在CASE外面检测急停,如果急停,可以马上停止循环,而在顺序结构中,需要在每个FRAME检测,并逐个退出.1 `  H) v6 Y8 g: }" k/ y6 C2 U

    8 r) L* b) p6 b' M5 ]# m' M# _- P顺序结构的状态机是非常简单的,但是实际控制中又是比较常见的,后续我将介绍其他类型的状态机; u6 U: ~+ v; {- K# g9 V: y

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册会员

    x
    回复

    使用道具 举报

    主题

    好友

    1万

    积分

    版主

  • TA的每日心情
    开心
    2015-3-26 16:24
  • 签到天数: 161 天

    [LV.7]70FPS

    发表于 2013-9-24 18:18:59 |显示全部楼层
    回复

    使用道具 举报

    主题

    好友

    5871

    积分

    白金会员

  • TA的每日心情
    擦汗
    2018-5-14 06:52
  • 签到天数: 268 天

    [LV.8]80PFS

    发表于 2015-6-4 06:07:54 |显示全部楼层
    回复

    使用道具 举报

    主题

    好友

    5871

    积分

    白金会员

  • TA的每日心情
    擦汗
    2018-5-14 06:52
  • 签到天数: 268 天

    [LV.8]80PFS

    发表于 2015-6-8 19:01:37 |显示全部楼层
    回复

    使用道具 举报

    主题

    好友

    54

    积分

    注册会员

  • TA的每日心情
    难过
    2016-4-25 08:13
  • 签到天数: 1 天

    [LV.1]10FPS

    发表于 2016-4-25 08:23:07 |显示全部楼层
    回复

    使用道具 举报

    主题

    好友

    6345

    积分

    白金会员

  • TA的每日心情
    开心
    昨天 21:33
  • 签到天数: 330 天

    [LV.8]80PFS

    发表于 2017-3-6 22:14:35 |显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    淘宝机器视觉商城

    Archiver|手机版|小黑屋|视觉之家|东莞市华动智能科技有限公司 ( 粤ICP备17078359号-1 )|网站地图|申请友情链接

    GMT+8, 2018-5-22 15:40

    Powered by shixinhua.com X3.2 Licensed

    © 2012-2018 VISIONHOME.CN 浏览量:

    快速回复 返回顶部 返回列表