PID control using Micrologix 1000


Thread Starter

Martyn Milne

I have a refrigeration project that requires temperature control using PID and a Micrologix 1000. Control is by a liquid solenoid. Does anybody know if there is somewhere I can obtain the ladder logic to create a PID algorithm in the Micrologix 1000?
Are you looking for a PID instruction in the MicroLogix 1000 function blocks or do you mean that you need help with maintaining a set point with discrete logic?

It has been a while since I have used a MicroLogix 1000, but I believe that it does not have a PID instruction. You need to step up to a MicroLogix 1500 (maybe a 1200, but the 1500 has PID for sure).

I believe that all you need is some basic discrete logic to latch on the solenoid if the temperature goes above the SP + "some deadband value". The solenoid will turn off when the temperature goes below the setpoint - "some deadband value". This of course gets a little more complicated if you have multiple stages of cooling. Give more process description if this is what you have, since this can vary depending upon application.

Also, if the condensing unit does not have any "short circuit" timers in the circuit to protect the compressor(s), you may need to accomodate this in your code. Depending upon the size of your compressor, type of refrigerant, etc. a typical value is that the compressor must run for a minimum of 5 minutes and also be off for a minimum of 5 minutes before being allowed to restart. This can be a couple of on delay and of delay timers.

Hope this gets you started,

Darren Ash


Micrologix 1000 doen't support PID function .. go for Micrologix 1200 series and do ur program using Rslogix500.


Bob Peterson

The effort to do a PID loop in RLL would be better spent in upgrading to a 1500 hat IIRC already has a PID instruction.
Unless you need very very tight control simple on/off control will usually work very well for refrigeration control. There are a number of critical issues you must handle when controlling a refrigeration system. Since you are using a liquid line solenoid for capacity control you are not going to have a great deal of precision anyways. You must be very careful not to short cycle your compressor. This is critical. When you start a compressor, even if it has been off for only a moment, there is a great deal of turbulence in the compressor because you have a liquid and vapor refrigerant and oil mixture. This very briefly creates a great deal of oil foam, which is blown out into the refrigeration lines. All well deisgned systems have enough oil to compensate for this ONCE. Then the system must run for a long enough time at full capacity to return all that oil back to the comrpessor through the consenser and evaporator. When you use a liquid line solenoid the compressor continues to run until the evaporator and suction line pressure drops off and the compressor shuts down on its low pressure switch. Continuing to run the compressor at this point will damage it. Refrigerant is pumped into the condenser and accumulator and stored there. When the solenoid opens, evaporator pressure will rise and the compressor will turn back on. Short cycling will rusult in all your oil ending up in the condenser, ruining your compre$$or in very short order (note the $$ signs). A small system (< 5tons) compressor should run for more than 4-5 minutes each time it turns on, much longer times are required for larger systems. Very small systems (< 1ton) can get away with shorter times of 2-3 minuts. Refer to the technical info on your compressor for guidelines.

There are better ways however to control capacity. You can add a hot gas bypass valve to the system to provide you 0, 50% and 100% capacity control to the system. Multicylinder semi-hermetic compressors are available with unloader valves, which when combined with hot gas bypass valves give you 0,25 ,50 and 100% capacities, you dont get 75%. 0% is alwalys compressor off and you stil must absolutely guard agains short cycling. Copeland has a new hermetic scroll compressor out that has a modulating valve on the scrolls, and by using a time proportioning algorithim you can get 0% -compressor off, and 15%-100% variable control. Less than 15% is not achevable without shutting down the compressor because a minimal refrigerant flow is required for compressor cooling. And again short cycling must be avoided. Most of the systems I have seen using the hot gas bypass and/or cylinder unloading use stage down and stage up timers rather than PID control. For large deviations, run at 100% capacity. As you approach setpoint, start stage down timers to gradually reduce capacity. For a well sized system you can then jump between 50% and 100% capacity and hold temperature to within +/- 1C (2F) and keep the compressor running continually. If you are oversized you will have to shut down the compressor. You can implement a PID but you will still have to convert its output to two (or 3) discretes for liquid solenoid and hot gas bypass (and unloader). If you do use a PID it must be forward acting, and you must add external logic to keep it from short cycling the compressor. I would not recommend anything other than on/off control however if you are only using the liquid solenoid for capacity control.

I have heard of some instances where VFDs have been used to control compressor motor speed, but the compressor motor is not usually inverter rated, and here as well you have a lower limit on capacity as you need to maintian a minimal flow through the compressor for cooling and to keep oil foam down. PID control would be suitable for VFD compressors and the Copeland scroll with the unloader capability.