Okay,
I got this thing working in the shop. (stand alone controls, not total system)
The following was my version applicable to a compact logix 1769-L31 PLC with 1769 modules using RSLogix 5000 (v15). If RS5000 is used for Control Logix PLCs and modules or the 1769 modules are used with MicroLogix and RSLogix 500, things WILL be different.
As noted by tomalbright, there are substantial differences between compact logix ( micro logix ) and control logix modules. The 1769 analog out modules don’t have the jiffy configuration tool ( or as many options when configured via “data monitor” ) and as such I couldn’t configure the output as 0-100 = 4-20Ma
Perhaps, this wasn’t the best way (I didn’t want to re-scale some things used for other purposes) but here is how I set up PID_TEMP.
Process Variable: (in this case the average of 2 thermocouples) The thermocouple channels are configured for PID data format, type j, deg f.
Control Variable: directly to analog out channel, Local:7:O.Ch1Data. This channel configured for, range = 1- 4-20Ma, dataFormat = 2 , PID.
SetPoint: DRY_TEMP_SET_HMI, read straight from the HMI and moved into PID_TEMP.SP. Entered and read as Deg f. No conversions or such.
PID Setup Dialogs: ( This version of the program was captured/saved while active, thus some values are shown that normally are blank but are being displayed here as the PID ramps up)
Tuning Tab: Pgain, .02, (As noted by others, my initial values were way to large and based on my previous Omron CX1 project)
Reset Time: .05.
Derivative Rate: 0. ( As always these will be field tuned on start-up)
Config Tab: Dependant ( I must have mouse wheeled it to independent in the first set up, Side note: most mouse wheel function are disabled in RS5000 but not this)
SP-PV
Derivative of = PV (default, not using here)
Loop update .25 sec ( maybe much faster than needed )
CV High 100
CV low 0
Deadband 0
Alarms: not using atm
Scaling:
PV: unscaled max = 16383
Unscaled min = 0 ( this is set to match the DataFormat of the analog IN card )
Eng Units max = 2193
Eng Units min = -346 ( eng unit range of my type j thermo couples in Deg f. )
CV: unscaled max = 16383
Unscaled min = 0 ( this is set to match the DataFormat of the analog OUT card )
Tieback: max; 100, min 0 ( I didn’t enable tieback but these values appear when “online” and I couldn’t change them to play with )
As recommended, I now clock the PID instruction all the time (maybe to fast for a temp loop ) and also set/unset PID_TEMP.SWM ( PID software manual mode ) as required with pre-conditions. ( I had some no longer present test bits for that.)
I treat the Vacuum level PID different in that I don’t enable it until the vac pump hits setpoint level and then introduce an “air bleed” which I will try to regulate vacuum with.
And the Condenser cooling flow loop is also different, it only regulates flow to 20 GPM.
( This loop is stupid, it has no user set ability and always maintains 20 GPM flow. It should have just used a manual flow control valve but I could not convince the process engineer of this. It is just an unnecessary expensive complication. IMHO there are quite a few things not needed and some missing from this mechanical design but I’m sure we all feel that way at times. )
I had warned my boss that I was stuck on the last programming item (PID setup) and and the cost of getting “free” help would be posting the program publicly and sharing the results. So here it is. (disclamer… this works in the shop as a stand alone control panel but won’t be field started for a month or 2 )
Thanks for the help!!!
I got this thing working in the shop. (stand alone controls, not total system)
The following was my version applicable to a compact logix 1769-L31 PLC with 1769 modules using RSLogix 5000 (v15). If RS5000 is used for Control Logix PLCs and modules or the 1769 modules are used with MicroLogix and RSLogix 500, things WILL be different.
As noted by tomalbright, there are substantial differences between compact logix ( micro logix ) and control logix modules. The 1769 analog out modules don’t have the jiffy configuration tool ( or as many options when configured via “data monitor” ) and as such I couldn’t configure the output as 0-100 = 4-20Ma
Perhaps, this wasn’t the best way (I didn’t want to re-scale some things used for other purposes) but here is how I set up PID_TEMP.
Process Variable: (in this case the average of 2 thermocouples) The thermocouple channels are configured for PID data format, type j, deg f.
Control Variable: directly to analog out channel, Local:7:O.Ch1Data. This channel configured for, range = 1- 4-20Ma, dataFormat = 2 , PID.
SetPoint: DRY_TEMP_SET_HMI, read straight from the HMI and moved into PID_TEMP.SP. Entered and read as Deg f. No conversions or such.
PID Setup Dialogs: ( This version of the program was captured/saved while active, thus some values are shown that normally are blank but are being displayed here as the PID ramps up)
Tuning Tab: Pgain, .02, (As noted by others, my initial values were way to large and based on my previous Omron CX1 project)
Reset Time: .05.
Derivative Rate: 0. ( As always these will be field tuned on start-up)
Config Tab: Dependant ( I must have mouse wheeled it to independent in the first set up, Side note: most mouse wheel function are disabled in RS5000 but not this)
SP-PV
Derivative of = PV (default, not using here)
Loop update .25 sec ( maybe much faster than needed )
CV High 100
CV low 0
Deadband 0
Alarms: not using atm
Scaling:
PV: unscaled max = 16383
Unscaled min = 0 ( this is set to match the DataFormat of the analog IN card )
Eng Units max = 2193
Eng Units min = -346 ( eng unit range of my type j thermo couples in Deg f. )
CV: unscaled max = 16383
Unscaled min = 0 ( this is set to match the DataFormat of the analog OUT card )
Tieback: max; 100, min 0 ( I didn’t enable tieback but these values appear when “online” and I couldn’t change them to play with )
As recommended, I now clock the PID instruction all the time (maybe to fast for a temp loop ) and also set/unset PID_TEMP.SWM ( PID software manual mode ) as required with pre-conditions. ( I had some no longer present test bits for that.)
I treat the Vacuum level PID different in that I don’t enable it until the vac pump hits setpoint level and then introduce an “air bleed” which I will try to regulate vacuum with.
And the Condenser cooling flow loop is also different, it only regulates flow to 20 GPM.
( This loop is stupid, it has no user set ability and always maintains 20 GPM flow. It should have just used a manual flow control valve but I could not convince the process engineer of this. It is just an unnecessary expensive complication. IMHO there are quite a few things not needed and some missing from this mechanical design but I’m sure we all feel that way at times. )
I had warned my boss that I was stuck on the last programming item (PID setup) and and the cost of getting “free” help would be posting the program publicly and sharing the results. So here it is. (disclamer… this works in the shop as a stand alone control panel but won’t be field started for a month or 2 )
Thanks for the help!!!