MatPLC : towards real-time performance - Mário Jorge Rodrigues de Sousa (2003)
The MatPLC is an open-source control application, consisting of a core, a collection of modules and tools for creating custom modules (including an IEC 61131-3 IL and ST compiler). Since many control and monitoring systems are required to be hard-realtime, a feature not supported by the present implementation that relies on the standard Linux kernel and scheduler, the provision of MatPLC with hard-realtime capabilities is of great importance. We outline the MatPLC architecture, consider a number of real-time operating systems, and discuss the design changes required to add hard-realtime capabilities to the MatPLC framework. We also make a preliminary evaluation of the effort required to port the existing code base to the extended framework. We conclude that some parts of MatPLC will pose no porting problems while others will require significant work. We also pinpoint some inter-process synchronisation features used by the MatPLC that are currently missing in the existing RTOS, and propose ways to overcome this difficulty.