A usable, real-time interpreter for rapid product development
Jordaan, Johannes Jacobus
MetadataShow full item record
The need for a usable programmable logic controller (PLC) was identified. This need originated from the shortfalls in flexibility and limited functionality of existing industrial-type PLCs. In order to address these shortfalls, a flexible low-level PLC core is proposed as an alternative. This low-level system consists of basic instructions that can be chained to perform any high-level PLC function. The basic instructions also support additional functionality that lack in traditional PLCs. The low-level system is built around a virtual machine that implements a low-level instruction set. The virtual machine is implemented on the firmware of the PLC - this is done to provide an abstraction layer at a relatively high level so that the machine is portable. An embedded operating system is implemented on the PLC to provide an additional, lower-level abstraction layer between the virtual machine and PLC hardware. The selection of a suitable operating system required an experiment with which to compare operating system performances. It was found that uCLinux is not suitable for deterministic real-time applications and that FreeRTOS performs better. The PLC is programmed and configured through the use of a specialised computer application. The programmed PLC applications are structured in event-action pairs that specify which actions to take when an event occurred. To improve the usability of the system, the actual programming is done in an intuitive, human-understandable programming language based on if-then-else clauses. All input requirements were addressed by means of design. Furthermore, design guidelines and a design philosophy were derived from an analysis of tried and tested PLC principles. The verification of the functional capability of the interpreter was demonstrated in the operating system comparison experiment. This shows that the requirements for this project were addressed in a successful interpreter design.
- Engineering