35
Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1 www.vissim.com

Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Embed Size (px)

Citation preview

Page 1: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Using VisSim State Charts

Visual Solutions, Inc.487 Groton Road, Westford MA 01886 USA

(800) VISSIM-1www.vissim.com

Page 2: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Agenda• Creating State Charts• Hierarchy• Transitions• Debugging/Logging• Embedded Considerations

Page 3: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

What is a State Chart?• A graphical representation of a finite-state machine

– A system with a fixed number of named states. Transitions between states occur when certain conditions are met.

• VisSim State Charts are OMG UML 2.1 conformant• Create state charts anywhere in a VisSim diagram• Exchange data between the state chart and the

continuous portion of a diagram– Use VisSim variables or Triggers in chart, as well as

defined input and output pins

Page 4: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Example State Chart

Page 5: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Basic state chart elements• States – set of named system configurations• Transitions - control movement between states• Pseudo states – Alter transition operation• Behaviors- code associated with transitions

and state events• Triggers – named events that can cause

transitions or code to be executed

Page 6: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Creating a State Chart

• Insert a State Chart block into a VisSim diagram.• Right click drills down and enters State Chart world

– Notice normal VisSim blocks are disabled and State Chart elements are enabled

• Insert an Initial State and two states

Page 7: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Creating Transitions• 1. Position the cursor over the edge of a source state. The

cursor shape changes to a pencil– If the cursor is a crosshair with arrow heads, moving the mouse moves

the state rather than draws the arc.• 2. Depress the mouse and drag into the target state body.

– If the state is a composite state, you may connect to a state within the composite state.

• 3. Release the mouse button.

Page 8: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Moving Transitions

• Click the mouse over a transition you want to bend or move.– The transition line turns purple, indicating that you can edit it.

• To bend the transition, left click on it and drag the mouse.– Labels will move with the arc

• To move where the transition arc connects to a state edge, position the cursor over the end of the arc you want to move. – When the cursor changes to a 4-arrow crosshair, depress and drag the mouse

to the desired location.

Page 9: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Controlling Transitions

• You can use triggers and C expressions to control if and when transitions are taken

• Double click on Transition to edit• Transition syntax: trigger(s) [guard] / C-code

– Guard is C expression– Triggers and guard are optional, but ‘/’ is not– All triggers and guard must be true to execute

transition and C-code

Page 10: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Triggers• Triggers are True or False• Declare in Continuous space via Trigger Block• or Data Browser (type = Trigger)• Assign value in continuous space

– Like VisSim variables only one definition point• or State Chart Action via SendT(<trigname>)• Reference in State Chart Transitions and

Actions.

Page 11: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Deferred Triggers

• If you defer a Trigger in a state, the state will remember any True setting and hold it for one tick after the state is exited. – This makes it available for an action in the next

state transitioned to for 1 tick.– defer a trigger by adding to Deferred Triggers list

in State Activity Manager

Page 12: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Transition Evaluation Order• Multiple output transitions have an evaluation order

indicated by number near start of arc• To change, right click transition, select “Reorder

Transitions”– Click transitions in order of desired execution

• Transitions with no trigger are always evaluated after transitions with trigger (regardless of order number)

• At most one transition fires per Chart Region during one simulation or codegen timer tick.

Page 13: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Defining state chart variables

• To exchange data between the VisSim model and the state chart, use variables.– State chart variables are declared in the State Chart Block Properties– Activate View > Connector Labels to see the pin names

• To define input and output variables:– Add Connector command (or toolbar button)– Or ctrl+right click the state chart block and click Data Browser. Data

Browser gives you ability to choose name, data type and storage for each variable

Page 14: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Data Browser• Click (new item icon) to create new variable• Type

– char .. double = data type as in C– Trigger = Boolean (True or False)– State ID = currently active state

• Scope– Local = only seen within State Chart– Input/output = input/output pins– Constant = constant value– External = Seen outside State Chart

Page 15: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Data Browser (cont.)• Pin – assigned to inputs and outputs• Default value – initial value before 1st

assignment• Value – current value• Comment – whatever you like• To edit a variable, double click the property

Page 16: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Configuring States• Right click in State title bar to open properties

– Options tab gives name and comment fields and shows some activity code (not editable)

• Activity Manager Tab lets you associate C-code to be called on certain events (actions)– Entry – on State entry– Exit – on State exit– Do – while in State– On trigger – when in State and trigger is True

Page 17: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Allowable C-code in Activity• ANSI C expressions, statements and

functions are OK.– Can put initial C file in Sim Properties>

Preferences > startup script file• Standard library math functions (pow,

abs, exp, min, max etc)• No preprocessor commands supported

(#define, #if, #else)

Page 18: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Creating Actions

• Click on the action or trigger you wish to activate C-code then click “Add Action”– Code is inserted in “Edit Behavior” and may be

edited further.• Action code syntax

– {action name}/{C-code} i.e. Entry / startup = 1;

Page 19: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Controlling State Chart Execution• Initial State - indicates starting point for State

Chart, Submachines and Composite States• Terminate - indicates final state end point.

– Exits from Submachine or Composite region• Choice – expression selects destination state• Fork – Notational convenience for entering

multiple regions in Composite State• Join– Notational convenience for leaving

multiple regions in Composite State

Page 20: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Transition Choice

if (A) { /* exit State One*/ B;

if (C) {D; /*Enter State Two*/ }

else if (E){ F; /*Enter State Three*/ }

}

• It is a FATAL ERROR to enter a choice but not take exit leg to a state.– Only place State Charts can halt besides

Terminate

Page 21: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

To avoid Choice FATAL ERROR

• Always have one exit leg with no predicate– Check Integrity will check for this.

• Don’t use Choice, use Join with predicates. That way, current state will never be left unless possible path exists.

Page 22: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Interacting with State Charts• To send data from the continuous portion to a

State Chart you can use:– State Chart input/output pins– VisSim variables– Triggers

• To read the current state in the continuous portion– Use an output pin set to State ID– Use a state id block.

Page 23: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Controlling VisSim execution• Use state id block “is active” mode• Test “State Id” output pin of state against state

id block in “State Id” mode.– State ID values are unique but can change. Don’t

depend on actual value. Values change between simulation and code generation and as states are added and removed.

• Can use merge to select data or enabled Compound block to control execution

Page 24: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Hierarchical States

• You can encapsulate a state chart within a state chart by using a Submachine state.– Enter a Submachine by double click on title bar

• You can use Initial State or Terminate to enter and exit, or

• Use Entry and Exit points for different initial and final states.– Entry and exits are placed inside the Submachine

and will automatically appear on Submachine face

Page 25: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Parallel State Execution Regions• Use Composite State for multiple active states

– Right click in Composite body, select insert vertical/horizontal region to create new region

– To delete region, drag dashed line off screen.• Use Initial State to indicate first state in region• Use Terminate State to end region. When all regions

are done, can leave Composite State• Can transition directly from state in region to state

outside Composite State– Other regions active states are ended immediately

Page 26: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

History

• If you transition directly out of a Composite Region without termination of other regions, and a history element is present, the history element will remember currently active states.

• If you renter Composite Region via History, prior active state(s) will be entered.– See examples ShallowHistory001&002

Page 27: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Deep History vs Shallow

• Shallow history only remembers active state(s) on current layer of Composite or Submachine.

• Deep history remembers all active states in all nested Composite and Submachines.

Page 28: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Debugging State Charts• You can set break points or log action for any

action in any state or transition– Right click to open properties, click on action, and

check “Attach Breakpoint” (red ball appears) or “Log Message” (red exclamation appears)

• When sim is run and action occurs, sim will stop at time step for breakpoint. Data Browser contains current data values.

Page 29: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

VisSim Error Reporting

• The menu item “Check Integrity” will scan and report on ill-formed charts.

– Click error, then use arrow and hand to jump to state in error

– “Check Integrity”is also run when you click “Go”– States with errors are highlighted.

Page 30: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Breakpoints

• Menu item State Charts > Breakpoints…• Shows list of Breakpoints and Log points• Can remove one or more BPs• Can jump to next occurance of BP

Page 31: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Logging Actions

• To log actions, right click state or transition to open properties, click on action, and “Log Message” (red exclamation appears on state, red ball on transition)

• Place identifing text in the edit box to the right of “Log Message” to be entered into the event log

• To see the events in the log, leave the state chart and place an standard VisSim Block > Signal Consumer > Event Display block into the workspace.• When the simulation is run, time stamped events will

appear in the event log.

Page 32: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Logging C-code execution

• To enable C-code logging, Ctrl-Right Click on the enclosing State Chart and enable "Log executed C instructions“, then press Ok

• Run the diagram• Ctrl-Right Click on the chart again and click “Open”

Page 33: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Embedded Considerations• Compiled State Chart should work the same as

simulated, so simulate as much as you can• Compiled States IDs may be different numerical values

than simulated. – State Lookup… menu item has “embedded” option– sim ID->embedded ID convert block in works

• For low freq state change, use State ID from Data Browser as output from top level compound.

• For high freq state change use Monitor Buffer Write

Page 34: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Embedded Operations to Avoid

• Terminate – halts operation• Choice without Else

Page 35: Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1

Q&A