I need some PIDE help!

travispedley

Member
Join Date
May 2012
Location
NC
Posts
191
OK, 1st off, I have almost 0 pid experience.
I have a tank that holds a product. I need to regulate the temperature of the product using steam / chiller. each has a 4-20mA flow control valve. i set up a cascading loop like the one shown in the attached manual. it isn't working. like, not even close. The pid won't respond until its well passed the setpoint in each direction (heating and cool). I have 2 sets of these cascading loops, one for the heating circuit and one for the cool. I have to be able to hold 0.25deg C for 30 minutes. What do i need to set as far as parameters in the loops?? nothing i do in the gains seems to make it stop overshooting.
there is a 0.25 degree deadband between the two actions.

i need some serious guidance on how to setup these loops, thanks for any help.
 
One place to start, assuming cascade control is necessary to meet specification, is to make sure the primary (inner) loops are tuned and working correctly. Those loops will need to have much faster response, as described in the Rockwell document. Only when you are sure the inner loops are working, would it be appropriate to link the outer loops.

And then there is the split heating/cooling aspect. This is not a simple application to get started on.
 
You'll have to post all the config for the PIDE instructions - a meaty beast of an instruction with options a plenty. The PIDE instructions can do a lot, probably too much

Also you don't need two master loops cascaded into two slaves. You only need one master and then can split range & scale its outputs into the slave cooling or slave heating. You can handle the dead band in the primary loop. Less than 50% into the heat slave loop, greater than into the cooling slave as one example
 
One place to start, assuming cascade control is necessary to meet specification, is to make sure the primary (inner) loops are tuned and working correctly. Those loops will need to have much faster response, as described in the Rockwell document. Only when you are sure the inner loops are working, would it be appropriate to link the outer loops.

And then there is the split heating/cooling aspect. This is not a simple application to get started on.

I agree that you picked a difficult one to start on. We use a lot of split heat/cool loops here, and one thing we did to simplify control is to only use one inner loop, with a split output. i.e. if the CV of the inner loop is <= 49.5%, send the output to the cooling valve; if >= 50.5, send it to the heating valve. The only downside is that you may need different tuning constants for heating and cooling, but that can be done with move statements. Now your single outer loop just has to send its CV as a setpoint to the inner loop, so you need to do the needed math to establish the endpoints of your desired inner loop setpoint.

EDIT.... I see raffles beat me to it.
 
Last edited:
Thanks for the suggestions guys, I have written a new routine with 1 PID feeding a SRTP. >51 Heat valve full open, <49 Cool valve full open.

I'll post any results in the next few days. Sadly, this tank is pretty big, takes more than an hour to get from setpoint to setpoint. Not helping that the customers steam supply is 1 degree hotter than my target... They're working on it.
 
Ok, here is my problem now. when my PV approaches SP the CV starts to drop, which activates the cooling circuit while I'm still under SP.
Not sure what i'm doing wrong.

pide_eu.JPG pide_gen.JPG srtp.JPG
 
you will need to use a other type of controller with 2 outputs cool/heat.
Take care the tank is mixed properly and the sensor is in a good position.

In oscat.de there is a functionset with these.
or have a look at a HVAC control.
 
What are your other SRTP settings? Generally, I use the time proportioned output so I get minimal heat at 51%, full heat at 100%. Cooling, minimal at 49%, full at 20%, and a 5 or 10 second period.
If the PID starts cooling before hitting setpoint, it could be too much derivative, or too much proportional, preventing the integrator from leveling out.
 
seems like a setup error or something on my end.
using the SRTP like this, when the PV=SP i would need the CV to be at 50%, when in reality it is at 0%.

as my PV approaches SP, CV drops accordingly. seems like i need my CV to be "balanced" where PV = SP = CV 50%.

not sure how to do this.
 
I don't know how time sensitive the error correction has to be in your application, but unless my applications are time sensitive (can't afford a 10% deviation for more than 30 seconds), I prefer SCP instructions to make adjustments. A lot simpler to troubleshoot. In RS500, you need to restrict the values coming in (usually through LIMs) to match your SCP parameters. SCPs in RS500 will still scale the value beyond the limits you want if you don't "lock" them out.
Also, if your processor is 'bogged' down, it might appreciate the 'lighter' SCPs.
 
I went the homebrew route as RobertB suggested.
Wrote my own, had it working in 30 minutes. I reckon I need to go to a PIDE boot camp or something, but it confirms my hatred of all things PID.

Thanks for the suggestions and help from everyone.

aoi.jpg newsrtp.jpg
 

Similar Topics

Hey guys, I'm in need of some expert knowledge to assist in some RsLogix 5000 programming, FBD. I currently have PIDE Loop 1 and PIDE Loop 2...
Replies
8
Views
4,121
We are trying to poll data coming from a PLC for remote monitoring we have the IP address of the PLC and the default port number and the path is...
Replies
25
Views
418
The idea here is to provide for a brief rapid influx of message codes while preventing sequentially repeating the same message. i.e. if two...
Replies
23
Views
501
Hi all Trying to remotely connect to a TIA Portal PLC. I can ping it without a problem but can't get my software to connect. I've opened port...
Replies
8
Views
281
Hi all. That will be a stupid question for a lot of you guys. I'm talking with ProSoft support and he sent me an example late yesterday: XIC...
Replies
9
Views
331
Back
Top Bottom