What you can do to protect your tank in cases of failure?
Program with failure in mind - You should avoid code with open ended
conditions
Bad:
If Temp > 80 Then COL ON
If Temp < 77 Then COL OFF
Better:
If Temp > 80 Then COL ON
If Temp > 84 Then COL OFF // Something may be wrong
If Temp > 83 Then ALM ON // Notify me
If Temp < 77 Then COL OFF
When a condition is open ended then the sky is the limit on the damage that can
be caused. Since, under most conditions a tank should not get so out-of-whack
that readings are off-the-scale of what would be reasonable add code to handle
the unexpected (e.g., if you keep your tank between 75-77 then it would be VERY
unlikely that the temp would ever reach < 72 or > 80 so code as such. Add code
to handle the unexpected; (using the above example) if the temp > 80 then it may
be more likely that something has failed, shutting down things may be the best
solution and let the human figure it out.
Adjust heaters/chillers (if adjustment is possible) to have a
threshold slightly more/less than the AC3.
If a timer gets stuck in the ON state then the device may be able to assist in
keeping the tank under critical conditions. A stuck heater, set slightly above
AC3 set point is less likely to cause a problem than a heater set to 90 and
stuck on.
Use an alarm timer
An alarm is active notification; something gets turned on (a buzzer, a light,
email, pager, etc). An alarm gives that tank an ability to yelling when
something may not be quite right.