Using abstraction to reduce the machine integration efforts
Integrating a packaging machine can be a time-consuming process, but creating a higher abstraction level can help with specific functionalities and speed up the overall PLC and motion programming process. IEC 61131-3 standard and PLCopen Motion Control Function Blocks help.
- A higher abstraction level helps focus on the creation of the specific functionalities in the software application.
- This can help speed up the system integration process and simplifies the program.
The integration phase of a machine can take considerable time. Time to make the programmable logic controller (PLC) software match the applicable hardware and to make sure that the software application performs as specified within the machine. To reduce this effort, one can focus to the PLC software development process and the tools used and the applicable process. One solution for this is creating a higher abstraction level where the interface is hidden during the development process of the application software. This helps focus on the creation of the specific functionalities in the PLC software application. In a later stage, one can decide which specific hardware requirements are needed, such as servo drives. The hardware supplier will take care to deliver the right mapping of the software to the hardware.
The basic idea is to use the pre-defined function blocks like for logic and motion at the lowest abstraction level, as specified by PLCopen and implemented by many suppliers.
Based on these functionalities, one creates application-specific functionalities in a user-defined function block class, UDFB. In figure 1, two levels are shown: the first level for the generic functionalities to start and stop the machine in the correct synchronized modes; the second level with the functionalities dedicated to the application such as cutting, sealing, filling and capping. With the creation of these higher-level functionalities, tested and documented, one reduces the size and effort needed for the creation of the application program. And one reduces the time needed for the integration phase.
Due to the harmonization, look and feel in operation and maintenance of the different machines it is strongly advised to implement a state machine on top of the controller.
Flow wrapper example for abstraction programming software
A flow wrapper is a machine that wraps pre-sorted products with a foil on all sides, which is sealed and cut-to-length. Due to a wide variety in the characteristics of the products to be packed, there is a wide variety in the machine configurations.
One can use the abstraction as defined above to create the basic application software, where the integration is made easy via the mapping to the specific selected hardware functionalities.
Basic operation of a flow wrapper, servo drives, controller
The basic functionality of a flow wrapper can be realized with three servo drives linked to a virtual one:
- The product infeed chain (M1)
- The film feeding and alignment (M2) as well as sealing
- The cut-to-length part (M3)
To control these servo motors, a “virtual line shaft” (a virtual motor) is used in the controller. This virtual line shaft operates the machine just like a traditional mechanical line shaft, but of course adds flexibility which the mechanical version is lacking. All three servo motors are coupled to this virtual line shaft via the control software with functionalities like GearIn and Camming. The mechanical links are replaced by software functionalities.
The infeed servo has a one-to-one relation to the virtual line shaft and can be seen as the physical representation of the virtual line shaft. The second motor follows the virtual line shaft, while keeping the print on the film aligned with the rest of the process. The third motor is coupled to the virtual line shaft via a specially designed profile. This profile assures that the sealing and cutting of the film is done at the right length and with the right speed.
There can be other functionalities added to this basic concept. Machines with up to 6 axes are known.
Notes on software development, standards
The application software needs a structured approach to provide the basis for configurable software and hardware independence. The IEC 61131-3 standard and PLCopen Motion Control Function Blocks provide an excellent basis for this. The provided functionalities include CAM, gear and gear-in-position functionalities, which are needed to map the relevant servo drives to the right profiles.
In that way, the marking on the foil is corrected, so the print is in line with the product to be packed. Also, the cut-to-length is done via a profile, so the knife is running at the speed of the foil during the cutting, while running faster or slower thereafter to create the right length.
For configuration, there is one program developed per control hardware platform, covering different sizes and the number of supporting servo motors. With additional standardization including the configuration this can even go one step further: one software program for different platforms.
With the commonality at a higher functional level, coupled to a better error tracing method, and added debug functionality routines also to a deeper level, the machines are simpler to operate and maintain, resulting in less need for assistance. This supports the philosophy of life cycle cost reduction. The end user easily sees these reduced service and maintenance costs, resulting in a high level of acceptance.
Overall, the usage of worldwide standards offers for the original equipment manufacturer (OEM) suppliers as well as the users, clear benefits:
- A worldwide software standard which everybody can learn and understand.
- The development and installation of new machines is faster, more predictable and easier. This results in shorter installation time of the machines with less risks, meaning a quicker productive line. What used to take up to one month to check the last bugs during full size production can now be done in days.
- The software for a particular machine is no longer developed for a particular hardware type or brand. If the hardware vendor makes platforms obsolete or even ceases to exist, the investment in the software is mostly protected because it can be ported to a different hardware brand. The customer investment is secured.
Of course, this is a relatively simple example. There is no real feed-in, nor handling of the packaged product included. These are functionalities that can be added in a similar way. Also, the applicable safety aspects are not included here, but can be coupled to the PLCopen safety functionalities.
In this case, the product flow is horizontally while in bag-filling processes this is normally vertical (vertical fill and form machines).
Keywords: abstraction level, PLC programming, system integration
A higher abstraction level helps focus on the creation of the specific functionalities in the software application.
This can help speed up the system integration process and simplifies the program.
What other applications could benefit from an abstraction level?
For more information, check: www.PLCopen.org