Menu

Home

ENGITEX

Control logic Java package provides a user with a convenient formalism that allows:

  • Implementation of a real-time PC-based control
  • Simulation of control systems

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 should have a dedicated controller.

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:

This resembles logic and syntax in programs like Simulink (both simulated and realtime control) and RELAP (simulated control for hydraulics).
The trigger syntax is natural for a PC-based control.
In case of a simulated system that has to be implemented with PLCs,
the offered trigger logic allows an easy transition to ladder logic.

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:

  • An object of ControlSimulator class to be changed to ControlRealtime object.
  • The "filling" of the Runnables onStart, loop and onStop to be changed accordingly. For example, by adding network connectivity.

Refer to [Simulator vs. real-time] for a comparative table between simulations and real-time.

Java has been chosen for the implementation thanks to

  • High code portability across platforms
  • Easy network connectivity, usually via Java RMI or http - this is helpful in real-time distributed systems

The main package is named org.engitex.controllogic and contains pre-compiled classes.
Another package that is named com.company contains two examples of real-time and simulated control.

Related pages describe main principles and concepts implemented in code:
[Classes]
[Task types]
[Simulator vs. real-time]
[System requirements]
[Future outlook]


Related

Wiki: Classes
Wiki: Future outlook
Wiki: Simulator vs. real-time
Wiki: System requirements
Wiki: Task types

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.