StateWORKS: Building applications with RTDB or VFSM library

A real-time data base (RTDB) is used to coordinate all interactions with I/O systems and all communications between the various finite state machines. This data base is also used for communications between the StateWORKS software and other processes running in the system. Although we employ the term "data base" this has nothing to do with formal, relational data bases such as SQL: it is a collection of objects required by the project, together with software which manages them. more...

The following diagram illustrates what components are needed for writing a RTDB based application. The heart of the system is the RTDB library that also contains the VFSM executor. The IO Handler is an application specific library which realizes the data flow between the Controlled Devices and the Application. The Ofun library is a set of application specific functions required by the control. Both I/O Handler and Ofun communicate with the RTDB which offers corresponding methods used for programming these modules. The application is completed by a VFSM specification file prepared by StateWORKS Studio. Alternatively, the specification results can be loaded from a disk which is especially recommended during the development phase.

RTDB Build Environment
RTDB Build Environment

Communication with the real world happens through the I/O Handler. The I/O Handler delivers all inputs to the RTDB. On the other side the RTDB generates outputs which are converted by the I/O Handler to real signals understood by the Controlled Devices.

The User Interface as well as monitoring and maintenance is done by clients connected to the TCP/IP maintenance interface.

Using the VFSM library we have only a fraction of the RTDB features but we retain the most important part: the VFSM Executor and access functions to the Executor. The StateWORKS Studio generates a special file containing constants for automatic real-to-virtual conversion of the input signals and for triggering the output functions representing actions. Using them we have a ready-made interface for the VFSM Executor and may concentrate on designing the overall structure of the applications and programming the output functions. The control flow is realized by the content of the VFSM library.