• 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

  • 相关阅读:
    Json-server 模拟后端接口
    你有没有用代码写过暑假作业
    京东运营数据分析:2023年8月京东饮料行业品牌销售排行榜
    Ubuntu22.04.4 - vim - 笔记
    Java#数据结构----1
    常用的Linux系统的IO函数
    地理数据可视化的神奇组合:Python和Geopandas
    win11无法加载文件,因为在此系统上禁止运行脚本
    基于深度神经网络的中药材识别
    C/C++ 指针小笔记
  • 原文地址:https://blog.csdn.net/m0_46143730/article/details/125488089