VisSim/State Charts™

VisSim state chart to decode a serial packet protocol
VisSim State Chart to sequence operation and monitor voltages in Digital Power Supply

VisSim/State Charts gives you complete OMG UML-compliant graphical state chart capability. Designed specifically for efficient execution on embedded systems, VisSim/State Charts lets you easily create, edit, simulate, and generate C code for finite-state machines all within the VisSim design environment. Finite-state machines are event-driven systems that transition from one state to another based on a set of rules. VisSim/State Charts is based on the industry-standard OMG UML 2.1. It uses common graphical elements – such as states, pseudo-states, and transition arcs – to represent simple, hierarchical, and parallel states, and the transitions among them. You can attach C code actions to state activity and transitions to further define state chart behavior. State chart execution runs in synch with VisSim dynamic simulator operation. Communication between a state chart and the VisSim model uses standard VisSim variables, triggers, and I/O pins on the state chart.

VisSim/State Charts provides an easy and intuitive method of developing system control. The graphical design entry along with traditional text based language syntax combine to provide a familiar design entry experience. Behavioral operation of the control can easily be simulated before targeting the embedded hardware. This is an amazing new addon.

Randall Pipho - Senior Design Engineer
TECO Westinghouse Motor Company


  • Graphical state chart editor
  • OMG UML 2.1 compliant
  • Smoothly integrated with VisSim data flow diagrams
  • Supports hierarchical and parallel states with transitions
  • State actions and transitions defined using standard C syntax
  • Trigger and guards expression control transitions
  • Integrated debugger with breakpoints and logging
  • Highlight active state
  • Single step simulation
  • Behavioral C code execution logging
  • ANSI C code generation

The VisSim Model - State Chart Interface

In VisSim, a state chart appears as a standard block with input and output pins. Data can be passed between the state chart and VisSim continuous model using these pins, or triggers, or VisSim variables. You can have any number of state chart blocks in a given VisSim diagram. A state chart has its own hierarchy. To edit or view the structure of the state chart, you “drill” into it with a right click of the mouse.

Defining Transitions

Transitions are paths from one state or psuedo-state to another on which the logic of the system flows. Transitions are represented as lines with an arrowhead
at one end, indicating the direction of signal flow. You can apply conditional guards to transitions that are evaluated dynamically. When the condition evaluates to TRUE, the transition occurs. Like state actions, conditional guards are defined in standard C syntax.

Debugging a State Chart

VisSim provides debugging tools for examining, locating and correcting incorrect state chart behavior. You can single step through the state chart, set breakpoints that halt the simulation when a selected state action or transition is activated, log individual events, and log all executed behavioral C code in execution order.

Generating Production-Quality C-Code

If you have installed the VisSim/C-Code module (available separately), you can generate efficient, in-line C code from your state chart. The generated code communicates seamlessly with the continuous portion of the VisSim diagram in the same fashion as the simulation engine. This is a fast and simple way to incorporate UML state charts into your embedded controller. The state chart to the right that sequences operation and monitors voltage levels in a digital power supply is coupled with 3 analog inputs, 3 digital outputs, and a digital input and takes under 1.5k bytes flash and 100 bytes RAM to execute on an MSP430F2013 low cost part.


» Free Trial Version
» VisSim Data Sheets