Skip to content

StateWORKS Studio

StateWORKS Studio is a professional software development and execution environment. It contains:

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

SWEdit

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

SWLab

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

SWMon SWQuickPro

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.

StateWORKS Studio Editor: VFSM System

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 event NOT_Flow_Regulating happens.
  • Transition to the state OK occurs when the event PressOK happens.
  • Transition to the state OffBusy happens in response to either the CmdGasOff event or the PressBad event.

swedit_vfsm

Each state in the system is fully described by a behavior table. For example the OnBusy state:

swedit_table

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.

swedit_project

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, and Flow_Do_Regulating.
  • Additionally, one numeric output, Flow_No_FlowSetValue, is active.
  • The simulator processes inputs from Flow_Ni_ActualFlowValue and Press_Ni_ActualPressureValue.

swlab

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.

swmon

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.

swquick