Advertisement
Guest User

FAN

a guest
Jan 31st, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // VARIABLES
  2. Variable DayOfWeek As Integer
  3.  
  4. // SETPOINTS
  5. SPACE_TEMP_DEADBAND_AV = 2
  6. SPACE_TEMP_SP = 26
  7. CO_SENSOR_WARNING_SP = 40
  8. CO_SENSOR_ALARM_SP = 60
  9. CO_SENSOR_WARNING_DEADBAND = 10
  10. CO_SENSOR_ALARM_DEADBAND = 10
  11.  
  12. 'MAX TEMP' = Max (RT1, RT2, RT3, RT4)
  13. MAX_CO = Max (CO1_LVL, CO2_LVL, CO3_LVL)
  14.  
  15. // { result = } Switch(BinaryOutput, AnalogValue, OnValue, OffValue)
  16. FAN_ENABLE_BV = Switch ( FAN_ENABLE_BV, 'MAX TEMP', (SPACE_TEMP_SP + SPACE_TEMP_DEADBAND_AV || WARNING_CO_LEVEL_BV || ALARM_CO_LEVEL_BV), SPACE_TEMP_SP)
  17.  
  18. // FAN CONTROL
  19. If FAN_ENABLE_BV = On Then
  20.  
  21.  
  22.  
  23.   FAN_LEAD_BV = On
  24.  
  25. If 'MAX TEMP' > (SPACE_TEMP_SP + (2 * SPACE_TEMP_DEADBAND_AV)) || WARNING_CO_LEVEL_BV || ALARM_CO_LEVEL_BV Then // 30.1 TO TEST ON WAY UP // 29.9 TO GO DOWN
  26.   FAN_LAG_BV = On
  27.   Else
  28.     FAN_LAG_BV = Off
  29.   End If
  30.  
  31. If 'MAX TEMP' > (SPACE_TEMP_SP + (3 * SPACE_TEMP_DEADBAND_AV)) || ALARM_CO_LEVEL_BV Then // 32.1 TO TEST ON WAY UP // 31.9 TO GO DOWN
  32.  FAN_STANDBY1_BV = On
  33.   Else
  34.      FAN_STANDBY1_BV = Off
  35.   End If
  36.  
  37.    If 'MAX TEMP' > (SPACE_TEMP_SP + (4 * SPACE_TEMP_DEADBAND_AV)) || ALARM_CO_LEVEL_BV Then // 34.1 TO TEST UP ON WAY UP // 33.9 TO GO DOWN
  38.      FAN_STANDBY2_BV = On
  39.      Else
  40.        FAN_STANDBY2_BV = Off
  41.      End If
  42.  
  43. Else
  44.        FAN_LAG_BV = Off
  45.        FAN_LEAD_BV = Off
  46.        FAN_STANDBY1_BV = Off
  47.        FAN_STANDBY2_BV = Off
  48. End If
  49.  
  50. // FAN ROTATION
  51. DayOfWeek = Weekday () // result is the weekday of the week of the controller's date
  52.  
  53. //DayOfWeek = Weekday (05-Jan-2013) // result is 6 for Saturday
  54.  
  55. IfOnce (Weekday = 2) Then
  56.  
  57. If 'FAN DUTY' = 4 Then
  58.   'FAN DUTY' = 1
  59.   Else
  60.     'FAN DUTY' = 'FAN DUTY' + 1
  61.     End If
  62. End If
  63.  
  64. If 'FAN DUTY' = FAN1 Then
  65.  EF1_C = FAN_LEAD_BV
  66.   EF2_C = FAN_LAG_BV
  67.   EF3_C = FAN_STANDBY1_BV
  68.   EF4_C = FAN_STANDBY2_BV
  69. End If
  70.  
  71. If 'FAN DUTY' = FAN2 Then
  72.  EF2_C = FAN_LEAD_BV
  73.   EF3_C = FAN_LAG_BV
  74.   EF4_C = FAN_STANDBY1_BV
  75.   EF1_C = FAN_STANDBY2_BV
  76. End If
  77.  
  78. If 'FAN DUTY' = FAN3 Then
  79.  EF3_C = FAN_LEAD_BV
  80.   EF4_C = FAN_LAG_BV
  81.   EF1_C = FAN_STANDBY1_BV
  82.   EF2_C = FAN_STANDBY2_BV
  83. End If
  84.  
  85. If 'FAN DUTY' = FAN4 Then
  86.  EF4_C = FAN_LEAD_BV
  87.   EF1_C = FAN_LAG_BV
  88.   EF2_C = FAN_STANDBY1_BV
  89.   EF3_C = FAN_STANDBY2_BV
  90. End If
  91.  
  92. // CO SENSOR ALARMS  // { result = } Switch(BinaryOutput, AnalogValue, OnValue, OffValue)
  93. WARNING_CO_LEVEL_BV = Switch ( WARNING_CO_LEVEL_BV, MAX_CO, CO_SENSOR_WARNING_SP + 1, CO_SENSOR_WARNING_SP - CO_SENSOR_WARNING_DEADBAND)
  94. ALARM_CO_LEVEL_BV = Switch ( ALARM_CO_LEVEL_BV, MAX_CO, CO_SENSOR_ALARM_SP + 1, CO_SENSOR_ALARM_SP - CO_SENSOR_ALARM_DEADBAND)
  95.  
  96.  // SAFETY
  97. If WARNING_CO_LEVEL_BV = On Then
  98.  FAN_LEAD_BV = On
  99.  FAN_LAG_BV = On
  100. Else
  101.  FAN_LEAD_BV = Off
  102.  FAN_LAG_BV = Off
  103. End If
  104.  
  105. If ALARM_CO_LEVEL_BV = On Then
  106.  FAN_LEAD_BV = On
  107.  FAN_LAG_BV = On
  108.  FAN_STANDBY1_BV = On
  109.  FAN_STANDBY2_BV = On
  110. ElseIf  FAN_ENABLE_BV = Off Then
  111. FAN_LEAD_BV = Off
  112. FAN_LAG_BV = Off
  113. FAN_STANDBY1_BV = Off
  114. FAN_STANDBY2_BV = Off
  115. End If
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement