Ok, lets take this one(two) step(s) further.
In the brewing scenario, we want to heat up our HLT as fast as possible, then fall into a maintenance state, so -
Heater at 100% until temp is 170deg (strike temp) then maintain at 170 with 25% duty cycle (PID?) until user confirms to the next step.
We manually pump strike water to the mash tun, then confirm next step which is-
Heater at 100% until temp is 205deg (for mash out) then maintain at 205deg at 25% duty cycle until user confirms next step.
We manually pump 205deg water to the mash tun, then confirm next step which is-
Change setpoint to 170deg (for sparging) holding until user confirms process complete. Or optionally a float switch indicates that the water level in the HLT is at risk of exposing the heater element.
I will discuss RIMS mash temp control in the next post.
HLT Control with strike, mashout, sparge
Re: HLT Control with strike, mashout, sparge
Hi dak0415. Thanks for the question. The sequence that you are describing has 3 unique states, strike, mashout, and sparge.
You mention that you'd use a lesser duty cycle to maintain temperature, but in this case I believe either PID or differential control would be better. The place where these control methods fall apart is when you get around the boiling point, since it moves around based on atmospheric conditions, etc. But as long as you keep it below that (205 is close), they should work fine.
There are 2 approaches that we could take. We could put all states (strike, mashout, and sparge) in one Process, daisy chained together, or create 3 unique Processes, one state each.
The first approach would look like this. I use the User inputs, called Wins (web inputs), to transition to the next state. These are just buttons on the main control page. I labeled them "Continue" and "Stop" to identify their function. At any point the user can also pause the process (to do the manual pumps, whatever) if you need the outputs (heat) to be turned off.
And the second approach is to use separate processes for each setpoint (you can have upto 4 processes). This approach is a little more manual, it sounds like that is desired. You would basically use the Process enable/disable controls on the sidebar to turn on/off control. Since Sparge and Strike are the same setpoint, they can be shared.
And if you're running short on available Processes, an even more manual approach would be to simply update the temperature setpoint for each use.
You mention that you'd use a lesser duty cycle to maintain temperature, but in this case I believe either PID or differential control would be better. The place where these control methods fall apart is when you get around the boiling point, since it moves around based on atmospheric conditions, etc. But as long as you keep it below that (205 is close), they should work fine.
There are 2 approaches that we could take. We could put all states (strike, mashout, and sparge) in one Process, daisy chained together, or create 3 unique Processes, one state each.
The first approach would look like this. I use the User inputs, called Wins (web inputs), to transition to the next state. These are just buttons on the main control page. I labeled them "Continue" and "Stop" to identify their function. At any point the user can also pause the process (to do the manual pumps, whatever) if you need the outputs (heat) to be turned off.
Code: Select all
Process0: HLT Sequence
State0: Strike at 170
Out0: HLT Heat => PID controlled at 170
Exit Cond: Goto State1 when Win0:Continue is ON
Exit Cond: Goto Proc0_OFF when Win1:Stop is ON
State1: Mashout at 205
Out0: HLT Heat => PID controlled at 205
Exit Cond: Goto State2 when Win0:Continue is ON
Exit Cond: Goto Proc0_OFF when Win1:Stop is ON
State2: Sparge at 170
Out0: HLT Heat => PID controlled at 170
Exit Cond: Goto Proc0_OFF when Din0:WaterLevel =0
Exit Cond: Goto Proc0_OFF when Win1:Stop is ON
Code: Select all
Process0: HLT at 170
State0: Strike/Sparge
Out0: HLT Heat => PID controlled at 170
Exit Cond: Goto Proc0_OFF when Din0:WaterLevel =0
Exit Cond: Goto Proc0_OFF process diabled
Process1: HLT at 205
State0: Mashout
Out0: HLT Heat => PID controlled at 205
Exit Cond: Goto Proc1_OFF when Din0:WaterLevel =0
Exit Cond: Goto Proc1_OFF process diabled