Hello all,
On occasion, I need to manually set a PID control variable's initial output when the process is first started- say a bump to 100% to get a process going quickly. I've tried doing this with a oneshot to energize the .AM bit to set the PID in manual mode, while also using the oneshot to write the initial value to the CV output word. For whatever reason, I can't get this to work- the PID starts out exactly as it would normally. I'm assuming it's because the PID doesn't update every scan, and the PID doesn't "see" the oneshot.
My workaround is to trigger a 1 second timer to "hold" the .AM bit energized while also "holding" the MOV instruction to the CV output word.
That works, but it seems clunky to use a timer- is there a better way to do this? Do I need to break the PID instruction's rung to "reset" it when I manually change the output? Or is it better to just write a value to the feed forward word and leave it?
Curious what you guys do in this situation.
On occasion, I need to manually set a PID control variable's initial output when the process is first started- say a bump to 100% to get a process going quickly. I've tried doing this with a oneshot to energize the .AM bit to set the PID in manual mode, while also using the oneshot to write the initial value to the CV output word. For whatever reason, I can't get this to work- the PID starts out exactly as it would normally. I'm assuming it's because the PID doesn't update every scan, and the PID doesn't "see" the oneshot.
My workaround is to trigger a 1 second timer to "hold" the .AM bit energized while also "holding" the MOV instruction to the CV output word.
That works, but it seems clunky to use a timer- is there a better way to do this? Do I need to break the PID instruction's rung to "reset" it when I manually change the output? Or is it better to just write a value to the feed forward word and leave it?
Curious what you guys do in this situation.
Last edited: