ML1400 PID on/off

DermotM

Lifetime Supporting Member
Join Date
Jun 2010
Location
Ireland
Posts
21
Hi all, I'm just getting ready to program an application for PID controling the temperature of thermal oil which is heated by 4 banks of heating elements. I have 8 contactors (2 per bank) switching the elements and one thermocouple for the PV. My question is how do I set up the output from the PID loop in the ML1400 as an on/off to one binary output instead of writing this value to an analog output. I have a number of PID applications running analog actuators fairly successfully but up to now none working with this type of setup.

Many thanks in advance
Dermot
 
Maybe you could try this:

0% output = 0 contactors active
12.5% output = 1 contactor active
25% output = 2 contactors
and so on...........
 
Select a desired time period for time proportioning your outputs. Then use the SCP instruction to scale the PID output to that time period and use that value for your on time.

For example, lets say that you choose one minute. Scale the PID control variable (0-16383) to 60 seconds. Now move that to the preset of a timer for your ON time. A second 60 second timer resets the first.



----------------+-PID-------------+
|PID FILE PD9:0|
|Process Var N7:0|
|Control Var N7:1|
+-----------------+

----------------+-SCP-------------+
|Input N7:1|
|Input Min 0|
|Input Max 16383|
|Scaled Min 0|
|Scaled Max 6000|
|Output T4:0.PRE|
+-----------------|

T4:1/DN
--]\[------+----+-TON-------------+
| |Timer T4:0|
| |Time Base 0.01|
| |Preset 0|
| |Accum 0|
| +-----------------|
|
+----+-TON-------------+
|Timer T4:1|
|Time Base 0.01|
|Preset 60|
|Accum 0|
+-----------------+

T4:0/TT HEAT_CONTACTOR
---] [-----------------------( )







If you are using solid state contactors then choosing a 16.383 second time proportioning period (if appropriate for your process) and programming the timer with a millisecond time base and the preset word as the PID control variable has the advantage of simplicity.



----------------+-PID----------------+
|PID FILE PD9:0|
|Process Var N7:0|
|Control Var T4:0.PRE|
+--------------------+

T4:1/DN
--]\[------+----+-TON-------------+
| |Timer T4:0|
| |Time Base 0.001|
| |Preset 0|
| |Accum 0|
| +-----------------|
|
+----+-TON-------------+
|Timer T4:1|
|Time Base 0.001|
|Preset 16383|
|Accum 0|
+-----------------+

T4:0/TT HEAT_CONTACTOR
---] [-----------------------( )




If you have mechanical contactors you may need to include some anti-chatter logic.
 
Last edited:
Many thanks Alaric and Karsten for sol, I get the idea. Will post an update in a couple of weeks
 
Looking at your second example Alaric, would I be correct in assuming T4:1 time base should be 1.0 or PRE should be 6000 🤾
 

Similar Topics

Stuck at home and need to adjust the CVH on a PID loop. I can build an AdvancedHMI HMI to read write the valeus, but I cannot VPN in. Is there...
Replies
5
Views
1,660
Hi All... Using a AB MicroLogix 1400 and I am in need of a example of a working PID using an 1762-IF2OF2. I want to use an existing analog...
Replies
13
Views
6,675
I'm trying to figure out if there is a relatively easy way to freeze the integrator in the Micrologix 1400. We've used some loop controllers that...
Replies
4
Views
2,116
May be my question is too childish, but can i get all the answers please? For PID of ML1400, if I right loop update as 0.02 & time mode as STI...
Replies
4
Views
4,750
Hi, I know it has probably been before posted before, but where can I get a sample program for a ML1400 or similar showing a working simple PID...
Replies
1
Views
3,661
Back
Top Bottom