Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Code is implemented in accordens to the requirments given in the  function description. Quickly summerized it describes the following,

  • Survey and report the temperature
  • Sound  an alarm after 30 mintues if the temperature deviates more than +-1C away from the setpoint.
  • In case of an alarm, turn on fans to ensure a well ventilated facility


The Code for the Temperature sensor is based on its technical data, where 0v = -30C[NOT VERIFIED]  which linearly scales to 10v = 200C[NOT VERIFIED]. This means that linear interpolation is utilized to scale the input voltage too an output in celsius.


Linear interpolation is performed with the following function,


This means that the inputs needs to be,

  • sensor_reading:REAL;
  • set_point_in_c:REAL;
  • alarm_delay:TIME;
  • max_temp:REAL;
  • max_temp_in_volts:REAL;
  • min_temp:REAL;
  • min_temp_in_volts:REAL;


And the outputs needs to be,

  • temp_read_in_c:REAL;
  • alarm_high:BOOL;
  • alarm_low:BOOL;


With the following internal variables,

  • alarm_since_trig:TIME;
  • alarm_high_trig:BOOL;
  • alarm_low_trig:BOOL;
  • alarm_high_trig_0:BOOL;
  • alarm_low_trig_0:BOOL;


The coded implementation looks like this,