Control logic Java package provides a user with a convenient formalism aimed at the following:
• Implementation of a real-time PC-based control and making a virtual/soft PLC
• Simulation of control systems
The key features of the package are:
• Setting up the control logic either with code (pure Java) or via a dedicated GUI resembling PLC programming IDEs.
• Using the same code with control logic for modeling and actual real-time control.
With the available Java classes and methods a user should be able to implement any real-time control system that can be technically based on a PC.
This implies that any specific hardware possibly requiring sub-millisecond control precision ("hard real-time") should have a dedicated controller.
But for "soft real-time" applications using PC over a traditional PLC is often beneficial.
Setting up a control system involves working with so-called triggers. Everything is in pure Java but the coding is done mostly with objects of Trigger class:

Alternatively, the logic can be built in the GUI with drag-and-drops:

This resembles logic and syntax in programs like Simulink (both simulated and realtime control) and RELAP (simulated control for hydraulic systems). It was also inspired by the common FBD language used in PLC programming. The key idea is that triggers feed each other and start tasks.
In case of a simulated system that has to be implemented with PLCs, the offered trigger logic allows an easy transition to ladder logic (IEC 61131).
One of the main ideas behind the project is to merge both simulations and "real" control:

The PC-based part of a real-time control is supposed to contain the upper-level logic.
PC barely can control e.g. electrical power supply to a pin directly. It rather should send the corresponding command over a network to a motor controller.
Everything a PC should send (or receive) to (from) other controllers, alongside with the necessary data processing, should be put into Runnables onStart, loop and onStop that are described in Task section.
In general, to go from a simulation to a real control the following steps should be taken:

Refer to [Simulator vs. real-time] for a comparative table between simulations and real-time.
Java has been chosen for the implementation of the software thanks to
The main packages in the .jar are named org.engitex.controllogic and org.engitex.logiceditor
These two packages contain pre-compiled classes.
Another package named com.company contains 3 examples of real-time and simulated control (source code is provided).
See how to run Control Logic in [Quick start]
Related pages describe main principles and concepts implemented in code:
[Classes]
[Task types]
[Simulator vs. real-time]
[System requirements]
[Graphical logic editor]
[Future outlook]
Wiki: Classes
Wiki: Future outlook
Wiki: Graphical logic editor
Wiki: Quick start
Wiki: Simulator vs. real-time
Wiki: System requirements
Wiki: Task types