Motorised valve control

burnerman

Member
Join Date
Nov 2005
Location
Huddersfield
Posts
212
Has anyone seen a good working example of a program to control a motorised valve from a plc's PID block?

That is to say use the numerical output of the PID block to drive a pair of discrete outputs - "valve move towards open" and "valve move towards close" - based on the full stroke travel time of the motor rather than relying on a slidewire position feedback signal.

Preferably for a GE Fanuc 90-30 but not really important - it's the routine not the code that we're interested in.

We've programmed our own before but they never seem to work as well as the proprietry panel mounted controllers, e.g. West, Eurotherm, Honeywell etc.

 
The PID function needs a feedback signal to function properly. That's the process variable (PV) part.

If you have a feedback signal then you might be able to use PID for your application. When the CV value is positive, turn the motor in one direction, when it's negative, turn the motor the opposite direction.
 
We have a PV input, usually temperature from a thermocouple, as the feedback to the PID block.

It's the positioning of the valve that's the issue, which in itself is a control loop, but without feedback in this case.

Most PID blocks have a numerical output assuming that the controlling device has a built in positioner such that if OP=0% the valve will be closed, OP=20% the valve will be 20% open, etc. etc.

I think AB used to have a special PID block with discrete outputs specifically for motorised valve applications (I'm not sure if they still support this in the current range of processors - it's been a while since we used AB) it would be interesting to know the algorithm behind that block.
 
Would this by any chance be a high output AH gas burner ? and are you using a modutrol valve ? If so , while there is a solution for 3 pos control , there is a possibility of adding an analogue module to the modutrol . What PLC are you thinking of using ? Some time back I wrote a block for S7 that controls a modutrol 3 pos , and took the inputs from an LGK to generate control and alarms .
 
Last edited:
10baseT said:
Would this by any chance be a high output AH gas burner ? .

Not in this case but we have had many similar applications.
The analog module for the Modutrol works well, we've used them before.

This application is for an existing system which currently uses a Hi/Lo temperature control routine, we were hoping to improve the control by going to PID control in software only without investing in analog modules, output cards, wiring etc.

The plc is a GE Fanuc 90-30 but if you have a pdf of the routine written in S7 I'd be interested in how you did it.
 
The ABB Commander PID controllers have a mode called "boundless valve control" which does what you want. It's described in the manual (which I've lost). I have used it, and it worked pretty well.
 
OK, i've got you , it's not a modulating valve in the true sense. I've done similar control with the old stordy duct burners (junk) - I'll pdf the control block , you should be able to use it . What kind of turn down between high fire and low fire ?
 
Thanks 10baseT
Turndown is only about 3 or 4:1, its a Riello oil burner with a Landis SQM50 motor, suppost to be capable of modulating control but the original installers decided that Hi/Lo would be adequate. Temperature control now oscillates +/- 100 deg.C from setpoint of 1000 deg. - we're hoping for something like +/-10.
 
what do they have for pressure control ? I assume that the pump is constant speed , then there is a bleed off for lo fire - if this is the case , I think that you will struggle to get the control you wish , there may be a possibility to run the pump variable speed . What is the size of the burner ? , with the turn down you mention , is see variable pressure on the nozzle as the only way to go to get the tolerance required . What was the original modulating control method ? bypass oil or pump speed ?
 
The valve positioning in discrete loop controls is an accumulating timer function. Motor full travel time is predetermined and then you log clockwise accumulation time vs counter clockwise time. Re-zero the counters at full off mode. You can set a small time amount as not-accumulated since that represents motor linkage slop loss. You are close looping on the process PV, so the system works fine.

Cheers.
 
The burner was manufactured as a true modulating burner, we can vary it by forcing the close/open outputs manually so no problems with the mechanics of it all.
It's just that the original installers decided that hi/lo control would be good enough and didn't bother to use it to it's true modulating potential.

The current control loop simply compares the PV with the SP and says if PV < SP then turn on "open valve" output, else turn on "close valve" output. Therefore the burner is simply oscillating between high fire and low fire.

We want a PID control routine who's output will pulse the open and close outputs to effectively modulate the motor in small increments. Like Mickey said, it's a form of PWM. I have written my own programs to do this before but I must be missing a trick because they never seem to work as well as the proprietry temperature controllers we've used such as the ABB Commander that AutomaticLeigh mentioned.

For interest the burner has a fixed speed a.c. motor driving the blower and oil pump (oil pump has constant pressure output).
The SQM50 motor actuator drives a needle valve in a leg which bleeds oil away from between the pump and the nozzle (thereby varying the oil pressure at the nozzle - hence oil flow).
Also the SQM50 drives an adjustable cam to which is connected the linkage that opens and closes the air inlet damper. It also has another linkage which moves a sleeve which varies the annulus and hence the proportion of air which flows around the air diffuser (swirl plate). For an oil burner it's not too bad at keeping in reasonable ratio from low to high fire and in between.
 
I'll finish pdf'ing up what I have and post , now I get you about the method of control and dilution - the thing isn't just going between hi and lo fire , it still can modulate , no reason why this can't be succesfully controlled - I figured that you meant it was either Hi or Lo , with nothing in between .
 
Simply using PV < SP then turn on “open valve” else turn on “close valve” will surly cause oscillation as you stated. You need some type of dead-band and a delay between adjustments.

I’ve done something like this for valve control before, it’s a quick and easy method of control. For your dead-band you said you want to be +/- 10 so you need to have at least two statements. Then you need to add some time delay into those rungs to allow the process to stabilize to the adjustments you make. I’m not sure about your process, but you might use (2) timers in those rungs, one to allow the adjustment every so often and another to make the adjustment. So you might use one timer set at 1 minute and another set for 5 seconds, this will limit your valve adjustment to a maximum of 5 seconds every minute.

If PV < (SP – 10) and 1 minute timer and 5 second timer then open valve
If PV > (SP + 10) and 1 minute timer and 5 second timer then close valve

You could add additional rungs to make larger adjustments if the error between PV and SP is greater than X.

If (SP - PV) > X and 1 minute timer and 30 second timer then open valve
If (PV – SP) > X and 1 minute timer and 30 second timer then close valve

Crude, but it will give you better process control than what you have. If you want to get fancy you could try to do a type of PWM. In a PWM (or time proportion control) you use two timers, one is the period timer and the other is the duty-cycle timer. The period timer determines the cycles, i.e. 1 minute timer that I used in the example above. The duty-cycle timer gets it’s value from the PID. Since your period is 1 minute, you would scale the PID output for 0 to 60 seconds, then use this value for the duty-cycle timer. To incorporate PWM into your control you will need to determine if the output if the PID is greater or less than the previous PID output, because you will need to either open or close the valve.

If (PID output > previous PID output) then open valve for the time of (PID output – previous PID output) during the 1 minute cycle
If (PID output < previous PID output) then close valve for the time of (previous PID output – PID output) during the 1 minute cycle
Store PID output as previous PID output
 
I tried doing exactly that for a pumping speed controller in a vacuum furnace once. I had the open and close times of the valve and even had the PLC re-check the open and close travel time when the vacuum pumps were evacuating the foreline and pumping speed control was not needed. I never did get it to work right until I added true position feedback of the valve. The problem is that valve inertia comes into the picture, and after making a few adjustments to the valve postion you no longer have any true idea of where the valve is actually positioned until you hit one of the limit switches. An inexpensive POT for feedback fixed the problem.

The PID developed a valve position command based on the chamber pressure to be maintianed while process gas was flowing through the furnace. I determined a position tolerance empirically (read trial and error), and if the valve position was outside the position defined by the PID + the tolerance, I just turned on the valve motor one director or the other until it was within the tolerance. Once I had position feedback, it worked great.
 
Last edited:

Similar Topics

i need a solution, there are 3 different room with 3 conventional thermostats, if each room temperature should be maintained 30 degree celcius...
Replies
22
Views
7,853
I want to maintain a constant pressure of 5.3bar in a compressed air ring main by exhausting air through a silencer using a 1inch ported Valpes...
Replies
6
Views
3,053
How do we interface a motorised valve to Micrologix 1200 PLC?
Replies
3
Views
4,016
Good morning, We've had an issue with a couple of servo valves and was wondering if anyone had seen anything similar. After a drop in pressure...
Replies
2
Views
62
Hi, The hardware is: Click Plc model # CO-O1DD1-O HMI model # S3ML-R magnetic-inductive flow meter model # FMM100-1001. I will set the flow meter...
Replies
4
Views
117
Back
Top Bottom