Ladies and gents, as of 3:50pm, EST on 11/20/22, i can report fully automatic operation of a homebrew babington burner including safeties.
Took some time to figure out the logic, in the end i just treated it as a binary problem. I just treated each characteristic as a on/off choice and setup ladder logic to meet those criteria. Behavior matches desired. I can switch off the controller in house or in shop, and when restarting, behaves as it's supposed to. Will not restart in the middle of a cycle nor if start conditions are not met.
Tested at the shop panel, after a reset, pressing "Start on motor oil" it checks for oil temps over 150F, turns on the oil pump for 2 minutes to stabilize oil temp, turns on the blower for 5 seconds to establish airflow, then ignition for as long as it takes to send the water tank temp up to 140F, at which it shuts the burner down. Restarts the boiler at 120F falling. There is also an hour meter timer on the burner to grab run times between cleanings. As it's currently at 45F in the shop, i expect it will run at least 8 hours tonight before reaching 60F in the shop. I expect to clean the boiler at least once before bed, then probably again in the morning, at which time, i would expect cleanings about 1 every day or two. There's no automatic shutdown for cleanings, it will simply stop running and lock out the ignition. I can reset manually at the burner easily. That should mostly go away with the new boiler design, the new burner tube will be 4X the volume, and should run much longer between cleanings. I can also get fancy at some point and send the alarm contacts on the ignition to the plc, where it can send an email to me over the network to advise of a no-start.
There is some additional flexibility i built into the system to allow different firing rates. Since burner firing is on/off rather than variable, i can change oil flow and air flow rates using separate logic based on temperatures. Since that will be experimentally determined, the burner start/stop logic is completely separated. It's as simple as writing new values to a couple of memory locations to change flow rates during operation. I'll probably need some combustion temp feedback to get to that level of mapping though.
2 days the boiler has been off, it went from 60F to 45F over that time, with outside temps ranging from 30F to 15F overnight. I think its going to be pretty easy to heat.
Thanks for following along!