During the summer of 2015, I was involved in a Parker group project with four other newly graduated college students. Being fresh out of college, we did not have experience in motion control. The project was meant to give us experience in designing, building, and programming an electromechanical system. The goal of our project was to successfully move a metal ring around a bent piece of pipe/extrude without touching it using a hexapod Figure 1. In total, the project involved 7 actuators, 7 motors, 7 drives, a PLC/controller, around 50 feet of Parker IPS extrude, and custom platforms (for the hexapod).
The purpose of this article is not to focus on the project itself. I will be focusing on the PLC/controller that we used to do all of the programming for this project, the Parker Automation Controller. The PAC is a machine controller (PLC replacement), as well as a motion controller – all in one package.
Our group wrote a complicated motion program that involved the following:
- 7 virtual axis.
- 7 real axis.
- Our own robot kinematic function blocks.
- Multiple safety tasks.
- Cam tables/POUs.
We were able to accomplish this in a week, which is a tribute to how powerful and intuitive the PAC is. There is something to say about a controller that allowed a group of newly graduated college students to program the kinematics, motion program, and safety programs of a 6 axis robot in such a short amount of time.
Parker Automation Manager (PAM)
Before I get into the PAC software, I would like to mention that it is FREE. The days of having to deal with licenses and yearly charges are over. I do not think that I have to say a whole lot about it, but it is very convenient to not have to renew your license and worry about upgrades coming from the vendor.
Overall, this is a very powerful, flexible controller. CODESYS is the underlying application that PAM is built on. CODESYS is an integrated development environment for programming controller applications and adheres to the IEC61131 standard. It is a user configurable environment that is very organized and flexible. Parker has teamed up with CODESYS to make PAM a wide open and user-friendly software program.
The PAC is a very unique controller because it has been designed with the tools to get simple and complicated projects started quickly and modified easily at a cost effective price. Did I mention that the software is FREE?
If someone was to buy a controller such as an Arduino, there would be a lot of programming and work that would go into telling that processor how it needs to receive, send, and handle data. Fortunately, we live in a world where we have controllers and PLCs that come preconfigured for us. However, the PAC takes that concept to a whole other level. Not only is all of that programming work already done for the user, but it has added motion control capability compared to other controllers :
- CNC programming.
- .dxf file conversion to g-code.
- Cam generation.
- Robot kinematics.
- Extremely fast cycle times (EtherCAT motion bus).
The PAC has made motion control even easier for people who are not programmers (in the traditional sense of the word). However, someone who is used to digging into the deep dark places of programming will not be dissatisfied! This is a totally open environment. Function blocks, POUs, and code can all be written as the user sees fit.
The PAC does a lot of the legwork for the user. For example, it automatically converts .dxf files to g-code, and – most importantly – once converted to g-code, the user can edit or add to that g-code. This flexible functionality is not common.
Typically, the more specialized the manufacturer makes the controller, the more limited its application will become because there is no ability to edit the programming work that the controller comes with. Overall, the PAC is very flexible in that inexperienced programmers (fresh college students) and experienced programmers alike can program complex motion programs with ease. Doing something as difficult as CAD to motion is literally a couple of clicks away.
If there is anything to take away from this section, it is that PAM is a wide open environment with so much work already done for the programmer with the ability to add to or edit that work. Oh yeah, did I mention that it is FREE?
PAM Programming Tree
To begin, PAM will automatically generate a basic project tree for you from a template. All of Figure 2 is populated for the user. In my opinion, everything is neat and in order. When I was working on the project at Parker, I did not realize how convenient it is to have a neat, organized, and flexible project tree created automatically. With other controllers, as the project gets bigger and bigger, the tree will look more and more chaotic, in turn, making it harder to find specific parameters, POUs, etc.
In PAM, everything is organized logically. For example, all POUs can either go under the application tab or under a totally separate window called POUs (literally drag and drop) see Figure 2. This would be similar to storing the POU in a library and called on later for use. This way, the programmer does not have to have 20 POUs in his or her project tree. Similarly all devices that the PAC communicates to is organized under the EtherCAT_Master (PAC320 EtherCAT Master) tab.
There are 6 programming languages that the user can choose from, the 5 IEC61131 standard languages (Sequential Function Chart, Function Block Diagram, Instruction List, Ladder Logic, and Structured Text) plus Continuous Function Chart (CFC), which is an extension of the IEC61131 and is a freeform version of Function Block Diagram.
The user is allowed to put function blocks anywhere on the page. It is advantageous to use CFC in some cases because it is less restricting. For one, connecting lines between function blocks are drawn by the user. CFC is a very intuitive programming language. The flow of the program is how the user would think. Figure 3 shows an example of CFC.
The beauty of having 6 programming languages is freedom. Not only is the user not constrained to one programming language per controller, but if desired, he or she can switch between languages during a single project. For example, you can program in CFC, but choose to write an entire POU in ladder logic.
By having 6 programming languages, it makes this controller flexible to the programmer, as well as the application. Some languages are suited better for specific tasks. For example, if things have to happen in a very specific, sequential order, ladder sequential function chart might be the best to use. Or, if the program involves a lot of math, structured text might be the best way to go. So, it only makes sense that the user should have a choice as to what they program in.
Ease of Connecting To Devices
Connecting to a device takes seconds. All of the devices (drives, I/O modules, etc.) are managed under the bottom tab ‘EtherCAT_Master (PAC320 EtherCAT Master)’. All the programmer has to do is right click on ‘EtherCAT_Master (PAC320 EtherCAT Master)’ and select ‘Scan for Devices’. A window will be opened with a list of devices that are currently on the EtherCAT network. Parker devices will automatically be recognized.
To add an EtherCAT non-Parker device (such as an I/O module or a valve manifold), the user has to download the .xml file of that device. Once the user has the .xml file, that file can be installed in the library manager. From here, the EtherCAT network will automatically recognize the device. An example of how to add devices to the network can be seen in Figure 4.
CAD – CNC Programming
One of the biggest differentiating factors in the PAC is the ability to do Computer Numerical Control (CNC) programming. The CNC tool in CODESYS allows the user to program multi-dimensional motions graphically and textually. In three dimensions, lines, arcs, elliptic arcs, parabolas, and splines can be programmed. For each programmed path, CODESYS automatically generates a global structure that can be used in the POU.
To add a CNC path to the program:
- Right click on the Application tab > Add Object > CNC program.
- Import a .dxf file (from CAD programs) into that program.
- Once the file has been imported, PAM automatically generates a visual of what the program code looks like.
This consists of a 2D or 3D visual space with all of the user’s points plotted in that graph. These points can be a point in space that you want a robot or gantry system to go to or an actual position that you want an axis to go to. In addition to that, PAM generates all of the necessary g-code that the program will use for motion. Figure 5 shows an example of a square and another of a more complicated path.
The greatest thing about the CNC tool is that everything I talked about above is simple and performed for you. All I did was add the CNC program and import a .dxf file. Not only has it all been generated for me, it is editable. All of the g-code is customizable. If you know g-code, you can write or edit your file from the g-code window. All points on the visualization window are editable by clicking on them and dragging them somewhere else (automatically updating the g-code command in the top window). Furthermore, the path that the CNC tool generates is editable.
It is great to have all of the target points in space or axis positions in the CNC file, but getting to those points is a whole other story. The system will not work well if the motion is not smooth or adjustable. CODESYS has provided a library of function blocks written specifically for the CNC tool. They were written so that the user has variable control of path interpolation between points. They come in handy when drawing curves, creating smooth motion, tool correction, path preparation, forward and backward interpolation, etc.
Instead of the axis jumping from position to position, these functions allow the user to customize everything about the path. For example, how often the path coordinates are sent to the drives, how smooth/rigid the motion is, or accelerations/decelerations of the path itself.
The CNC tool is very easy to use with all of the customizable motion aspects that one would expect. Simple CNC programs can be setup in minutes. However, the ability to customize the path and tweak it according to the user is also available.
As an added bonus, Parker has integrated the CODESYS Visualization tool within PAM. We now have the ability to visualize a live HMI and CNC path within PAM. The visualization tool works exactly how an HMI would. It is completely interactive while in online mode.
As an example, this makes it nice to see the status of your axis or jog an axis during the troubleshooting stage instead of turning all of your parameters on and off from a watchdog window. Furthermore, any function block can turned into a ‘frame’. A frame is a visualization of that function block. See Figure 6.
CODESYS has provided frames for many of their functions. However, the user has the ability to create a frame for any function blocks that are not already created or that are custom functions developed by the user. Furthermore, CNC paths can be visualized within the software along with live updates to watch the path.
The visualization tool also has the capability to create objects and visualize them. Below is an example of a 3 axis system created by one of our applications specialists, Ben Bishop. This visualization will update in the software as the program runs.
The PAC uses EtherCAT as its motion bus. EtherCAT is a deterministic Ethernet protocol developed by Beckhoff. It is, by and large, the fastest Industrial Ethernet protocol on the market. According to the EtherCAT technology group, EtherCAT can update 256 digital I/O in 11 µs and 100 servo axis in 100 µs. Figure 8 from the EtherCAT technology group shows a comparison between EtherCAT and other real-time Ethernet protocols.
Furthermore, because of the way EtherCAT detects devices, any network topology can be used: line, daisy chain, tree, or star. Devices can even be removed during operation without taking the network offline, which is beneficial in modular type systems.
From personal experience, I know that EtherCAT can be very powerful. When we were working on our project at the Parker training course, our group foolishly put all of our POUs (safety, motion, monitoring, camming, and our 6-axis robot kinematic calculations) under one ‘motion’ task. In hindsight, this was not a very smart thing to do. However, we were fortunate enough that EtherCAT was more than powerful enough to handle all of that in a 2 ms cycle time.
Gantry and Robot Function Blocks
PAM also includes function blocks for forward and inverse kinematic transformation for common gantry systems: XYZ gantry, XYZθ, XYZθ with a tool offset, T or H gantry systems with stationary axes and a belt that is running inside the guides, and a 5-axis system with transformation for XYZ and a 2-axis tool head manipulator. See Figure 9.
PAM also includes function blocks for forward and inverse kinematic transformation for common robots: 2 and 3 joint SCARA robots, 4 axis palletizer robots, 6 DOF articulated robots, and parallel robots including delta. See Figure 10
Included with all of these function blocks, there are detailed instructions on how to use them and what the variables mean in the help file. These function blocks can be very useful when someone has to program their own robot, but does not know the kinematics for that robot.
Overall, this controller has several functions that make it unique:
- The programming software is FREE – no licensing!
- The programming environment (CODESYS) is very intuitive, powerful, and user friendly.
- 6 programming languages. Whatever the user is comfortable with.
- Setup and configuration is easy.
- CNC programming tools are built in.
- Web publishable visualization tools are built in.
- Extremely fast EtherCAT motion bus.
- Built in function blocks for common gantry systems and robots.
If there is one thing to get from this article, it is that this is a very powerful, flexible PLC/controller. It makes motion easy. Please contact me with any questions you might have regarding the implementation of the Parker Automation Controller (PAC).