RSlogix5000 PID with discrete outputs

grnick50

Lifetime Supporting Member
Join Date
Nov 2010
Location
Ptolemaida
Posts
332
Hello,

I have already searched for that in the forum but did not get any satisfying answer, so here it goes:

I have a 1769-L36ERM that controls an Auma regulating valve. The valve expexts from the PLC two outputs, one for close and one for open. It also provides to the PLC a 4-20mA signal of the position of the valve. The use of the valve is to reduce the temperature of a hot water line, by injecting cooler water into it.
I intend to program a PID loop where my PV will be the temp of the water line and the SP will come from a SCADA.
From past experience I know that The PID block in Logix5000 provides its output in percent as an analog value. The question is how can this be converted to two discrete signals for closing and opening the valve. I have read that it be programmed as a time proportional conversion.
What I am looking for is to avoid programming that myself. I would prefer a well proven built in instruction that does that like it happens with Siemens.

Another question is what to do with the position feedback I get from the valve, apart from using it for monitoring and trending purposes.

Regards
 
I know what grnick50 is talking about since I have discussed these "step controllers" with Pandiani, remember him?
This application isn't exactly a split range application like in the Rockwell pdf.

Since grnick50 has the valve position as feed back this will be a cascaded loop system.
The outer temperature loop would be fairly standard. The output will be percent of valve opening like grnick50 says. The inner loop will be very simple. If the control output % is greater than the spool position the turn the open output on. If the control output % is less than the spool position % then turn the close output on. There will probably need to be a dead band so the valve doesn't open and close constantly when close to the temperature set point.

The outer loop can be slow but the inner loop should be fast so the valve doesn't go past its set point.

I don't think grnick50 will find a ready made block for this but it should be simple to implement.
 
As usual, Peter nailed this one.
The inner loop doesn't need to be a PID, just two compares, and yes, you will probably need to put at least 1% of deadband before taking a control action in the inner loop.

When using a setpoint that way, from a PID you can do something like:

CMP Valve_Actual < (Command_Pos - 1) OTE OPEN_Valve

CMP Valve_Actual > (Command_Pos + 1) OTE CLOSE_Valve
 

Similar Topics

Hello, I have a program that monitors pressure in a manifold discharge pipe. Pressure in the pipe should be less then 7.5 PSI. If the pressure is...
Replies
17
Views
12,742
Hello all, I cant figure out why my PID is oscillating between 0 and 100 percent. My set point is steady and whenever I take my PID out of...
Replies
4
Views
3,468
Hello, Question: (Temp is whats being controlled here by 3 fans) Using a PID; can I set my output (CV) to be 100% at a specific input (PV)? In...
Replies
9
Views
2,230
Dear all I would like to ask you for help in solving one algorithm, because I never worked with cascade PID. I have to realize heating valve...
Replies
12
Views
8,317
Hi ! Here is my first post :) I want to implement three (3) independent PID controlers (block) in a Controllogix controller. They will be used...
Replies
1
Views
2,046
Back
Top Bottom