Jhav Posted September 28 Report Share Posted September 28 all, I am having a problem with running my PID. I am using a Pressure transmitter (0-200 PSIG) to control the speed of a pump, wanting it to keep steady at a given pressure. while it is in auto tune it the process runs great but as soon as I go to run the PID the speed of the pump takes off and never tries to correct its self. i am using the pump control at another location in the program but i toggle that off and it runs fine. Quote Link to comment Share on other sites More sharing options...
Jhav Posted September 28 Author Report Share Posted September 28 sorry for the terrible grammar I was in a hurry this morning. Quote Link to comment Share on other sites More sharing options...
MVP 2022 Ausman Posted September 28 MVP 2022 Report Share Posted September 28 9 hours ago, Jhav said: i am using the pump control at another location in the program but i toggle that off and it runs fine. Without knowing more, to me this is the answer to your issue. You have 2 things controlling 1 thing. Don't forget that in ladder, the last active reference to an output is the one that will be used. cheers, Aus Quote Link to comment Share on other sites More sharing options...
Jhav Posted September 28 Author Report Share Posted September 28 ausman, I thought that was it as well so i singled it out and only had the PID driving the VFD and it still did the same thing. once it finished the auto tune process and i pushed run PID it goes straight to High value of the Control Variable. way past the set point and does not try to correct its self. i also changed the CV to were it linearizes 0-100 for to a 12 bit analog out and it did the same thing. Quote Link to comment Share on other sites More sharing options...
Jhav Posted September 29 Author Report Share Posted September 29 All, I re-wrote the program and used different MIs and used a different pump and vfd and am still getting the same results. I've even went through and watched the two webinars on PID and Autotuning , it has to be something I'm not seeing in my program but for the life of me from inexperience and frustration I can not find it , any help or advice would be gratefully appreciated . Quote Link to comment Share on other sites More sharing options...
MVP 2022 Flex727 Posted September 29 MVP 2022 Report Share Posted September 29 It would be very helpful if you would provide some data. What are the settings you are using and what is the value of the PID Status register? Quote Link to comment Share on other sites More sharing options...
Jhav Posted September 29 Author Report Share Posted September 29 I'm using a pressure transmitter and setting thing the range from 0-50 psi for my PV and for my CV I'm using a 12 bit signal low 0 high 4095. and my status right now is saying 10 . Quote Link to comment Share on other sites More sharing options...
MVP 2022 Flex727 Posted September 29 MVP 2022 Report Share Posted September 29 Status 10 = "PV exceeds proportional band, no calculation performed", in other words, the PID isn't running. What is the value in MI 203? Do you have the decimal correct in your linearization FB for psi? How about for the Set Point? I say that because you say 0-50 just above but your screenshot shows 0-500. Quote Link to comment Share on other sites More sharing options...
Jhav Posted September 29 Author Report Share Posted September 29 Quote Link to comment Share on other sites More sharing options...
Jhav Posted September 29 Author Report Share Posted September 29 from the screen i have it multiplied by 10. ex 25=250 Quote Link to comment Share on other sites More sharing options...
Gabriel Franco Posted September 29 Report Share Posted September 29 In my experience, Autotune FB does not provide the best PID values to all processes. Sometimes a manual tuning is better. If CV is not changing, the most probable cause is wrong Kp., Ki, Kd, ST values. Check the convenience of having CV limits from 0 to max AO value. For a reference, I´ve limited CV about 20% ... 80% based on process characteristics. Quote Link to comment Share on other sites More sharing options...
Jhav Posted September 29 Author Report Share Posted September 29 I think I found my mistake. ill have to Waite for production to stop filling and check. I will let you know after I test. Quote Link to comment Share on other sites More sharing options...
MVP 2022 Flex727 Posted September 29 MVP 2022 Report Share Posted September 29 2 hours ago, Jhav said: from the screen i have it multiplied by 10. ex 25=250 I strongly recommend doing that in the linearization FB - don't just multiply by 10. Multiplying by 10 does not add any precision to your value, while doing it in the linearization block does add precision. Quote Link to comment Share on other sites More sharing options...
Jhav Posted September 29 Author Report Share Posted September 29 Flex727, I found it, I did not have the run PID hooked to a maintaining contact. I thought I put the run button on a toggle and I did not. thank you for the help. the reason i went through and checked is because you informed me status 10 in layman's terms meant my PID was not running so thank you for pointing me in that direction. Quote Link to comment Share on other sites More sharing options...
MVP 2022 Flex727 Posted September 29 MVP 2022 Report Share Posted September 29 With some of this stuff, PID loops in particular, it seems like we're all just blind pigs, but we do find an acorn once in a while. 😄 By the way, my advice about not multiplying by 10 is important. If you don't understand what I'm saying, please feel free to ask. Precision and significant digits can be very important with PID control. Quote Link to comment Share on other sites More sharing options...
Jhav Posted September 29 Author Report Share Posted September 29 that is just my set point my pressure transmitter is linearized thank you for the help I will be back lol. though for the help. Quote Link to comment Share on other sites More sharing options...
MVP 2022 Flex727 Posted September 29 MVP 2022 Report Share Posted September 29 1 hour ago, Jhav said: that is just my set point my pressure transmitter is linearized Got it. No problem. At the risk of going off topic, I'd like to point out that you should not be putting two or more logic threads in a single ladder rung, as you are doing in rung 9 above. Usually it doesn't matter that much and it doesn't often result in a compile error (though that may, but not necessarily, be the cause of the compile error in rung 27 of your PUMPS subroutine), but it is extremely poor programming practice and can cause unexpected results . The whole point of ladder rungs in ladder logic is to separate logic threads into discrete pieces that can be properly compiled into machine language in an expected way. Quote Link to comment Share on other sites More sharing options...
Jhav Posted October 2 Author Report Share Posted October 2 Flex727, thank you for the tip, I will be a one logic thread man from here on. Quote Link to comment Share on other sites More sharing options...
Fernando Castro Posted October 3 Report Share Posted October 3 I just started playing around PID with Unitronics and also, I cannot test the program on the actual process yet. Having said that to test the logic what I did was a custom sub routine that will simulate an input based on the output, of course this will never maintain a setpoint but at least I can see the PID in action trying to maintain the given set point and test the logic for enabling/disabling the PID and starting the autotune. The program is as follows. I linearized a the PID output to a series of increments from -50 to 200 then each second, I add the increment value to the input and just with that you can see some oscillations. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.