What will the future of automation software look like, which concepts and paradigms will be successful? These are issues many companies from the machine and plant building industry are dealing with today. After all, software plays an increasingly important part when it comes to generating added value. Yet at the same time, with complexity and connectivity growing, the development of a suitable controller software is becoming increasingly challenging.
The usage of industrial controllers or PLCs programmed with an IEC 61131-3 tool is state of the art. Apart from application programming, the leading tools also cover other aspects of automation engineering such as motion control, visualization or I/O configuration and, thus, allow for an integrated solution. The introduction of object oriented programming (OOP), which is to be officially incorporated into the IEC standard in the course of 2012, also offers tremendous productivity enhancing options.
Decision makers in the automation industry are thus faced with the following fundamental questions: Do we need new software concepts to be able to respond to future challenges? Do we need a change in paradigm? Are we able to correctly assess the costs, the effort and the risks involved? Or can we achieve massive gains in programming productivity with the existing standards? This should be possible, especially for machines with similar or interchangeable software parts, such as series production machines with options for modification and customization or individually configured machines based on recurrent functional units. Developing code for such machines is often one of the main tasks of application developers. Such tasks provide plenty of room for rationalizing the development process and minimizing the amount of errors.
Together with a group of launch customers the software company 3S-Smart Software Solutions has developed a solution for such application tasks: The CoDeSys Application Composer.
System Overview: CoDeSys Application Composer
Unlike other concepts currently in discussion, the CoDeSys Application Composer does not require for the application programmer to leave his familiar IEC 61131-3 environment to develop his application. The tool the developer is familiar with is simply extended by a module concept on the basis of which the application is then composed.
The new term composed used here already implies that the development of the application no longer requires a software developer. A technologist, a project engineer or even a customer consultant well familiar with the machine and its functionality can develop the required application. In order to be able to implement the parts of a machine or a plant, such functional units are grouped in modules: These can be mechatronic components such as pneumatic cylinders, tool changers, temperature controls but can also cover certain software functions like parts management, user management or flow control. The modules include all engineering aspects of CoDeSys: program code, I/O requirements, parameterization and visualization.
Based on these modules, the user creates or composes a module tree which represents the machine. The modules are familiar with their own interfaces and therefore know where they can be connected to the tree, i.e. which father modules or child modules they can have. This means, the project engineer is able to compose the machine within the frame defined by the modules. As the modules know their relationships in the module tree, the configuration of the parameters is also quite simple and done directly in the module tree editor. A graphical mapping tool allows the user to easily connect the input and output nodes requested by the implemented modules with the real process image.
Ill. 1: Module tree with parameter input
Ill. 2: Mapping editor for connecting the module I/Os with the process image
If machines or plants require a time-controlled execution in the module tree, this is realized with so called program sequence modules. These sequence modules are displayed in a graphical DIN66001/ISO05807 sequence editor.
Ill. 3: Sequence editor with program sequences
Complete IEC 61131-3 application at the click of a button
Once the user has composed the module tree, an integrated generator creates a complete and well structured IEC 61131-3 application plus visualization from the tree. This application can immediately be compiled and loaded onto the controller in CoDeSys. The information required to create the application is derived from the modules and the underlying libraries and then correctly embedded into the project structure – the user does not have to write a single line of IEC 61131-3 code. Nonetheless, the generated source code can be made visible and can directly be edited should the need arise. And the users have the possibility to analyze and understand the object oriented code generation concept. The application is executed by starting the controller, no further steps required.
Ill. 4: Parameters for generator which creates IEC 61131-3 code
Should the need arise to change the application due to a change in the equipment package or a customer-specific adaptation, all the application developer has to do is modify the correct modules with their parameters or the I/O mapping or the execution order.
Available and application-specific modules
Before you can start to compose your applications in such a convenient way you need the required modules. 3S-Smart Software Solutions, the company behind CoDeSys, describes itself as a technology provider and has therefore decided to concentrate on the provision of application-independent modules for example for state machines, for the management of persistent data, for communication management, for network management in distributed applications, for machine settings, for recipe management, for parts management, for alarm and error management or for data logging.
Machine and plant builders will have to develop their own CoDeSys Application Composer modules, customized to meet the requirements of their specific applications and products. Component providers will deliver the required modules along with their products in order to make implementation easier for their customers.
The creation of customized modules requires the CoDeSys Application Composer Toolkit. The generator which automatically creates IEC 61131-3 application code in Structured Text from the modules can also be customized. This can be very useful when wanting to generate additional data such as information for the ERP system or for a visualization other than CoDeSys.
System programming and composition
This clearly shows that the CoDeSys Application Composer will not eliminate the jobs of application programmers. On the contrary, developers formerly working beneath their potential on series production machines, will find their new tasks much more challenging: They can now concentrate on the development of modules and system POUs and fully utilize their capabilities. The optionally available CoDeSys Professional Developer Edition which contains add-ons used in high-level language programming, offers mighty integrated tools for such complex development tasks.
The program code for the controller in turn can now be composed by the users themselves. All they need is in-depth knowledge of their process or their machine – programming knowledge is not required.
All this will definitely make the process of application development much more efficient, as everyone involved in the development process can focus on his specific task. Copy paste errors or the like will be virtually eliminated.
Matthias Gehring and Mathias Wiegand from Festo after having programed one of their fair exhibits with the CoDeSys Application Composer:
“We are happy we can now realize our units with the CoDeSys Application Composer. Due to the fact that the different units are all based on the same base modules, we can now develop our applications for these units much more efficiently.”
Regardless of whether we are talking about fair exhibits or real machines or plants, the CoDeSys Application Composer is the tool of choice for developing applications with recurrent units with maximum efficiency.