StateWORKS Studio
StateWORKS Studio is a professional software development and execution environment. It contains:
- An editor to design and build systems of FSM.
- A simulator to execute the designed system.
- A monitor to test a running system.
- A standard executor to run the final application.
StateWORKS Studio operates on Windows 10/11, utilizing the VFSM (Virtual Finite State Machine) modeling method. This environment allows users to specify FSMs, define their interactions, and set various specification properties. The result is a complete system specification covering all control aspects. Several output files are generated for implementation or documentation purposes. The provided runtime system supports multiple OS platforms such as Windows 10/11, Linux, and other UNIX-based systems, ensuring fast and reliable execution of the final specification.
For further details, refer to StateWORKS Run-time System (Executor).
Development Environment Components
The Editor
The Editor is the core tool for modeling control systems based on VFSMs (Virtual Finite State Machines). It integrates a wide range of functions:
- Graphical System Representation: It displays a graphical view of the entire system of FSMs, showing the dependencies between the various FSMs in the system.
- VFSM-Editor: This is where users can create individual state machines and define their behavior, specifying state transitions and conditions.
- Project Manager: It allows management of complex projects that involve multiple state machines, input-output unit configurations, and communication between various state machines.
- Output Generation: The editor can generate a variety of outputs for both documentation and implementation, including:
- XML Representation: A full XML description of the system’s behavior.
- Graphical FSM Representation: Diagrams of both individual FSMs and the overall system.
- Object and Behavior Tables: Exported for use in word processing tools.
- Executable Files: Used for simulation or for running the system in the runtime environment.
- C++ Files: These are generated for certain types of embedded system applications.
The Laboratory Simulator
The Laboratory Simulator is a software tool that simulates real-world conditions using the true StateWORKS runtime system with a built-in TCP/IP server. This allows the Monitor (or any other program) to connect to the simulator as a TCP/IP client to test and control applications.
The simulator provides 8 digital inputs, 8 digital outputs, 4 analog inputs, and 4 analog outputs for users to simulate external interfaces, resembling real-world systems.
The Monitors
The Monitors serve as interfaces for programmers or service technicians to interact with the Simulator or the StateWORKS runtime system. They act as TCP/IP clients and can display object values and parameters of any state machine within the system. These monitors also support saving display configurations for future use, particularly for administration and maintenance.
Key debugging features include:
- Service Mode: Modify parameters and simulate input/output values.
- Step-by-Step Mode: Execute one or more state machines step by step.
- Current Input/Output Viewer: View real-time input and output data.
- System Event Logging: Keep records of system activities for analysis.
We offer two types of monitors:
- SWMon: A powerful and comprehensive monitor.
- SWQuickPro: A simpler, more convenient monitor.
The Standard Executor
The Standard Executor runs the final specification in real-time and executes user applications. It operates without a graphical user interface (GUI) and can run in the background as a service. It is controlled through TCP/IP clients, such as the StateWORKS Monitor.
The TCP/IP interface is open, allowing users to implement their own application-specific I/O handlers. A StateWORKS TCP/IP client DLL is available to facilitate this process for customized I/O handlers.
Screenshots
StateWORKS Studio Editor
System
This screenshot shows a graphical representation of a system containing three state machines: Gas
, Flow
, and Press
. The arrows indicate relationships: Gas
acts as the Master, receiving commands from an operator and overseeing its Slaves, Press
and Flow
. Both Flow
and Press
receive commands from Gas
.
VFSM
The image below represents a single state machine, in this case, the Gas
state machine. The arrows indicate transitions between different states, and each arrow is labeled with the transition conditions that must be met for the state change to occur.
The Gas
state machine includes three key transitions:
- Transition to the state
OnBusy
occurs when the eventNOT_Flow_Regulating
happens. - Transition to the state
OK
occurs when the eventPressOK
happens. - Transition to the state
OffBusy
happens in response to either theCmdGasOff
event or thePressBad
event.
Each state in the system is fully described by a behavior table. For example the OnBusy
state:
Project
The project manager lists all possible object types (in the left column). Next to it on the right, it shows the objects in use. Each object has certain properties, e.g. the object Press_Ni_ActualPressureValue
(Type Ni
) is a representation of a real sensor showing the pressure in mBar
as integer to the StateWORKS system.
Laboratory Simulator
The screenshot below shows the Laboratory Simulator running the “Gas” project. In this setup:
- Three digital outputs are in use:
Press_Do_Press_Ok
,Flow_Do_FlowValve
, andFlow_Do_Regulating
. - Additionally, one numeric output,
Flow_No_FlowSetValue
, is active. - The simulator processes inputs from
Flow_Ni_ActualFlowValue
andPress_Ni_ActualPressureValue
.
SWMon Monitor
This screenshot displays the SWMon Monitor, showing all relevant information about the “Gas” project. Users can:
- Enable tracing by checking the box behind an object.
- Forcibly change values of certain parameter via the text boxes.
- Send commands by entering a command number in the “Send” box.
- Execute each VFSM in a “step-by-step” mode for detailed analysis.
SWQuickPro Monitor
This screenshot shows the SWQuickPro Monitor. In this example, the details of one object (Press_DO_Press_Ok
) from the “Gas” project are displayed. Users can view and modify the attribute values of the object at any time.