StateWORKS Run-time System (Executor)
VFSM Executor Flowchart
The run-time system uses one, fixed VFSM Executor program to run all the state machines in the system. This totally reliable and efficient program “understands” the formal control specification of each state machine, and ensures that it is implemented. (Formal Control Specification = output generated by StateWORKS Studio. Usually a file, but can also be a C++ construction for embedded products without a file system. Then one can simply compile the specification data and link with the run-time system.)
Implementation includes performing all the necessary state transitions, and also initiating actions of various kinds, such as driving outputs in the I/O system, sending commands to other state machines, and invoking computation processes.
A real-time-database (RTDB) is used to coordinate all interactions with I/O systems and all communications between the various finite state machines. This database is also used for communications between the StateWORKS software and other processes running in the system.
The following diagram illustrates how the various components of the run-time system work together.
RTDB Run-Time System
At the start up the executor loads the system control specification generated by the StateWORKS development environment and initializes the RTDB.
The communication with the real world happens through the I/O Unit. The I/O unit watches the interfaces introduced to the system and converts all events to virtual inputs accepted by the RTDB. On the other side the RTDB generates virtual signals which are converted by the I/O-Unit to real commands understood by the controlled system.
The administration and maintenance of the RTDB is done by a client connected to the TCP/IP maintenance interface.
For more information, refer to build applications with RTDB library and thinStates compiler.