Let the mounting begin. The TB ends were backordered, and I am about 12" short on my 1" wireway.
Drilling\tapping the holes with the greenlee combo! Don't forget cutting oil!
Mounting DIN Rails and wireway
Clipped on components! Looking good!
Started working on getting components mounted to the subpanel. I'm likely going to use M5 x 0.8mm x 10mm screws and a tap to hold things down.
I also spent some time looking at current requirements and decided put in 1n004 diodes on the coil controlled devices. Due to requiring 12W (0.5A@24V), I have added interposing relays to drive the large contactors.
I have made the PLC logic available. I will be working on the HMI screens this weekend and will post that when it is ready.
I have also been working out some issues with my intial design in terms of isolation and fusing. I have updated all documents with new surge supression and fusing on plc I/O. I have yet to source diodes or mov's for the cube relays. I also want to note that the cost of purchase is substantially above the TEB\Kal model. $200 over budget... I am ok with this lol.
I have some ideas to flesh out the modbus comm and initialization sections of logic that will also be in the works this weekend. These will probably remain unfinished until I purchase the SOLO controllers and C-MORE HMI.
The subpanel, wiring duct and relays are in. Now I can start assembly\wiring\drilling on the subpanel!
I purchased the subpanel, wiring duct, and relays. Little by little my parts will be bought. In the order I have bought things I will have a home for my components!
I also took a couple hours last night to flesh out the main brewing process logic. Each step is manually started and told to complete via the HMI. This way we can ensure that the heaters and pumps are not damaged by low liquid level, and that all hoses are routed correctly.
The step logic is set-up so that once the criteria for step end are satisfied, and the brewer presses the "Next Step" HMI button, the PLC moves the next step value into the current step register and Latches the "Step x complete" bit, which will give visual indication that the step has been processed. Upon completion the "Next Step" HMI button will move a value of 0 to the current step register, advancing the system back to the idle state and unlatching the step complete registers.
The start\stop of the pumps and elements is handled by the step logic and an operator button. For example, during step 1, the water pump will not start until step 3100 which is entered by an operator button. I need to read more on the MODBUS abilities of the PLC to see if it supports a single coil write (05 command) which will allow me to switch the PIDs between Auto\Manual modes. If so I will add logic to write Manual - 0F SP to the PIDs to ensure they are off until the brewer sees that the elements are safe.
So, I believe the skeleton logic is roughly 70% complete. All that is left is to write the Communication Logic to talk to the PIDs: Reads will happen cyclically as fast as possible. Writes will pause read, and be set either by HMI Pushbutton or by the Brewing Process Step Logic.
Hopefully my text is easy to understand. I will try to upload the .ckp file today so that the logic is easier understood. There is no commenting at the moment, I was holding the baby while writing code, so I was trying to be quick.
Spent some time this weekend discussing a functional spec with the Triumvirate.
Converted all discrete devices (pumps, contactors) to Two-State Devices. My two state device logic provisions for auto\manual modes, feedback alarming, feedback simulation, alarm auto silencing, Alarm Enable, and interlocking.
Auto\Manual allows us to have HMI control in manual mode, and PLC control in Auto Mode.
Sample control bits would be:
- C100 = Wort Pump Mode
- C101 = Wort Pump Auto Command
- C102 = Wort Pump Run Command
- C103 = Wort Pump Run FB1
- C104 = Wort Pump Stop FB0
- C105 = Wort Pump Interlock
- C106 = Wort Pump Simulate FB1
- C107 = Wort Pump Simulate FB0
- C108 = Wort Pump Alarm Enable
- C109 = Wort Pump Alarm Auto Clear
I will put in an initialize word for all Two State Devices in order to "configure" them for our needs.
I will attach the Two State Device logic tonight.
I reordered the Logic into neater subroutines, and started work on the brewing process step-machine. The steps will be per the TEB steps:
- 0 = Idle, Error
- 1 = Heat Strike Water
- 2 = Transfer Strike Water to MLT
- 3 = Mash
- 4 = Mash Out
- 5 = Sparge
- 6 = Boil
- 7 = Cooling
I am going to provision for adding valves in the future. That way when we hard plumb, I will just have to unpack the valve word to bits, and set the bits to the auto command for the valves!
I haven't got much done in the last few days due to taking care of my daughter. I do want to clarify my wiring convention for those of you who are wondering.
BLUE (+24V)- "ungrounded dc control conductors"
BLUE/WHITE (24V Com) - "for grounded (currentcarrying) dc circuit conductor."
BLACK (+120Vac) - "ungrounded line, load, and control conductors at line voltage"
RED (-120Vac) - "ungrounded ac control conductors at less than line voltage"
WHITE (Neutral) - "Where an ac circuit includes a grounded conductor,"
YELLOW(120Vac control coil) - "Ungrounded circuit conductors that remain energized when the supply disconnecting means is in the off position"
YELLOW/WHITE(120Vac control coil neutral) - "for grounded (current-carrying) circuit conductor, which remains energized when the main disconnecting means is in the off position."
GREEN(GND) - "used to identify the equipment grounding conductor where insulated or covered."
The PLC and accessories have arrived. Time to start programming.
I have purchased the PLC and a few accessories to begin the project. Picked up the PLC, power supply, battery, programming cable, and my 35mm DIN rail.
The plc design logic is based on the switch design of TEB.
- Wort pump and Water pump have no interlocks.
- Interlock Boil and HLT with each other to ensure only one can be on at a time.
- Alarm handler for generic alarming and silencing with a global mute for the 80dB bitch alarm.
- Interlocking based on communication loss to Touchscreen or PLC failure.
- Device state at start up will be in the off position.
- Device state at failure will be in the off position.
The touchscreen design logic is based on the following design specs:
- Touchscreen control to start each pump.
- Touchscreen control to choose Boil\HLT element.
- Touchscreen timer setpoint selection and display.
- Touchscreen simulation of device feedback via automation.
- Touchscreen to manage alarms, include buzzer and silence.
1st rungs of stupid-simple logic.
Boil timer. The rung below is just a seconds to HH:MM:SS converter.
Alarming. The alarm handler is yet to be fixed, since I just figured out how to use pointers.
Main screen WIP. Need to add pumps and dynamic animations.