Flexibility, maintainability and evolvability are very desirable properties for modern automation control systems. In order to achieve these characteristics, modularity is regarded as an important concept in several scientific domains. The reuse of modules facilitates the reproduction of functionality, or extensions of existing systems in similar environments. However, it is often necessary to ‘prepare’ such an environment to be able to reuse the intended programmed functionality. In an IEC 61131-3 environment, cross-vendor reuse of modules is problematic due to dependencies in proprietary programming environments and existing configurations. In this paper, we aim to enable cross-vendor reuse of modules by controlling these dependencies. Our approach is based on the Normalized Systems Theory, from which we derived three guidelines for the design of reusable modules in an IEC 61131-3 environment for automation control projects. These guidelines are intended to support programmers in controlling dependencies, regardless of the commercial programming environment they work with. 
Deriving guidelines for cross-vendor reuse of IEC 61131-3 modules based on Normalized Systems theorems