分享

PLC状态机编程-如何在STL中使用状态机

 龙之吻6iinxl8c 2019-09-20

搞PLC编程多年,一直不知道状态机,学习matlab后,发现状态机编程异常方便,过去很多编程时的疑惑豁然开朗起来。今天跟大家分享一下如何在STL中使用状态机。

下面是用状态机描述的控制任务。

stl1

这个状态机较简单,那如何在STL中把它描述出来呢? 这里我们选择用JL指令。。。我就直接上代码了,一看便知。但JL程序只能用来表示单步状态,遇到并行状态就处理不了了。。下次我们用ST语言来描述更复杂的状态机。。

       L     #state     //  把#state的值载入累加器
       JL    rng1      // 如果累加器的值,大于4,也就是说,跳转分支不包含下面的分支,就跳转到rng1,说明出错。。

                         //  其实这条语句相当于 else 语句
       JU    st0    // 当累加器的值为0时, 走这个分支
       JU    st1    // 当累加器的值为1时, 走这个分支
       JU    st2    // 当累加器的值为2时, 走这个分支
       JU    st3    // 当累加器的值为3时, 走这个分支
       JU    st4    // 当累加器的值为4时, 走这个分支

rng1: SET
       S     #error
       BEU

st0:  L     1                           // 这个 1 就是下个状态。
       A     #transition01         // 这个转移条件满足,状态将由state0,转移到 state1,下面的流程类似。。。
       JC    next
       JU    ovr

st1:  L     2
       A     #transition12
       JC    next

      L     3
       A     #transition13
       JC    next
       JU    ovr

st2:  L     4
       A     #transition24
       JC    next
       JU    ovr

st3:  L     1
       A     #transition31
       JC    next
       JU    ovr

st4:  L     3
       A     #transition43
       JC    next
       JU    ovr

next: T     #state
ovr:  NOP 0

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多