Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Using VisSim State Charts Visual Solutions, Inc. 487 Groton Road, Westford MA 01886 USA (800) VISSIM-1 www.vissim.com."— Presentation transcript:

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

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

3 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

4 Example State Chart

5 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

6 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

7 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.

8 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.

9 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

10 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( ) Reference in State Chart Transitions and Actions.

11 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

12 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.

13 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

14 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

15 Data Browser (cont.) Pin – assigned to inputs and outputs Default value – initial value before 1 st assignment Value – current value Comment – whatever you like To edit a variable, double click the property

16 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

17 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)

18 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;

19 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

20 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

21 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.

22 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.

23 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

24 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

25 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

26 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

27 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.

28 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.

29 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.

30 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

31 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.

32 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”

33 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

34 Embedded Operations to Avoid Terminate – halts operation Choice without Else

35 Q&A


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

Similar presentations


Ads by Google