Built all from scratch using stuff from AutomationDirect. I use this stuff at work so I have some experience and access to the programming software.
I’ll try to briefly describe how it works.
I can run it in manual or auto mode. Manual lets you turn anything on as you want. Use that only for cleaning. You enter a recipe for auto mode. Enter in strike water volume and temp, mash time, sparge types (can do batch or fly) and times, boil time and ingredient add times. Then hit “brew”.
A solenoid valve opens and begins filling the HLT with water (plumbed from house plumbing). The PLC enables a 5500W heat element in the HLT and begins heating the water. A float switch in the HLT will shut off the water when full. While heating the water, pump 1 will periodically circulate the HLT water through one side of a plater chiller. An automated 3-way valve will direct the water back to the HLT. This is to stir for even heating. Temp control is relegated to the temp controller. Through Modbus communications I can write set values to it from the PLC and read process values off the thermocouples…which are connected to the temp controllers. The temp controller, through a solidstate relay directly controls the heat element. Once temp is at the target strike water temp, the 3-way valve reconfigures to direct flow to the mash tun (MLT). The MLT has a ‘sparge arm’ with a spray nozzle on it. I calculated out the flow rate of the pump/system so I can pump a specific strike water volume based on time. Once that’s done it sounds an alarm prompting me to add the grains. Once doughed in I hit the ‘start’ button and it starts the mash timer. I used to have this set up as an auto HERMS system, but found it pretty inefficient. I’ve since just wrapped the MLT in insulation and just do a one-step infusion mash. Once the mash is underway, it automatically refills the HLT and heats to the sparge water temp. When the mash is done, another valve opens to slowly gravity feed the wort into the boil kettle. The system automatically runs the sparge and stops when it hits your target total volume. Again, it keeps a constant tally of how long pump 1 runs pumping water to the MLT to calculate total water volume. It then sounds an alarm to let you know you are ready to boil.
Boil is fairly manual. I use another temp controller, but in a manual mode (on/off). I rigged up a potentiometer through the PLC to output “percent on” time to the temp controller. I just thought it would be more intuitive to turn a knob to turn up or down the heat. The plc will enable the boil element when in the boil (only one heat element can be active at a time). I crank the knob to 100% to start the boil, then back off to around 50% to maintain a nice, rolling boil. Hit “start boil” and it starts the boil timer. Prompts will alert me and display on the screen when hop additions are due. The boil kettle is plumbed to pump 2 which routes through the other side of that plate chiller and back to the boil kettle. 15 minutes to the end of boil it turns that pump on to circulate boiling wort to sanitize the plate chiller. End of boil it ‘beep’s and immediately goes into cool down mode. Heat element gets disabled and both pumps turn on. The solenoid valve to fill the HLT turns on and this cold water gets pumped through one side of the chiller while the wort is pumped through the other side. The cooling water gets rerouted to go down a drain instead of into the HLT. It’ll run like this until the wort’s target cool temp is reached. I can then throw a sanitized tube on the output of pump 2 and transfer to a carboy.
I went overboard with this and probably have over $1000 sunk in it. I’m afraid to actually tally up the exact amount, but hey, it’s a hobby. I have a 350CFM exhaust fan routed straight outside and it’s not quite enough. I had to use a dehumidifier to keep the moisture in check. 220 volts of power is supplied off a double gang, 50 amp GFCI breaker. Programming the PLC was by far the most difficult part. Lots of sequences, timers, and number crunching to keep track off.