Electric actuator ball valve Control. No 4-20 mA Control.

nearxos

Member
Join Date
Aug 2020
Location
Cyprus
Posts
13
Hello. need a bit of help here.

i am trying to control an electric actuator ball valve to maintain a specific flow of water. the valve doesn't have a positioner and cant be controlled by any analog signal. it can be energize an turn until is fully open or fully close.
i am using a flow meter for feedback.

the logic is if the flow is bellow the setpoint the valve will gradual open and if its above the setpoint will gradually close

any help to implement that will be appreciate.

TIA
 
Setup your PLC to run a PID Loop and have the output control the valve.

PLC PID would monitor the FlowRate and it checks against the Setpoint to adjust output.

This is how I might handle this project.
 
What platform?
Here is what I have done in the past. Assumed two solenoids, Ladder Logic:
Network1: Create a 2.0 second self resetting timer.
Network2: If flow < setpoint, and Timer.Q energize Open Output.
Network2: If flow > setpoint, and Timer.Q energize Close Output.

You may have to change the timer to fit your situation.
Every time the timer "done" bit is true, the output will be energized for 1 scan.
You may have to add a deadband to you setpoint. So that when is "close" you do nothing.
 
Is there a valve position sensor on the valve?


Is the rate of closing and opening constant?



Are there two or three possible control states for the valve?

  1. Valve is opening (slowly, but opening)
  2. Valve is closing (again slowly, but closing)
  3. Valve is not moving, not fully open, not fully closed?
The first two states I assume are possible; is the last an option for the PLC to control?


Also note that ball valves are good for on/off service, but not always the best for flow control. What type of ball valve is this e.g. V-port, etc.?
 
Last edited:
What platform?
Here is what I have done in the past. Assumed two solenoids, Ladder Logic:
Network1: Create a 2.0 second self resetting timer.
Network2: If flow < setpoint, and Timer.Q energize Open Output.
Network2: If flow > setpoint, and Timer.Q energize Close Output.

You may have to change the timer to fit your situation.
Every time the timer "done" bit is true, the output will be energized for 1 scan.
You may have to add a deadband to you setpoint. So that when is "close" you do nothing.


i am using Codesys
 
Is there a valve position sensor on the valve?


Is the rate of closing and opening constant?



Are there two or three possible control states for the valve?

  1. Valve is opening (slowly, but opening)
  2. Valve is closing (again slowly, but closing)
  3. Valve is not moving, not fully open, not fully closed?
The first two states I assume are possible; is the last an option for the PLC to control?


Also note that ball valves are good for on/off service, but not always the best for flow control. What type of ball valve is this e.g. V-port, etc.?

-no valve position on the sensor.
-rate i believe is constant.
-all three states are possible valve can stay half open
 
Two possibilities to consider:

1) If you want to use a PID loop check if your controller or PLC PID loop has a heat/cool option. That can bump your valve open or closed as the loop output.

2) Floating control: You compare the process variable to the setpoint. If it is outside a tolerance zone you bump the valve open or closed with a timed output. Wait a few seconds (or minutes depending on your process) and compare again, bump again as necessary, and repeat until the process is within tolerance. Use the limit switches on the actuator to indicate when you hit max position and limit travel.
 
I think Ken's suggestion, and Tom's #2 suggestion, are similar, and are basically an I-only controller (i.e. PID without P- or D-action).
 
Those motorized valves are usually controlled by a single SPDT relay that either chooses OPEN or CLOSE.


However you figure out how you want to program the flow control simply use 2 outputs with SPST relay contacts - one to open as needed and one to close as needed.
 
What platform?
Here is what I have done in the past. Assumed two solenoids, Ladder Logic:
Network1: Create a 2.0 second self resetting timer.
Network2: If flow < setpoint, and Timer.Q energize Open Output.
Network2: If flow > setpoint, and Timer.Q energize Close Output.

You may have to change the timer to fit your situation.
Every time the timer "done" bit is true, the output will be energized for 1 scan.
You may have to add a deadband to you setpoint. So that when is "close" you do nothing.


i am using Codesys


Language is irrelevant; interpret what Ken wrote as a general algorithm and code it up.


I would definitely go with the deadband idea; it may take some tuning to get the best timer preset and deadband combination; response time to valve movement of, and noise in, the flow measurement will be part of that.


If you wanted tighter control you might be able to use the .EV or .PV of the timer to essentially implement PWM, but if the valve moves slowly enough I suspect that will not be necessary.
 
Language is irrelevant; interpret what Ken wrote as a general algorithm and code it up.


I would definitely go with the deadband idea; it may take some tuning to get the best timer preset and deadband combination; response time to valve movement of, and noise in, the flow measurement will be part of that.


If you wanted tighter control you might be able to use the .EV or .PV of the timer to essentially implement PWM, but if the valve moves slowly enough I suspect that will not be necessary.

BTW, I used the above code on a similar system, controlling defoamer flow to a basin. I ended up with the one scan "on", because the valve moved to much if any longer. I used a small Siemens 1214 for the CPU.
 
Two possibilities to consider:

1) If you want to use a PID loop check if your controller or PLC PID loop has a heat/cool option. That can bump your valve open or closed as the loop output.

2) Floating control: You compare the process variable to the setpoint. If it is outside a tolerance zone you bump the valve open or closed with a timed output. Wait a few seconds (or minutes depending on your process) and compare again, bump again as necessary, and repeat until the process is within tolerance. Use the limit switches on the actuator to indicate when you hit max position and limit travel.

I've done option #1 in both RSLogix (500 and 5000) and TwinCAT 3 (Codesys) for heat control, with very good results. I'd be interested to know how well it would work with a slow moving ball valve though. Slow moving might be beneficial though(?) with an on/off valve.
 
Last edited:
unfortunately not up to me.

I am not sure how accurate this control needs to be, but getting a decent linear flow out of a ball valve is "up hill" this was never a part of the ball valve design.

If your valve is in the top of the line, you might be able to replace the ball with a V-Ball, that will put you in a much better starting position.

I would stress this to the customer, before diving into the project.
 

Similar Topics

I'm looking for electric rotary actuator with field bus.
Replies
5
Views
1,170
I have an electric actuator with a 75% duty cycle. I am sending an analog output from a PID to a controller board on the actuator. My concern is...
Replies
6
Views
2,403
I have used electric actuators for many years to operate Adjustable Port Valves made by the company "North American". I have used several brands...
Replies
4
Views
2,294
Hi everyone, Just thought to pick your brains: We have small application where small actuator is required to extend or retract pin to lock two...
Replies
6
Views
5,250
Dear All, I need to buy electric actuator and its spares of a actuator installed here....the actuator is supplied by german party and I have...
Replies
3
Views
2,895
Back
Top Bottom