今天我们接着上次的控制任务,加入历史状态,这个任务会比较复杂,象这样的任务我们倾向于自动生成PLC程序,自己写容易出错。但为了演示,我们可以尝试一下。言归正传,下面是我们的控制任务。
这次的任务是基于上次的,增加的一个急停按钮,当按下EMStop急停按钮后,设备马上停止,等排除故障后,希望设备从故障前一刻的状态接着运行,针对这样的任务,我们需要引入历史状态。
下面是这次任务的状态机。
Logic状态机中,多了一个Action子状态,Action状态中,包含了逻辑控制。Action状态中,多了一个H字母,它表示Action状态是历史状态,状态从Action转移到Alarm后,当再次进Action状态时,就不会从OnLeftPos默认状态开始,而是从上次离开时的状态开始。下面是SCL程序。
有几点要注意:
状态机稍复杂,程序写起来比较费劲。下一次我们讨论从状态机自动生成程序。