【发布时间】:2021-10-12 12:57:29
【问题描述】:
以下是具有输入和输出的安全控制器 下面给出了设计状态机的条件: 这里SignalOk、SignalWeak和SignalLost是测量转向角的信号质量。 SteeringAngle 信号本身包含原始转向数据。如果连续3次SignalOk,系统控制器将输出ValidSignal和转向角数据。在其他情况下,信号将被视为CorrputSignal。我正在使用 UML 2 状态图(Harel 图表)。到目前为止,这是我所做的:
注意:尚不支持并行状态和广播,但支持嵌套状态。 我不知道如何在状态机中对这种输入流进行建模,任何形式的帮助都将不胜感激。
【问题讨论】:
-
我想不通,你想用图表表达什么。
RmtSteeringSignalOk是什么?从您的文字中,我认为可能的信号是SignalOk、SignalWeak和SignalLost。或者这些是测量的可能结果吗?何时进行此测量?通过谁?为什么单独的 SteeringAngle 信号会触发转换?如果 SteeringSignal 不正常,SteeringAngle 不应该触发任何东西。 -
@AxelScheithauer 请将 RmtSteeringSignalOk 视为信号正常。这些信号由 pwm 解码器生成,并馈送到上述安全控制器,以做出有效或损坏信号的决定。
-
@AxelScheithauer 当驾驶员按下遥控器上的转向按钮时,PWM 解码器会生成关于转向信号强度的 signalok、signalweak 和 signalloss。 SteeringAngle 信号是包含转向角量的原始信号,无符号整数。
-
好的,那么这个pwm解码器会同时发送
SignalOk和SteeringAngle。由于Ready和“CheckFirstSignal”对这两个信号都有反应,状态机将立即进入CheckSecondSignal。我认为您应该删除SteeringAngle的转换。您甚至对前两个转向角都不感兴趣。只有第三个将被传输。由于我们不知道先处理哪个信号,我将在CheckSecondSignal中推迟SteeringAngle,并在CheckThirdSignal中通过内部转换SteeringAngle/ValidSignal对其作出反应。 -
@AxelScheithauer,我认为你是对的。您可以输入此作为“答案”。请使用“评论”功能要求澄清。
标签: embedded uml state-machine statechart