RS5000 PID Instruction Assistance

knight1fox3

Member
Join Date
May 2010
Location
Wisconsin
Posts
14
Hello All,

Let me first start out by saying this is a great forum. I've found a lot of useful information on this forum and am glad to have found it.

Now to the point. I am working on an application involving a CompactLogix PLC, proportional hydraulic valve (analog +/-10VDC), and an analog pressure switch (4-20mA). There are two additional proportional valves which, based on their position, will demand pressure from the main prop. valve accordingly. I would like to control the main prop. valve with a PID instruction in RSLogix5000. Being an elec. engineer, I am pretty familiar with the in depth analysis of PIDs that I learned in school. However, I am not too experienced in using a ladder logic PID for a real-world application. That said, I've attached a PDF of what I think the PID controller should be configured like in addition to part of my code with the PID integrated in it. I found some great pointers for a good start at the following thread. I am basically looking to see if I have my PID instruction and ladder logic control configured correctly. Any assistance/comments/suggestions with this would be greatly appreciated. Thanks in advance. (y) Let me know if I need to provide any additional information or answer any specific questions.
 
Greetings knight1fox3 ...

rather than a PDF file (which I'm having some trouble opening) can you ZIP and post the complete ACD project file instead? ... that will probably give us more information - and help us give you more detailed answers ...

and welcome to the forum ...
 
I'm not a big AB PID user, but everything looks right to me. I question your 0.25 sec update time. That seems pretty slow for a hydraulic system unless you have alot of accumulation relative to your flow.

Given the way you come up with the pressure setpoint I'm having a little bit of a hard time understanding your hydraulic circuit. Since you are adding the pressure setpoints it seems to me the two secondary valves (my phrase, not yours) are in series. That is the only way I could see their pressure requirements would need to be added.

The other possibility is that the secondary valve pressures are actually flows. If that is the case then the total flow of the two valves would need to be supplied by the main valve. But in that case the flow sum would be a bias to the main flow valve, not a setpoint. In this case the setpoint would be realtively constant and the main valve would open and close to supply the required amount of fluid.

I'm sure Peter will have fun with this.

Keith
 
Greetings knight1fox3 ...

rather than a PDF file (which I'm having some trouble opening) can you ZIP and post the complete ACD project file instead? ... that will probably give us more information - and help us give you more detailed answers ...

and welcome to the forum ...

DONE! I thought the PDF would simply the specific section of code I was referring to rather than someone having to sort through subroutines to find what my question pertained to. Either way, here is my project file. Thanks for the reply. :)
 
I'm not a big AB PID user, but everything looks right to me. I question your 0.25 sec update time. That seems pretty slow for a hydraulic system unless you have alot of accumulation relative to your flow.

Given the way you come up with the pressure setpoint I'm having a little bit of a hard time understanding your hydraulic circuit. Since you are adding the pressure setpoints it seems to me the two secondary valves (my phrase, not yours) are in series. That is the only way I could see their pressure requirements would need to be added.

The other possibility is that the secondary valve pressures are actually flows. If that is the case then the total flow of the two valves would need to be supplied by the main valve. But in that case the flow sum would be a bias to the main flow valve, not a setpoint. In this case the setpoint would be realtively constant and the main valve would open and close to supply the required amount of fluid.

I'm sure Peter will have fun with this.

Keith

Hi Keith,

Thanks for the reply. I was thinking about changing the update time to 15 or 20ms instead of 0.25sec. Let me elaborate a bit further on my application which might clear up some of your questions. Basically, there is a main valve to control the overall PSI (or flow) as demanded by the system. The two secondary (I like your word) valves control individual motions. Since these are proportional valves that will be controlled by an operator through a control console, the demand will be variable and dependant on the operator's level of control (0 - 100%). So for instance, secondary valve A is demanding 900psi and secondary valve B is demanding 1000psi. Collectively, the system is demanding 1900psi in which the main valve will need to compensate. However, I currently have the program set to restrict the operator to only one motion at a time. So adding the two valve pressure demands is not necessary at this point. I put that in there for the future addition of running multiple motions. I was a bit unsure of what my setpoint should be in my PID instruction. Because isn't my setpoint going to be dynamic based on the fact that the demand of the two secondary valves will be variable? Or do I set an overhead number for that and the PID will adjust itself as necessary (if that makes sense)?
 
Are the two secondary valves variable flow valves or variable pressure valves? At this point I'm just curious. It really doesn't change what the main valve needs to do.

Unless I'm missing something the pressures in your case are not additive. This is simplifying a bit but in effect your main valve is filling a manifold to which both of your secondary valves are connected, correct? At worst your main valve should only need to supply the higher of the two pressures. But they way I would do it is have the main valve supply the highest pressure your design says you will need and just keep it at that point. The secondary valves will be set to provide whatever the operators indicate.

What type of pump are you using? I guess I don't understand the need for the main valve. It is just doing what you could already do with pump controls.

Keith
 
Are the two secondary valves variable flow valves or variable pressure valves? At this point I'm just curious. It really doesn't change what the main valve needs to do.

Unless I'm missing something the pressures in your case are not additive. This is simplifying a bit but in effect your main valve is filling a manifold to which both of your secondary valves are connected, correct? At worst your main valve should only need to supply the higher of the two pressures. But they way I would do it is have the main valve supply the highest pressure your design says you will need and just keep it at that point. The secondary valves will be set to provide whatever the operators indicate.

What type of pump are you using? I guess I don't understand the need for the main valve. It is just doing what you could already do with pump controls.

Keith

Ok, a lot of very good questions there Keith. Some of which I had to confer with my hydraulic engineer on. Here is some more information I was given. The main prop. valve I was referring to in my earlier posts is a pressure relief valve that will control the PSI to the two "secondary" prop. valves and therefore the system PSI as demanded by the hydraulic equipment. The main prop. valve only controls PSI, not flow. The two secondary valves do control flow. I was also told that the main prop. valve will be set at 1500psi initially. With that in mind, I've adjusted my program accordingly (see attached). Also, as was an oversight by me (thanks Keith), I do NOT want to add the pressures but rather take the greatest demand of the two. I've adjusted that as well. So now I have things configured like this, if my pressure differential across the A and B ports of either secondary valve (taking the largest value) is greater than 1500psi, that value becomes the setpoint in my PID instruction. This will then control my main prop. pressure relief valve to adjust (or close essentially) it's position based on the feedback from the pressure transducer monitoring said valve. Hopefully that makes more sense, it did as I was typing it anyway. :)

To answer your other question, the main relief valve is fed by a gear pump. The main system pump is a Kawasaki piston pump (40GPM, 3350psi).

Peter, thanks for your response as well. I look forward to any of your comments. Thanks all. (again, new program attached).
 
Time to pull teeth, again

What are you really trying to do? What is the application?
What is supplying oil to your pressure control valve? I know a pump, what kind of pump? What are the flow control valves controlling? I know, oil flow. What is the oil flow moving? Are the flows dynamic or will they be relatively constant? If the flows change a lot the pressure control valve and your PLC will be pushed to the limits. This may be helped with a change in your hydraulic design which leads to my next question. Has your hydraulic designer designed many systems were a PLC or motion controller are required? I have found that hydraulic designers that aren't doing the controls too don't care if their systems are controllable.
 
I don't think there is a need to dynamically control the perssure relief setting. From a design standpoint you can simply set your "supply" pressure to the highest value you think you will need and leave it there. I don't see the need to vary your main valve pressure based on the instantaneous pressure request of the secondary valves.

I don't see the need for closed loop control of the pressure relief setpoint. The pressure relief valve will take a pressure command and attempt to maintain the command at the setpoint. It is doing for you what you appear to be attempting in the plc. There will likely be some pressure droop as the flow increases but before you go to closed loop control you may want to see what that pressure dip is. It may not be enough to adversely affect your system.

If you see pressure dips and spikes as the flow requirements change you may have to add an accumulator after the pressure relief valve and before the secondary valves. Even though it is an electronically set device the pressure relief valve is physically controlling the pressure through mechanical means. It can't respond to changes in flow instantaneously. An accumulator would allow some time for the pressure relief valve to adjust as flow changes.

Ultimately I would go away from a gear pump as the device feeding the valve set and switch to a variable displacement pump. I think you can still set the plate regulator pressure electronically but I question the need for that too.

Keith
 
What are you really trying to do? What is the application?
What is supplying oil to your pressure control valve? I know a pump, what kind of pump? What are the flow control valves controlling? I know, oil flow. What is the oil flow moving? Are the flows dynamic or will they be relatively constant? If the flows change a lot the pressure control valve and your PLC will be pushed to the limits. This may be helped with a change in your hydraulic design which leads to my next question. Has your hydraulic designer designed many systems were a PLC or motion controller are required? I have found that hydraulic designers that aren't doing the controls too don't care if their systems are controllable.

Hi Peter, thanks for the reply. Wow, lots of more good questions. I'll try my best to answer them (from an EE point of view anyway). My program will be controlling a piece of install equipment with 3 primary motions. A scissor lift motion with hyd. cylinders. This is motion is constant either on or off based on operator control. There are two additional motions, a hydraulic track drive which will control a tilting motion and another hydraulic motion which will control a rotate function (both operator controlled). Both the tilt and rotate motions have absolute encoders on them to verify positioning. Presently, only one motion is allowed at one time, scissor, tilt or rotate. Based on the load the main support sees, this will determine the torque needed to move said load and therefore require a corresponding hydraulic pressure. There are 3 proportional valves in the system that I will have analog control over. The main valve is a pressure relief valve that will control the primary system PSI (not flow) to the system. This is the valve I am attempting to control via a PID instruction. The other two prop. valves will control flow to their respective tilt or rotate motions. These "secondary" (as I've been calling them) valves are directly controlled by an analog input device by the operator (i.e. 50% on the input device = 50% on the corresponding prop. valve). There are analog pressure transducers (2) on both A and B ports of each secondary prop. valve. In my program, I am comparing the pressure differential over the A and B ports of each secondary valve (even though only one will be active at any one time). I look at the A to B differential and the B to A differential and take the largest of that value. That value is then compared to my initial primary valve setting of 1500psi. If the differential is greater than 1500psi, that becomes my PID setpoint and the PID is set to "auto" mode. At least, I'm hoping this how I have the PID configured and that it will work for this application.

To go into your questions, a Kawasaki piston pump (40GPM, 3350psi) will be supplying oil to the system. The pressure of which will be controlled by the primary prop. pressure relief valve. The secondary prop. valves control flow to two independent rotary actuators, one for a tilt motion to control angle and the other for 360deg. of rotation. As I've mentioned, I'm currently limiting the operator to only one motion at a time. I may change this to allow mult. motions at once but figured to keep it simple and safe I would start like this. The flow will be dynamic and dependent on the overall load on the equipment and the torque needed to move it. If moving something near full-load, I'm guessing the overall pressure will need to be at almost 3000psi. So again the flow will be relatively dynamic based on load. The hydraulic designer I am working with has designed PLC-controlled systems in the past so I'm fairly certain he's not throwing the EE under the bus, if you will. In either case, this is what I have to work with and the information above is my system that I need to control via the PLC I have already procured. Hopefully that gives you some more insight. I appreciate your assistance and welcome any comments/suggestions, particularly that which pertains to the PID instruction I am trying to configure. Thanks again. :)
 
Sorry, I didn't look into the pump specs before I replied. You already have an electronic setpoint variable displacement pump. What is the gear pump you mentioned?

So why are you trying to vary your pump supply pressure? Are you attempting to do force control and this is the only way to accomplish it since you have no control over the secondary flow valves? By the way, you do need both pressure sensors to know the force from the cylinder even though only one side is "active".

Even if you need to do variable pressure control, why do you believe you need a closed loop system for that? Simply setting your relief valve to the required pressure level should get you what you need.

I don't mean to harp on this but your PID set-up is the easy part. I think you are effectively there already. I simply question the need for it. If you do decide to use it make sure you send in the valve command equivalent to your expected pressure as a bias. This will get the pressure very close to the required level before any correction is even applied.

Keith
 
I don't think there is a need to dynamically control the perssure relief setting. From a design standpoint you can simply set your "supply" pressure to the highest value you think you will need and leave it there. I don't see the need to vary your main valve pressure based on the instantaneous pressure request of the secondary valves.

I don't see the need for closed loop control of the pressure relief setpoint. The pressure relief valve will take a pressure command and attempt to maintain the command at the setpoint. It is doing for you what you appear to be attempting in the plc. There will likely be some pressure droop as the flow increases but before you go to closed loop control you may want to see what that pressure dip is. It may not be enough to adversely affect your system.

If you see pressure dips and spikes as the flow requirements change you may have to add an accumulator after the pressure relief valve and before the secondary valves. Even though it is an electronically set device the pressure relief valve is physically controlling the pressure through mechanical means. It can't respond to changes in flow instantaneously. An accumulator would allow some time for the pressure relief valve to adjust as flow changes.

Ultimately I would go away from a gear pump as the device feeding the valve set and switch to a variable displacement pump. I think you can still set the plate regulator pressure electronically but I question the need for that too.

Keith

Some good feedback there Keith (no pun intended). The reason that I feel it would be better to vary the pressure relief valve is because if the pressure is too high and not needed, the movements of the equipment will be very coarse with little to no fine adjustments. This equipment will need a certain degree of precision at times. High pressure could (and most likely would) prevent this. Again, the equipment I have mentioned has been manufactured already and is what I have to work with. The question is whether or not a PID instruction will be beneficial enough for me to implement and produce the kind of fine control I am looking to achieve. Thanks again for the comments/suggestions.
 
I would do thinks differently

I would use a pressure compensated pump. This is pump that has a swash plate that adjusts the stroke of the pistons as a function of pressure so as pressure drops due to increase demand the stroke of the pistons in the pump is increased to generate more flow. As the flow demand decreases the pressure will rise and the piston stroke will go back to a neutral position. This keeps the pump from pumping more oil than what is necessary and wasting oil/energy over a relief valve.

On the output of the pump I would have an accumulator. The accumulator stores energy and oil. Your main pressure control valve can't maintain pressure if the pump can't maintain pressure. The accumulator will reduce the rate of pressure changes as the flow changes and make it easier for the pump and your main control valve. Think of the accumulator as one of the big electrolytic capacitors you see in an electrical power supply. Without those big capacitors there would be lost of voltage ( pressure ) ripple on the output. Now, with the accumulator, the pressure to the main pressure control valve will not change that fast and your PLC may have a chance.
The pressure up stream must be above above 1500 psi. It may need to be about 2000 psi so there is always enough pressure drop across the pressure control valve to supply the maximum flow. Now there is a relatively constant source of pressure to the pressure control valve.

The pressure between the pressure control valve and the other proportional valves will still be difficult to control. As soon there is a flow mismatch between the main pressure control valve and the proportional valves there will be huge pressure changes too. Again, I would add an accumulator between the main pressure control valve and the proportional valves so the pressure will not change quickly as the proportional control valve open and close. Now the PLC has a chance to control the pressure and keep it constant because it has a relatively constant pressure source and the output pressure will not change.

This design is wasteful because a lot of energy is wasted by the main pressure control valve. I don't like the idea of the pressure control valve for this reason. I would rely on BIG accumulators and the pump to keep the pressure relatively constant. If the accumulators are big enough the pressure should change less than 10%.

If the down stream proportional valves are being controlled by the PLC then you can use this information as a feed forward to the pump. In this case a VFD driving a fixed displacement pump with an accumulator would work very well and be very efficient.

You hydraulic designers are clueless and you shouldn't trust them and chances are you will end up under a train. You don't need to believe me but ask them this... How fast will the pressure change in the pipe between the pressure control valve when one of those proportional valves open? How fast is that relative to response of your 20ms PID update? I can stump almost all hydraulic designers with this simple question. Actually, I have found only one person that can answer that question, surferb from this forum and he isn't a hydraulic designer.

The hydraulic designers will just make sure the system doesn't leak and walk away leaving you to waste your time trying to control the uncontrollable. I have seen this too many times, that is why you detect the bitterness towards hydraulic designers in the post and also why I have learned to do the hydraulic simulations and sizing myself.
 
Sorry, I didn't look into the pump specs before I replied. You already have an electronic setpoint variable displacement pump. What is the gear pump you mentioned?

So why are you trying to vary your pump supply pressure? Are you attempting to do force control and this is the only way to accomplish it since you have no control over the secondary flow valves? By the way, you do need both pressure sensors to know the force from the cylinder even though only one side is "active".

Even if you need to do variable pressure control, why do you believe you need a closed loop system for that? Simply setting your relief valve to the required pressure level should get you what you need.

I don't mean to harp on this but your PID set-up is the easy part. I think you are effectively there already. I simply question the need for it. If you do decide to use it make sure you send in the valve command equivalent to your expected pressure as a bias. This will get the pressure very close to the required level before any correction is even applied.

Keith

I may have misconstrued some of the hydraulic specs to you early on Keith. Sorry about that. I think my reply to Peter though pretty much sums it all up. The gear pump is in the circuit to provide oil to a manifold via a solenoid controlled valve. This gives oil to other various components such as hydraulic brakes. Basically, I will fire the solenoid valve which will bring pressure to the manifold via the gear pump and that will give me the pressure to release brakes and engage any one of the 3 motions I mentioned. That pressure in addition to other drops in the system is ultimately taken from the main PSI of the system (piston pump) which can be varied by the main prop. pressure relief valve. Ultimately I think closed loop control will give my system a good level of precision. If I have my PID instruction set up correctly, then I can proceed with testing. If I find this isn't ideal, then I can vary the main valve in steps of 100psi based on the overall pressure demand OVER 1500psi. If that makes sense.
 

Similar Topics

This is the first time I am trying to use a RSLogix 5000 PID and my lack of understanding this is version of a PID instruction is driving me...
Replies
18
Views
21,128
I'm trying to control a slow process where we only get an updated PV every 5-10 minutes. Right now we do a pseudo-automatic control that works...
Replies
7
Views
3,326
Hi Guys I have a cooler using evaps to set up PID to control the humidity. I put ugly step logic in it but although it works (+/- 4% humidity...
Replies
0
Views
1,065
Hello all, I am new to 5000 and am trying to set up a PID block. I need to control fan speed VFD using a temp indication. I have the temp coming...
Replies
11
Views
2,029
Good Morning, This may be an easy question for some...but I'll need a little guidance. I have a project where under a particular condition I...
Replies
2
Views
1,599
Back
Top Bottom