I was recently involved in troubleshooting a machine that I'd originally built and programmed for some prototype work, and which was later moved into production.
Unfortunately, it had developed an issue that caused it to run unsteadily, and of course production needed it fixed a.s.a.p.!
The issue seemed to be related to the closed-loop tension for one of the servos.
In this particular system, the PLC receives a load cell value from a signal conditioner that is powered by 24VDC. This signal is an analog signal of 0 to 10vdc.
Like many signal conditioners, the one used had a setting to allow selecting different input ranges (typically in the millivolt range for load cells). The output is then sent to the PLC where it has specific programming and/or hardware to handle the input signal (common ranges include 0 to 10VDC, 0 to 5VDC, andr 4-20mA).
As I saw it, I needed to determine if the issue was (a) the load cell setup, (b) the servo system itself (improperly sized?), or (c) a problem within the PLC code.
I started troubleshooting by stepping through the measurements and setup for the analog input, hoping to eliminate both the load cell configuration and the PLC’s code. Then if needed, I’d inspect the servo system.
When designing a servo system, the user needs to consider the speed of the motor, inertias, and the torque needed for the final system to work. So I thought it doubtful that at this stage it would be the design that was the problem since the machine had run successfully for over a year.
However, remember that this system was created as a prototype to test a process, I had to concede that the process of specifying parts and how they would be used was not done in a typical way.
Also, another unfortunate point about moving a prototype machine into production is the fact that when you’re asked to put together a prototype on a limited budget, it’s common to make use of used equipment already on hand, as well as not design the system with longevity in mind.
Back to the troubleshooting of the machine, the first step I took was to take a detailed look at the load cell.
The process engineer was using three different load cells that are swapped out depending on the load of the material in the machine, and the range of tension needed.
Intuitively I knew that could pose a problem, but luckily all three outputed a standard 21mV signal. Upon reviewing the design and specifications of each load cell, I found they were also all the same resistance and had the same nominal excitation voltage (10VDC).
So at that point I eliminated that part of the system as being the cause of the problem.
Next I focused on the signal conditioner, which had a series of dip switches used to set the starting and ending input values from the load cell (in this case, 0 to 21 millivolts.)
The signal conditioner also had a bank of switches that set the output signal discussed above.
But something I did notice was that the switches were NOT at the default settings for this unit. This is something I knew I needed to double check, but after I did I found that they all looked good.
Next, I moved on to reviewing the PLC parameters in the analog hardware setup.
This system is controlled by a Mitsubishi FX5, programmed with GX Works 3, which is one of the nicer software packages I’ve worked with (more on that in a future article.)
For some reason, I found non-default parameters set in the scaling, shift, and clip settings, which seemed odd?
So I decided to download the defaults, but found the issue still there.
But when I combined the defaults with a control function that would force a fixed tension (used for debug purposes,) the unstable condition completely went away?
Not only did it go away, the system was much more stable with lower values of tension, which meant the issue is definitely not what I originally thought.
To be absolutely sure, I ran through the below testing process several times:
- Start the machine
- Begin with a fixed output for tension.
- Switch over to PID controlled tension after a short period.
Each and every time the system would now run perfectly smooth.
I discussed the issue with some of my colleagues and found that some of the other machines with similar controls would also startup at a fixed tension before switching to PID control after several seconds, confirming what I was seeing.
With that issues resolved, we'll now be adding this additional tension switching functionality into not only this machine, but also future machines which we are getting ready for production.
So in summary, the solution to the issue was different than what I expected. In the end the system just needed to stabilize first with fixed tension setting prior to into PID control. Once this was discovered, a simple process change was all that was needed.
So when analyzing a system to resolve issues, you have to keep an open mind as to what the issue might be, as well as understand how the different components of the system interact as well as how peripheral equipment can affect them.
Written by Paul Hunt
Senior Automation Engineer and Freelance Writer
Edited for content and clarity by Shawn Tierney
- Industrial Raspberry Pi Project, Part 2 - March 10, 2021
- Industrial Raspberry Pi Project, Part 1: - February 17, 2021
- How to Download and Upload Mitsubishi PLC Programs using GX Works3 - January 16, 2020