Executing PID with Micrologix 1200

N

Thread Starter

Nitin Shah

We are using Micrologix 1200 to control the firing angle of SCR's connected in a bridge circuit. This is a close loop control with DC voltage as the feedback signal. My major tuning parameters are Kc= 0.02, Ti = 0.26, LuT = 0.20. Under this condition the scale error takes more than 30 minutes to come to zero. Keeping all the other parameters, if i reduce LuT to 0.05 the same action takes less than 2 seconds.

There is no effect of Ti and if I increase Kc, the output oscillates.

I am critically required to sort out the problem. Please send your suggestions at the earliest
 
first - you said that you are "...using Micrologix 1200 to control the firing angle of SCR's..." - could you please be more specific? - what type of interface device are you using between the (PID’s) analog output of the MicroLogix and the inputs of the SCR’s? - I am probably not understanding exactly what you meant by your statement - so let’s assume that your hardware is correctly set up and continue -

reference your "Time Mode" setting ... is it set for "TIMED" - or is it set for "STI" ...?

in the TIMED mode - the "Loop Update" setting acts like an automatic "trigger" (or a built in timer pulse) to tell the PID how often to execute - using this method, your PID should be located in a common type program file which is being "constantly" scanned by the processor - (suggestion: just use Ladder File #2)

in the STI mode - the "Loop Update" setting does NOT automatically "trigger" the PID into execution - instead, the PID will be constantly "triggered" and it will execute each and every time that the PID rung is scanned - to successfully use this method you must place the PID rung inside a special STI (Selectable Timed Interrupt) file - and set up the STI file to "scan" at a specific (which you decide) rate - this is done in the Function File area of the software - (next to Processor Status) - on the STI tab -

most people find the "TIMED" setting easier to work with - the STI method is usually reserved for systems with a very fast response time -

common mistake: leaving the "Time Mode" setting on "STI" and failing to place the PID rung in an STI program file - this causes the PID to execute MUCH more often than the "Loop Update" setting indicates and the PID’s integral action thus seems "highly reactive" to even minor changes in the "Loop Update" setting -

common mistake: programming the PID on a conditional rung - because when the processor scans a PID with "false" logic - the integral and derivative terms are cleared to zero -

suggested plan of attack: put the PID on an unconditional rung in Ladder File #2 - set the "Timed Mode" to the "TIMED" setting - set the "Loop Update" setting to "0.50" for one-half second (but see the "AT LEAST" note below) - try a reasonable setting for Kc - something like "1.00" to start out with - (your "0.02" setting for Kc seems extremely low from where I sit but I’m really just guessing) - double check your scaling for the Process Variable - the PID expects this input parameter to range in value between 0 and 16383 - you will get poor results if this value is "scaled" to engineering units BEFORE it gets to the PID -

if all else fails and you must post again, please give us an idea of how fast your process oscillates - in other words, how many cycles per minute (or per second) do you get when the integral and derivative actions are both turned off and the controller is forcing the system to oscillate? - hint: your Loop Update time setting should be set for AT LEAST twenty PID executions per each of these cycles (and more often is even better)

if you need more help, please give ALL of the information you can - rung set up - STI settings (if used) - etc. - etc.

good luck
 
Top