Virtual PLC GUI Layout for Parallel and Sequential Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Developing applications for programmable logic controllers (PLCs) is challenging due to their strict top-to-bottom and left-to-right execution order, leading to inefficiencies such as resource wastage and cumbersome task performance.
Innovation Solution
A graphical user interface (GUI) system and method for developing virtual PLC applications, featuring a toolbox with objects that can be arranged in vertical and horizontal sections to enforce the desired execution order, allowing for simultaneous and sequential execution of objects, enabling the creation of configurable, scalable, and extendable nested applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If a strict top-to-bottom and left-to-right execution order is enforced in PLC applications, then the execution order is controlled and predictable, but resource wastage occurs and task performance becomes cumbersome
Solution Approach 1:
The PLC application is divided into multiple independent rungs that can be executed in parallel rather than sequentially. Each rung represents an independent execution unit that can be processed simultaneously by different threads or processors, breaking the strict sequential execution model into concurrent segments while maintaining logical independence of each rung's execution.
Solution Approach 2:
The execution model transitions from static sequential processing to dynamic parallel execution. The system dynamically manages multiple execution threads that can start, pause, and complete independently based on rung dependencies and resource availability, allowing flexible adaptation rather than rigid adherence to a predetermined execution sequence.
2Stability of the object's composition
If traditional PLC development methods are used with strict execution order, then execution predictability is maintained, but development time increases and applications cannot be reused without recompilation
Solution Approach 1:
Virtual PLC applications are created as reusable templates or copies that can be instantiated multiple times without requiring recompilation. Once a PLC application is developed and validated, it can be copied and deployed across multiple instances or platforms, significantly reducing development time for subsequent applications while maintaining execution predictability through the preserved rungs structure.
Solution Approach 2:
The PLC application architecture is designed to be universal and platform-independent, allowing the same application to run on different hardware or software platforms without modification. This multi-functionality enables a single developed application to serve multiple purposes and environments, reducing overall development time across different projects and platforms.
3Ease of operation
If sequential object execution is implemented in PLC applications, then execution control is simplified, but productivity decreases due to inability to perform tasks simultaneously
Solution Approach 1:
The application is segmented into independent rungs that can be executed in parallel. Each rung is treated as a separate execution unit with its own thread or process, allowing simultaneous execution of multiple rungs while maintaining simple control logic within each individual rung. This segmentation enables both simplicity and parallelism.
Solution Approach 2:
Multiple levels of execution control are nested within the PLC architecture, with rungs containing individual instructions that can execute concurrently. The nested structure allows simple sequential control at the instruction level within each rung, while enabling parallel execution at the rung level, combining simplicity and productivity across different abstraction levels.
Data Source
AI summary
In one embodiment, a method for developing a virtual programmable logic controller (PLC) application using a graphical user interface (GUI) is disclosed. The method including receiving, from a first portion of the GUI representing a tool box, a first selection of a first object from a set of objects represented in the GUI, wherein each of the set of objects performs a respective function. The method also includes inserting, into a horizontal section of a second portion of the GUI representing the virtual PLC application, the first object, wherein the horizontal section includes a second object that executes simultaneously as the first object in the horizontal section. The method also includes compiling code implementing the first object and the second object to generate the virtual PLC application, and adding a shortcut of the virtual PLC application to a virtual tray of an operating system.


