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 a output in celsius.


Linear interpolation is performed with the following function,

Image Added


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,

Image Added