In the same system I described in my other post, I am using a PIDE to control the temperature of a what is basically a heated tube (via SRTP and relays to resistive heater). There are other functions to the system, and heating will not always be desired.
My question is, how do I prevent windup when not in heating mode?
My first thought, as shown in the attached file, was to use the "Heating_Process_Active" tag to enable the PIDE. The problem is, if I get an alarm (for example PVHAlarm), then my PIDE stops executing, which is fine, but the alarm tag can't clear until the block executes again. So the alarm flag will never clear in my setup.
If I execute the block unconditionally, won't the integral term wind up trying to reach setpoint while the heaters are not turning on?
I can set up my alarms outside of the PIDE and not use the internal alarm flags. I was just wondering what a good programming practice is for executing the PIDE for a control loop that is not active all of the time.
My question is, how do I prevent windup when not in heating mode?
My first thought, as shown in the attached file, was to use the "Heating_Process_Active" tag to enable the PIDE. The problem is, if I get an alarm (for example PVHAlarm), then my PIDE stops executing, which is fine, but the alarm tag can't clear until the block executes again. So the alarm flag will never clear in my setup.
If I execute the block unconditionally, won't the integral term wind up trying to reach setpoint while the heaters are not turning on?
I can set up my alarms outside of the PIDE and not use the internal alarm flags. I was just wondering what a good programming practice is for executing the PIDE for a control loop that is not active all of the time.