Questions about MSM and Detailing Transitions

Hello all all! I have a low-level hierarchical state machine (technically a mode machine) for a software physical component I am mapping out to make sure all the triggers and guards are sufficient.

What I am trying to do is break things into two general categories:

  1. Internally initiated state changes
    This would be the cases where while executing cycle ticks while in a given mode mode, some trigger can cause a transition to another operating mode (typically if certain faults are triggered or if certain conditions are met).

I could see this a being modelled using an MSM titled such as “Transition from Mode X” where the triggers are things such as “Xstatus.isFaulted = true” or something like “function output <= Y”

Would this be a good way to go about modelling this? If so, who would I model the triggers for the transitions? It doesn’t look like I can have anything other than a Change Event or Time Event element type as a trigger. How would I model something like a value output from a function and apply it as a trigger.

  1. Externally Initiated Mode Transition
    An external actor can send an explicit message that can contain “signal” variable with severable enumerated options (say something like sig.a, sig.b,sig.x, sig.y, sig.z). However, depending on the current operating mode there may be certain valid and invalid values and depending on the enum being passed may have different effects.

Would this be best done as an exchange scenario rather than an MSM? Is it possible to show the same component multiple times on an exchange scenario just with a different involved mode?

1 Like