当前位置: 移动技术网 > IT编程>开发语言>.net > PLC状态机编程第四篇-历史状态处理

PLC状态机编程第四篇-历史状态处理

2018年01月06日  | 移动技术网IT编程  | 我要评论

热血英豪深渊迷宫,小孩磨牙,马云清华演讲

今天我们接着上次的控制任务,加入历史状态,这个任务会比较复杂,象这样的任务我们倾向于自动生成PLC程序,自己写容易出错。但为了演示,我们可以尝试一下。言归正传,下面是我们的控制任务。

控制任务

这次的任务是基于上次的,增加的一个急停按钮,当按下EMStop急停按钮后,设备马上停止,等排除故障后,希望设备从故障前一刻的状态接着运行,针对这样的任务,我们需要引入历史状态。

下面是这次任务的状态机。

Logic状态机中,多了一个Action子状态,Action状态中,包含了逻辑控制。Action状态中,多了一个H字母,它表示Action状态是历史状态,状态从Action转移到Alarm后,当再次进Action状态时,就不会从OnLeftPos默认状态开始,而是从上次离开时的状态开始。下面是SCL程序。

控制程序

有几点要注意:

  1. Logic状态中包含了一个Action状态,包含的状态用嵌套的case表达,第29行。
  2. 转移到Alarm状态后,根据需要,有些需设置false,有些不需要设置为false,看工程的需要,69-72行。
  3. 如果这里我们不需要历史状态,那么从Action状态转移到Alarm状态后,需要把curStateLogicAction的值设置为LogicActionOnLeftPos,表示从默认状态开始, 加第68行。

 

状态机稍复杂,程序写起来比较费劲。下一次我们讨论从状态机自动生成程序。

 

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网