西门子博途编程 - 另类步进法

前面我们写了《PLC状态机编程第二篇-负载均衡》这篇博客,用的RS指令来表达各步状态, 今天呢我们用MOVE指令来表示各状态, 最后看看两种办法的优劣。任务还是描述的那个状态机。

程序比较简单, 直接上程序了。

OB

FB_Inter

这里声明了一个currentStep变量来存储当前状态, 用IDLE, PUMP_A等表示个状态常量。

FB

 

这里我们看到, 和上次的程序略有不同, 加了auto,利用auto的上升沿和下降沿初始化FB块, 保证在刚启动或打手动时,把相关变量置0, 注意在EN端不可加任何条件, 否则无法初始化。另外,步的转移是通过move指令设置完成的。和以前的方法比起来,少了复位条件。对于单分支流程,简单不少,但如果状态机中有多个并行分支,那就得新建多个状态变量, 以存储其它分支的状态,

相比和使用RS指令的状态机, 没有太大的优势。但有些PLC中没有RS指令, 比如AB,只有分开的latch和unlatch, 一般就用这种风格的编程方法。

posted @ 2017-09-17 19:23  丁丁学习笔记  阅读(2996)  评论(0编辑  收藏  举报