编写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、结构简单稳定
状态机编程难的不是指令复杂,相反指令非常简单。困难的是我们对机器动作的认识和转态的划分设计上。
S