In several places in our process, we have a flow control module connected to a flowmeter and valve. When starting flow, often we want to "jump" to a specific valve position then begin automatic control from there. This worked well on our previous control system. We recently upgraded to DeltaV, where the same technique doesn't seem to work.
In DeltaV, there is an AI block (the flowmeter) as input to a PID, whose output goes to an AO block (the valve). The AO block's BKCAL_OUT is then fed back to the PID block's BKCAL_IN.
In our previous control system, we would do its equivalent of this:
'//#WFI_FLOW_CTL#/PID1/MODE.TARGET' := ROUT;'//#WFI_FLOW_CTL#/PID1/ROUT_IN.CV' := 50;
'//#WFI_FLOW_CTL#/PID1/MODE.TARGET' := RCAS;'//#WFI_FLOW_CTL#/PID1/RCAS_IN.CV' := 120 ;
In that system, it would open the valve to 50% (causing an immediate and considerable flow), then begin automatic controlling with a setpoint of 120. In DeltaV, even with the first two statements in one action and the second two in another (delaying off of the previous statement's completion, whose confirm is OUT.CV = 50), the actual valve doesn't open to 50%. It acts almost like the first two statements don't exist; the valve starts fully closed (the condition before any of these statements) , then slowly opens until the setpoint is reached. This causes the flow to begin at zero, then slowly ramp to the desired flowrate, rather than starting near the setpoint and tweaking from there.
How do we put a PID into RCAS, but have it start at a given output and adjust the output from there?
In reply to Matt Forbis:
In reply to gamella:
Here's a screenshot of the actual actions for one area of our process. (It's slightly different, particularly the confirms, but is essentially the same method.)
(Notes: R_WFI_OPEN = 20, P_WFI_RATE = 70, MODE = PID1/MODE, ROUT = PID1/ROUT_IN, RSP = PID1/RCAS_IN)
So A4 sets the module to ROUT with an output of 20, and confirms that the target mode is ROUT and the target output . A5 waits for A4 to complete, then sets the module to RCAS with a setpoint of 70 (P_WFI_RATE = 70). That SHOULD have had the output start at 20%, then had the PID start controlling. But what really happened was that the PID1/OUT started at zero and slowly ramped up until the flow setpoint was reached. I've watched it happen twice in real time; the output really does start at zero and control up from there. Both the unit (that the phase is running on) and the module are on the same controller.
If Matt Stoner is correct, it's possible that the ROUT_IN isn't getting fully set due to being in the same action as the MODE change to ROUT; if so, gamella's solution of splitting them into 4 actions would seem to work. Could we do the ROUT_IN first, then MODE:=ROUT and RCAS_IN in an action, then MODE:=RCAS? Or does it really need to be 4 separate actions?
In reply to Andy Hairston:
In reply to Mark Bendele:
Andre Dicaire