而是到原点后才停下。而是到原点后才打住。

俺们今天简短介绍RS指令在状态机中怎么处理的。有些设备以下终止按钮后,没有及时平息,而是到原点后才平息,那么这种状态于状态机中如何表示为?我们以案例说明的,下面是咱的操纵描述。

咱们今天大概介绍RS指令在状态机中怎么处理的。有些设备以下已按钮后,没有立刻平息,而是到原点后才停止,那么这种情形在状态机中如何表示为?我们因为案例说明的,下面是我们的主宰描述。

决定描述

小车从左位开始,从左为右侧下,到达右位后停5秒,然后由右侧为左运行,到达左位后停下3s,继续朝着右侧运行。当按照下终止按钮后,小车不是当下停止,而是到左位后才停。我们而左边的就信号位isOnLeftPos,右边的好信号呢isOnRightPos,向左的运行动作为GoLeftPos,向右侧的运行动作为GoRightPos,启动停按钮分别吗start和stop。

于如此的控制任务,我们该怎么发吗?难点在处理stop按钮信号,小车运行中,按下stop按钮,不是即时停止,而是只要到达左位后才停下。这里我们之所以了状态机的彼此结构。Signals状态处理stop信号,Logic状态处理逻辑动作。

图片 1

旋即等同摆图是次的完好,图右的OnRightPos和OnLeftPos是便于我们着眼左右各项的状态,实际应用被只是因非用输出。

图片 2

当即张图是事实上的控制。左边处理stop信号,右边处理小车控制逻辑。另外这里我们如果验证一下命名规则:大写起来的凡借助各级状态,比如OnLeftPos,Signals等等,小写起来的是基准,比如isOnRightPos,
stop.
假设小车的当下状态处于GoRightPos,按下stop按钮,Stop的子状态Set就激活,那么〔in(Signals.Stop.Set)]规范满足,但当下状态不以OnLeftPos,没有发生转换,此时小车继续运行,等小车到达OnLeftPos状态时,OnLeftPos状态才开变到Idle状态,此时〔in(Logic.Idle)]准满足,Stop的子状态从Set转移至Reset。

支配描述

小车从左位开始,从错误望右侧下,到达右位后停5秒,然后从右边为左运行,到达左位后终止3s,继续往右侧运行。当随下停止按钮后,小车不是立即平息,而是到左位后才停下。我们若左边的得信号位isOnLeftPos,右边的形成信号吗isOnRightPos,向左的运行动作为GoLeftPos,向右侧的运行动作为GoRightPos,启动停按钮分别吗start和stop。

对于这么的控制任务,我们欠怎么发吗?难点在处理stop按钮信号,小车运行面临,按下stop按钮,不是就停止,而是只要到左位后才停止。这里我们因此了状态机的竞相结构。Signals状态处理stop信号,Logic状态处理逻辑动作。

图片 3

立刻同摆设图是次的整,图右的OnRightPos和OnLeftPos是惠及我们着眼左右号的状态,实际行使着而坐不用输出。

图片 4

旋即张图是实际的主宰。左边处理stop信号,右边处理小车控制逻辑。另外这里我们要证明一下命名规则:大写起来的凡因各级状态,比如OnLeftPos,Signals等等,小写起来的是规则,比如isOnRightPos,
stop.
假设小车的时状态处于GoRightPos,按下stop按钮,Stop的子状态Set就激活,那么〔in(Signals.Stop.Set)]原则满足,但当下状态不以OnLeftPos,没有生转换,此时小车继续运行,等小车到达OnLeftPos状态时,OnLeftPos状态才起来变到Idle状态,此时〔in(Logic.Idle)]极满足,Stop的子状态从Set转移至Reset。

控制程序

这次的主宰次和以前有些有例外,用个相互状态处理stop信号,在首先篇博客中,我们啊用一个彼此状态处理上升沿问题。整个程序多矣平等段子case,一截描述Signals,一截描述Logic,方法与原先一样,也是比较简单的,等下次咱们在这个状态机的基本功及,介绍了历史状态后,一连勾画起程序。另外,为了有利于,我们随后便用ST语言写了。

控制程序

这次的决定程序和以前有些有差,用个相状态处理stop信号,在首先篇博客中,我们吧因此一个交互状态处理上升沿问题。整个程序多矣平等段子case,一截描述Signals,一段描述Logic,方法与以前一样,也是比较简单的,等下次我们在是状态机的根底及,介绍了历史状态后,一并写起程序。另外,为了便于,我们下便用ST语言写了。

相关文章