Supported elements
The tables below list the SysML v2 state elements supported by the simulation engine.
In the Executable column, the following symbols mark whether elements are supported or not:
- Supported elements
- Partially supported elements
- Unsupported elements
States
| SysML v2 Concept | Specification details | Executable |
|---|---|---|
| State Def | State Def |
|
| stateDef :> stateDef |
| |
| abstract stateDef |
| |
| State Usage | State Usage |
|
| Exhibit State Usage |
| |
| Composite State |
| |
| Parallel State |
| |
| stateUsage : stateDef |
| |
| stateUsage :> stateUsage |
| |
| stateUsage :>> stateUsage |
| |
| ref stateUsage:StateDef |
| |
| stateUsage references stateUsage |
| |
| stateUsage_1 = stateUsage_2 |
| |
| stateUsage : StateDef [1..*] ordered nonunique |
| |
| Control Nodes | Start (Initial) Node |
|
| Done (Final) Node |
| |
| Terminate Node |
| |
| Entry Action | entry action assign x:=1; |
|
| entry action InitialAssign { *assign* controller.valve:=1; *send* new Terminate() via ButtonPort; } |
| |
| entry action actionUsage:actionDef:; |
| |
| entry actionUsage; |
| |
| Do Action | do action assign x:=1; |
|
| do action InitialAssign { *assign* controller.valve:=1; *send* new Terminate() via ButtonPort; } |
| |
| do action actionUsage:actionDef:; |
| |
| do actionUsage; |
| |
| Exit Action | exit action assign x:=1; |
|
| exit action InitialAssign { *assign* controller.valve:=1; *send* new Terminate() via ButtonPort; } |
| |
| exit action actionUsage:actionDef:; |
| |
| exit actionUsage; |
| |
| Transitions | Transition |
|
| Self Transition |
| |
| Completion Transition |
| |
| Accepter (Transition) Accept Action | Accept Payload Trigger accept Start; accept Start via TimerPort; |
|
| Change Trigger accept when waterTank.level <= minlevel |
| |
| Time Trigger (Absolute) accept at 5 [s] accept at operationTime |
| |
| Time Trigger (Relative) accept after 2 [s] accept after simTime>10 |
| |
| Guard (Transition) | if waterTank.level <= minlevel |
|
| if not waterTank.level <= minlevel |
| |
| if payload.targetSpeed>0 |
| |
| Effect (Transition) | do action assign x:=1; |
|
| do action InitialAssign { *assign* x:=1; *assign* y:=1; } |
| |
| do action actionUsage:actionDef:; |
| |
| do actionUsage; |
| |
| do action assign speed :=payload.targetSpeed; |
| |
| Conditional Succession | state def OperationalStates {
entry action initial { out attribute isStarting : Boolean; }
if not initial.isStarting then off;
if initial.isStarting then starting;
state off;
state starting;
state on; } |
|
Actions
Limitation
The usage is restricted to entry/do/exit actions or transition effects within a state.| SysML v2 Concept | Specification details | Status |
|---|---|---|
| Assignment action | assign x:=1; |
|
| assign x:= 1+y*54; |
| |
| assign x:= telecom.antenna.mass; |
| |
| assign telecom.antenna.mass:=2; |
| |
| Send action | send new Start(); |
|
| send new Start() to timer; |
| |
| send new Start() via outPort; |
| |
| send new Start() via outPort totimer; |
| |
| send new Start() to vehicle.engine |
| |
| send new Start(limit=10, mass=129) |
| |
| send itemUsage; |
| |
| Accept action | accept Start |
|
| accept Start via inPort |
| |
| accept after 2 accept after simTime>10 (Relative time trigger) |
| |
| accept at 5 accept at operationTime (Absolute time trigger) |
| |
| accept when x>1 (Change trigger) |
|