MicroLogix 1200 and Time Proportioning PID

JeffS

Member
Join Date
Sep 2008
Location
San Diego
Posts
1
In the MicroLogix 1200/1500 Instruction Set / Reference Manual is contained the following reference:

"The PID instruction normally controls a closed loop using inputs from an analog input module and providing an output to an analog output module. For temperature control, you can convert the analog output to a time proportioning on/off output for driving a heater or cooling unit. An example appears on page 19-17."

This manual can be found online at http://jjackson.eng.ua.edu/courses/ece493/lectures/1762-rm001c-en-p.pdf among other places.

I have searched to my best ability, and cannot find any such example. I have a need now to convert the analog output to a time proportioning output to drive a SSR / Heater.

There is an old Rockwell file called TPO.RSP on the tech support site that I cannot read with my current software, but I presume that it contains some ladder logic for converting an integer number via a series of timers to an output.

Is there a simpler way that I am missing? If not, does someone have a snip of code that might make my life easier at this time. I would appreciate it greatly, and promise to return the favor at some future date if possible.

Thanks in Advance,
Jeff
 
We have implemented a time proportioning output though not with an AB but the method is applicable to any. I will use as an example the number from our own system.

Let's define some terms.

1. There is the maximum possible output from the PID loop. In our system it was a 12 bit number or 4095. Find out what it can be in yours.

2. Next is the actual current output. You will have to find the location where this exists. For this explanation our system was putting out 1000.

3. Next you'll have to decide on a time period. If a pulse is just beginning to be put out to your output then the next pulse will just begin to be put out a certain amount of time later. I don't know how to optimize this. Determine the preset for a timer which equals this time period.

We picked 10 seconds. Thus if one pulse to our heater STARTS at a certain time then the next pulse will START ten seconds later. This does NOT mean that there will be ten seconds between the OFF point of one pulse and the ON point of another. In our system the timers we were using had a time base of 1/100th of a second. So the preset for 10 seconds is 1000.

4. Next perform this math: (Your PID output (item 2) * the timer preset max (item 3)) / the maximum PID output (item 1). This produces a number. In our case it is (1000 * 1000) / 4095 = 244. Watch out when doing your math to use a system (possibly floating point) to avoid an overflow from the first multiplication.

5. Now simply set up a recirculating timer. This will be a timer with a preset as determined in step 3. Use a normally closed of its Done (.DN) bit to turn it on. The timer will time to its maximum then reset.

6. Finally is a rung. If the accumulated value of this timer (.ACC) is less than or equal to the number determined in step 4 then turn on the output device. If the PID output is at max then you will be comparing to the full preset of the timer and the output will be on continuously.

These rungs (steps 4, 5 and 6) will be solved over and over again. You may have to play around with a proper value for the preset of the cycle timer. All you are doing is turning on the output for the same proportion of the cycling preset time as the PID is to the PID maximum output.



PID OUTPUT STEP 4 ANSWER
---------- = ---------------
PID MAXIMUM TIMER PRESET




I hope this helps.
 
Last edited:
Download the SLC 500 instruction set reference manual 1747-RM001 from AB’s web site.

Look on page 202 and 203. There is a programming example for a PID instruction with a time proportioning output.
 

Similar Topics

Hi everyone, I'm working on a project where I need to exchange data between a Siemens S7-1200 PLC and an Allen-Bradley MicroLogix 1400 PLC. The...
Replies
8
Views
637
I have a MicroLogix 1200 that has an 8 input and a 16 output. Every 6 months-year I get a fault and when online go to error it is something like...
Replies
3
Views
504
Have a bad output on a Micrologix 1200. Moved wire over to an available output, changed program to associate with new output. downloaded program...
Replies
8
Views
752
I need help achieving the following task: ML1200 sending 4 to 20 mA thru analog output ch0 to a DC speed controller analog input(4 to 20 mA) my...
Replies
3
Views
669
Hi there I am new with this thing and i don't know how to connect Allen Bradley Micrologix 1200 PLC to Raspberry Pi using USB to RS485 in NodeRED...
Replies
3
Views
2,272
Back
Top Bottom