The concept of Open PLC Software Framework "LiquidPLC"

The Open PLC Software Framework LiquidPLC addresses the most challenging issue of current PLC market: vendor lock-in.


The expected results of employing this concept are: opening PLC as a general industrial computer platform and cutting costs of PLC hardware and software development and maintenance (including legacy software).


The general overview of LiquidPLC framework is shown in the following diagram:



LiquidPLC    

LiquidPLC consists of 3 logical parts:

      • PLC PAL (Platform Abstraction Layer): software abstraction of target platform, implemented in Java class; it is supposed to be provided by Open Source contributors or Platform Vendors; the interrupts and system signals are handled here through the Java Native Interface (JNI) and passed further to the other layers (PLC VM, PLC Program);

      • PLC VM (Virtual Machine): software abstraction of vendor-specific PLC, implemented in Java class; it is supposed to be developed by Open Source contributors, based on data from PLC programming manuals (memory map, instructions set, programming model);

      • PLC Program: it is a result of automatic conversion of given PLC program (in form of Ladder Logic diagram or any other IEC 61131-3 language) to Java class; for legacy systems it is mainly based on reverse engineering of vendor-specific PLC program/project file formats; industry automation engineers will work with PLC programs in the same way as they did before: in form of PLC specific IEC 61131-3 languages; then, it will be automatically converted to Java and compiled to Java bytecode under the hood of LiquidPLC framework;

The PLC program conversion software (from Vendor specific file format to Java) will consist of 2 main parts: specific file format parser (on input) and Java file generator (on output) and will be supported by powerful community of Open Source contributors.

The conversion software will naturally employ specific PLC VM implementation for corresponding PLC (memory map, instruction set, programming model), but the core algorithms of corresponding Java code generating are common for any PLC and can be based on similar algorithms of existing PLC programs converters/compilers to C code.

Main advantages of the LiquidPLC concept:
    • provides openness of PLC platforms, qualitative specialization and healthy competition on the market of PLC hardware and software, just as it happened on the PC market in 1980's;
    • absolute portability of PLC programs between similar hardware platforms;
    • automatic portability of legacy PLC programs to new suitable platforms without loss of quality and cost; in other words, maintaining previously made investments in the already running, time-tested industrial software;
    • will be supported and driven by powerful community of Open Source contributors, including such big players as hardware vendors, just as it is going on with Linux kernel now.

As a result, it will allow cutting of prime costs in main areas of industry.

References

The draft implementation of LiquidPLC framefork on my GitHub account:

The existing PLC programs converters/compilers to C code, as starting point for programming of Java code generation: 

Please, send me your feedback:

mailto