Function Blocks Simplify Programming
PLCopen has a library of 25 single- and multiaxis function blocks.
Software is playing an increasing role in industrial automation. That’s been good in terms of boosting the functionality and flexibility of machines. But, writing code can also add cost and time to the development process.
This was particularly true 10 years ago. The controls market then was heterogeneous. Each automation vendor promoted its own proprietary programming software. There was no consistency from one controller to the next. Even different models of controller within the same family may have had different ladder notation, so programs could not be seamlessly interchanged between models.
“One company’s controller would have a command to do a certain motion. If I switched vendors, I would have to learn another command for the same thing, and the behavior of the two different commands would be different,” explains Chris Knudsen, senior marketing strategist at Yaskawa America Inc.
Even when engineers could reuse code, it wasn’t easy. “The problem with discrete ladder logic is that functions don’t stand out on their own,” says Kevin Hull, senior applications engineer at Yaskawa. “They hide themselves in the crowd. It’s not easy to identify what exactly you can pull out and use in another project.”
Enter PLCopen. Founded in 1992, PLCopen is a vendor- and product-independent organization dedicated to resolving issues related to control programming. Its members include most major suppliers of motion control technology, including Yaskawa, Siemens, Bosch Rexroth, Omron and Mitsubishi Electric.
A core activity of PLCopen is to promote IEC 61131-3, a global standard for programming PLCs, embedded controls and industrial PCs. It includes the textual programming languages structured text and instruction list; the graphical programming languages ladder diagram and function block diagram; and the structuring tool sequential function chart.
The goal of PLCopen is to enable engineers to use the same set of commands whether they’re programming a controller from Yaskawa, Bosch or other vendor. And that should translate into faster development time for assembly machine builders, says Knudsen.
Function blocks are one way that IEC 61131-3 is simplifying programming. Function blocks act like subroutines in regular text programming. Function blocks are graphical. Inputs are on the left side of the block; outputs are on the right.
“Function blocks are encapsulated. Variables go in, and variables come out,” says Knudsen. “The code that’s inside never has to change. It’s already been tested and documented. The benefit to users is that they can reuse these function blocks over and over again.”
“Function blocks are abstractions,” adds Hull. “They remove some of that lower-level code from the forefront of the program, so users never have to see that. They’re left with a simplified interface window.”
Hull stresses that function blocks are not complete programs by themselves, but rather elementary tools or building blocks for creating a program for an entire motion control system. “You still have to arrange the blocks to make some overall activity happen,” he says. “There is no function block for programming a walking-beam assembly system. Rather, you would need several function blocks to program that system.
“That said, if you’re a systems integrator that builds several different machines with walking beam mechanisms, you can reuse the library of walking beam function blocks you created.”
PLCopen already has a library of some 25 single- and multiaxis function blocks, and at least another 25 are expected by the end of the year. For example, the single-axis function block “Move Absolute” tells a motion device, such as a servomotor, to move to an exact location at a certain speed, acceleration and deceleration. The multiaxis function block “Gear in Position” synchronizes two axes of motion. Such a function block could be used to coordinate the motion of two assembly conveyors.
In addition, many motion control vendors have developed their own, more complex function blocks. For example, Yaskawa has developed function blocks for programming kinematic mechanisms.