用摩尔语义学建模红绿灯
这个例子展示了如何使用摩尔语义为红绿灯建模。摩尔图只计算状态的输出,而不是转换的输出。有关更多信息,请参见摩尔图的设计考虑.
摩尔交通灯的逻辑
在本例中,红绿灯模型包含一个名为Light_Controller的摩尔图,它在五种交通状态下运行。每个状态表示交通灯在南北和东西两个相反方向的颜色,以及当前颜色的持续时间。每个状态的名称代表了从南北方向看光的运行情况。
这个图表使用时间逻辑来调节状态转换。的后
操作符实现一个倒计时计时器,当进入源状态时初始化。由于东西方向的交通量较大,缺省情况下,东西方向的绿灯时间比南北方向的绿灯时间长。东西方向的绿灯至少会亮20个钟,但只要南北方向没有车辆到达,它就可以保持绿灯。一个传感器可以探测到南北方向是否有汽车在红灯前等待。如果是这样,交通灯将在南北方向变为绿色,以保持车辆通行。
Light_Controller图表的行为类似于摩尔机,因为它在转换到新状态之前根据当前状态更新输出:
停止
-交通灯是红灯代表南北,绿灯代表东西。
设置输出
日元=红
(南北)基于当前状态。设置输出
y2 =绿色
(东西)基于当前状态。在20个时钟滴答后,活动状态变为
StopForTraffic
.
StopForTraffic
-交通灯红灯代表南北方向,绿灯代表东西方向。
设置输出
日元=红
(南北)基于当前状态。设置输出
y2 =绿色
(东西)基于当前状态。检查传感器。
如果传感器显示车辆正在等待(
(sens)
为真)在南北方向上,主动状态变为StopToGo
.
StopToGo
-红绿灯必须响应传感器反向车流。
设置输出
日元=红
(南北)基于当前状态。设置输出
y2 =黄色
(东西)基于当前状态。3个时钟滴答后,活动状态变为
去
.
去
-红绿灯红灯代表南北方向,黄灯代表东西方向。
设置输出
日元=绿色
(南北)基于当前状态。设置输出
y2 =红
(东西)基于当前状态。10个时钟滴答后,活动状态变为
GoToStop
.
GoToStop
交通灯是绿灯代表南北,红灯代表东西。
设置输出
日元=黄色
(南北)基于当前状态。设置输出
y2 =红
(东西)基于当前状态。3个时钟滴答后,活动状态变为
停止
.
摩尔交通灯的设计规则
这个摩尔交通灯的例子说明了这些摩尔设计规则:
该图表计算输出
日元
而且y2
在国家的行动。图表测试输入
sens
在过渡的条件下。该图表使用了时间逻辑,但没有异步事件。