• PLC面向对象编程系列之如何设计分解状态机(FSM)的状态


    编写PLC控制机器动作类程序时,当分支比较少的时候我们使用if else语句解决,当分支比较多的时候,我们要使用CASE,END_CASE语句解决,针对分支的复杂程度选择合适的程序解决。当分支过多时,用 IF ELSE 处理会不太方便,博途和CODESYS平台都支持IF ELSE 和CASE语句。这里简单的说下他们的细微区别,博途的IF  END_IF结束需要加分号;,CODESYS里的ST语言不需要加分号;。在讲接下来的问题时,我们先回顾下状态机模型。

    状态机介绍

    有限状态机(Finite-State Machine,FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。状态机是一种思想方法,它不单单是电路的描述工具。在控制系统流程的设计中等同于IF语句和CASE语句,但是由于在某些情况下,状态的种类多且复杂,各种状态跳转起来非常麻烦。所以一般利用状态机设计是一种简单可靠便捷的方法。

    在设计状态机时,最好能够满足以下要求:

    1、通用的设计方法,针对简单或复杂的状态机设计都能满足

    2、步骤清晰易懂,每步只考虑一个问题(这点非常重要)

    3、状态机代码严谨规范,不容易出错

    4、结构简单稳定

    状态机编程难的不是指令复杂,相反指令非常简单。困难的是我们对机器动作的认识和转态的划分设计上。

    1、简单状态转移

    S

  • 相关阅读:
    JSX 介绍
    Fashion MNIST与分类算法
    全志R128休眠流程前期卡住问题定位思路
    flink 事件处理 CEP
    一个软件,解决全能电子地图制作
    万能的python:实用小功能
    跨境电商如何更好地备战销售旺季?
    Windows系统ping命令的c++实现
    ms17-010(永恒之蓝)漏洞复现
    tomcat springboot war包 部署
  • 原文地址:https://blog.csdn.net/m0_46143730/article/details/125488089