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 ConceptSpecification detailsExecutable
State DefState Def

stateDef :> stateDef

abstract stateDef

State UsageState 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 NodesStart (Initial) Node

Done (Final) Node

Terminate Node

Entry Actionentry action assign x:=1;

entry action InitialAssign {       *assign* controller.valve:=1;       *send* new Terminate() via ButtonPort; }

entry action actionUsage:actionDef:;

entry actionUsage;

Do Actiondo action assign x:=1;

do action InitialAssign {     *assign* controller.valve:=1;     *send* new Terminate() via ButtonPort; }

do action actionUsage:actionDef:;

do actionUsage;

Exit Actionexit action assign x:=1;

exit action InitialAssign {       *assign* controller.valve:=1;       *send* new Terminate() via ButtonPort; }

exit action actionUsage:actionDef:;

exit actionUsage;

TransitionsTransition

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 ConceptSpecification detailsStatus
Assignment actionassign x:=1;

assign x:= 1+y*54;

assign x:= telecom.antenna.mass;

assign telecom.antenna.mass:=2;

Send actionsend 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 actionaccept 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)