Skip to content

Calculate plugin examples

Anders Nylund edited this page Dec 18, 2020 · 5 revisions

A collection of examples using the calculate plugin

Detection of failed circulation pump, with a warm water valve automatically controlling the temperature to the heaters.

It uses if/then/else and local variables

  • heater_T is the temperature of warm water to the heaters
  • heater_return_T is the temperature of water returning from the heaters
  • if the pump is not running, then self circulation will start. The valve will be opened to max after some time.
  • if the ratio between (return_T -20) and (heater_T - return_T) is very small then self circulation is active, possibly caused by a failed pump
  • limits have to be changed for each installation to match normal values
c6_prog = heater_T get T1 def heater_return_T get T2 def T1 rcl T2 rcl - DT def if DT rcl 0.0 > then T2 rcl 20 - DT rcl / else 2.0 end
c6_readitem = heater_ratio

c7_prog = if heater_ratio get 1.0 > then 0 else 1 end
c7_readitem = self_circulation

Automatically set silo level plugin parameters

The plugin silo_level calculates the remaining amount of pellet by itself and doesn't use the magazine_content parameter in the scotte burner. If you want both to show the correct amount you have to change them both when filling up pellet, which can be annoying.

This script monitors the magazine_content parameter. If it's value has increased, the script writes the new value to the parameter silo_reset_level, which keeps the two in sync automatically.

[plugin_Calculate]
calc1_prog = 50000 oldlevel gdef
 if magazine_content get oldlevel grcl > then
    magazine_content get silo_reset_level set
 end
 magazine_content get oldlevel gsto 1
calc1_taskcycle = 10