这次我们再在前面的例子上加深一步,写个含有父状态的状态机,同时用ST语言描述。
控制描述
有一个电机,按下启动按钮后低速启动,按下加速按钮后切换成高速,按下减速按钮后再切换成低速,如果按停止按钮,直接停止。用状态机描述如下:
这个状态机我们简要说明一下。和上一篇有点不一样。包换了一个父状态running,在running里含有两个子状态runSlow和runFast,分别通过按钮speed_up、speed_down切换。前面我们讲过,只要子状态激活,它的父状态必然激活。如果父状态激活,那么也必需有一个子状态激活,这里我们设定runSlow为默认的状态,因为它的上面有个无条件转移线。
生成ST程序
我们先把需要用的变量列出来。他们都为bool型的,分别是输入变量start,stop,speedUp, speedDown, 和两个输出runSlow, runFast, 然后再加一个状态变量state,另加4个常量分别表示4个状态,stateStop, stateRunning, stateRunSlow, stateRunFast。这里我们简要讲一下变量的命名规则,写PLC程序的,变量的命名都喜欢用Pascal命名法或匈牙利命名法。尤其是匈牙利命名法,已在PC编程中被