AB SLC 04/05 - Signal Conditioning

LeDude

Member
Join Date
Nov 2008
Location
Wisconsin
Posts
19
Gentlemen,
I need your expertise and would appreciate your wisdom:
I am working on an uncoiler which due to design issues causes a lot of wobble (the coil is off-center). The spool diameter is measured with a sensor giving out a continuous signal. As a result the VFD, which is getting this signal through a SLC04/05 accelerates and decelerates the uncoiler unnecessarily. We are talking 30hz of variation here which caused Overvoltage Faults which I fixed with a brake module and resistor.
Anyway, the actual rootcause for this accel/decal seems to be the wobble.

I assume using some kind of signal-conditioning using anti-lising or averaging of the output signal of the sensor would be the way to go (mechanical fix is in process), but I want to educate myself and hope you can share some professional solutions and ideas. I have never done this and taking the line down to experiment would be expensive. :D
I found a lot of FIFO,FUFU and FIFI ( :D) and whatnot averaging-code, but I am not sure if that’s how I should do it. :unsure:

Educate me, please. :geek:

Thank you
 
It would help us to help you, if you would attach a print-out of the part of your program that controls the VFD. Even better, if the program is not too long, you could ZIP it and attach the whole thing.

Is the VFD speed dependent on the diameter of the coil (whcih varies)? Did you try adjusting the ACCEl and DECEL times for the VFD? You might be able to increase these times enough so that you don't get the overvoltage trips. The longer the acceleration and de-acceleration times in seconds, the smaller will be the motor currents. The VFD speed will change slower as the Accel-Decel times are increased. There is probably a limit on how high you can go with this due to losing control over the drive (it becomes unresponsive).

If you do need to average the signal, then you do not need a FIFO for that. Simply set up a memory location for "Old Signal". Then for each PLC scan, do a Compute: "Filtered Signal" = (2 X Old Signal + New Signal) / 3; Old Signal = Filtered Signal. Then use the new "Filtered Signal" to control your VFD. You can adjust the multiplier and divider as needed to find a stable signal.
 
Last edited:
I can do that once I have access again...

Basically: Sensor Output is 0-10V to PLC. From there it goes via Scanport to VFD (1336 Plus II)
 
Okay. I found that the old AB 1336 has adjustable programmable parameters for the Accel and Deaccel time settings (Parameters 7 and 8 in the programmable "Setup" menu). The default settings are both 10 seconds. If you increased Parameter 7 and 8 to 15 seconds, that might be all that is needed to fix your problem with the Overvoltage trip.
 
Last edited:
Okay. I found that the old AB 1336 has adjustable programmable parameters for the Accel and Deaccel time settings (Parameters 7 and 8 in the programmable "Setup" menu). The default settings are both 10 seconds. If you increased Parameter 7 and 8 to 15 seconds, that might be all that is needed to fix your problem with the Overvoltage trip.

Accel and Decel have to be fast. The uncoiler is 2m away from the line infeed.
So upping the accel/decel time is not an option and also not necessary anymore, since the brake module does the job, and I played with all those settings before I ordered the brake module which that made things worse. Currect Accel time is 3sec and decel is 7sec. This is working fine.
 
I saw this example already, now I just have to convert it in actual code :whistle:

Tricky part about your code is you are going to convert your data to floats then back to integers keeping in mind the rounding error you are going to create. The rounding should not be an issue since you can compensate with your constant.
 
Accel and Decel have to be fast. The uncoiler is 2m away from the line infeed.
I hope you realize that filtering your signal will cause a VFD reaction similar to increasing the acceleration time - it will take longer for a signal change to have any effect. Screwed again!

Instead of a filter, maybe you do need to use a true signal average over each coil oscillation cycle, say 10 signal readings over the past XXXX miliseconds, then at the end of each time period, add the total signal readings and divide by 10. The time period will depend on the oscillation period of your coil. Set the timer Preset to the average time for 1 oscillation cycle. You may even need to make the timer Preset a variable, so that it decreases inversely proportional as the VFD speed increases.

Before I tried averaging, I would set up a "smart" filter that chops off obviously wrong signals, either too big or too small. You said it was an Uncoiler, so I assume the signal is reading the diameter of the coil and increasing the unwind speed as the coil diameter gets smaller. On each revolution, you can compare the new signal to the previous diameter. If it is larger, you know that signal reading has to be an error, so throw it out. You probably know the minimum final diameter of the coil (the Minimum Possible Diameter). If your new reading is smaller than that Min, then also throw it out. Then average the remaining readings over the oscillation period, and those signal numbers should give you a smooth curve from Max Coil Diameter to Min Coil Diameter.
 
Last edited:
Uncoiler VFD Speed Control

Studying the problem again, the difficulty seems to be that if you read the diameter when the coil is offset (has a bulge at the point where the signal reading is made), then an error will always be introduced into the signal. However, if you could always read the signal when the coil is at the same rotational position (at the same point on the coiler hub circumference regardless of a bulge or not), then any bulge errors would be nullified. To do that, you need to calculate:

Rotation time of the coil hub in miliseconds = Ratio of the coil hub cycles per HZ of the VFD, divided by the HZ speed of the VFD, multiplied by 1 sec/1000 miliseconds.

where:
Ratio = coil hub to VFD speed (motor Revolutions/HZ X Coil Hub/Motor Gear Ratio)

HZ speed = ouput from VFD for the current VFD speed in cycles per second.

Set a self-resetting 0.001 time-base timer to have a variable Preset = calculated Rotation time of the coil hub. Then each time that timer DN bit goes on, read the signal, eliminate any too low or too high readings, then use that signal as the new number to set the VFD speed. Then use the new VFD speed to recaluculate the new Preset time for the the next signal reading (when the coil should have made approximately 1 revolution and be back at the same point). This method will give one signal reading for each 1 coil rotation. If the coil diameter changes slowly, that may work. If it changes rapidly, it will not work.

Surely somewhere out there in this world, someone already has a canned program routine for Uncoiler VFD Speed Control.
 
Last edited:
Obviously, the best solution is to eliminate the eccentricity so that the signal from the diameter sensor is cleaner.

If you can't do that, consider measuring the length of product fed off the roll and calculate the diameter from that. It will depend on being able to set an accurate value for the starting diameter.

You could also try sampling the diameter sensor once per revolution at the same angular position every time. Use the sampled diameter value instead of a continuous signal.
 
You could also try sampling the diameter sensor once per revolution at the same angular position every time. Use the sampled diameter value instead of a continuous signal.
The attached 3 rungs are an attempt to set up a timer to allow signal sampling at the same rotational point, and also to clamp the signal between Min and Max possible values, thus weeding out obvious signal errors. I planned to use a 0.001 milisecond time base, but the SLC 5/04 has 0.01 as the smallest timer base.

The routine needs a speed input signal from the VFD, or because the speed is being set by the PLC, then just use the PLC analog speed output value (assuming that the VFD is following that setting closely). This old routine used analog current values, but should not be difficult to convert to your voltage output signal range.
 
Last edited:

Similar Topics

I am trying to make a pressure transducer work with my SLC but I don't want to fry my analog card. I am powering the transducer with 24V DC. The...
Replies
5
Views
3,614
hi..I need help to design a ladder logic that will generate 20 to 4 ma signal in 7.7min (462 sec). the output signal should be decreasing with...
Replies
7
Views
2,470
I’m attempting to send a temperature from a SLC-5/02 to an EZiMarquee display. The vendor said to use a MSG instruction to send the data to the...
Replies
1
Views
83
Hello all. I have a few SLCs in my plant and of late we've seen a weird issue: The system will be running normally and then randomly the outputs...
Replies
2
Views
97
I am working on setting up a Prosoft Datalogger model PLX51-DLplus-232. This unit will be collecting data from a SLC 5/05 on the DB9 port set to...
Replies
3
Views
103
Back
Top Bottom