Advertisement
Guest User

Untitled

a guest
Aug 4th, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SCL 3.21 KB | None | 0 0
  1. FUNCTION DeckControlExecute : VOID
  2. title   = 'deckControl execute'
  3. family  : 'deckCtrl'
  4. author  : 'wisol'
  5.  
  6. VAR_INPUT
  7.     oven        : INT;
  8.     deck        : INT;
  9. END_VAR
  10. BEGIN
  11.     // States:
  12.     // 0  = init / error
  13.     // 3  = Off
  14.     // 4  = Heating
  15.     // 5  = HeatingOff
  16.     // 6  = ReadyLoad
  17.     // 10 = EStop
  18.     // 11 = Bake
  19.     // 12 = BakeStop
  20.     // 13 = BakeEnd
  21.     IF DeckControlDB.data[oven,deck].STATE = 0 THEN // init / error
  22.         ;
  23.         DeckControlDB.data[oven,deck].panel_state := 0;
  24.     ELSIF DeckControlDB.data[oven,deck].STATE = 3 THEN // Off
  25.         ;
  26.         DeckControlDB.data[oven,deck].panel_state := 0;
  27.     ELSIF DeckControlDB.data[oven,deck].STATE = 4 THEN // Heating
  28.       (*  if DeckControlDB.data[oven,deck].heatTimeCount >                    // stop after  ?t
  29.            ((DeckControlDB.data[oven,deck].specHeatTimeMin* 60)) then
  30.             FireControlStopHeat(oven := oven, deck := deck);
  31.         end_if; *)
  32.         IF Impuls_1Sec THEN
  33.             deckControlHeatTime(oven := oven, deck := deck);
  34.         END_IF;      
  35.         IF SfTemperatureGet(oven := oven, deck := deck) >=
  36.            DeckControlDB.data[oven, deck].act_recipe.Temperature THEN    
  37.             IF FireControlDB.data[oven,deck].STATE = 9 THEN
  38.                 DeckControlDB.data[oven,deck].dTemp := (SfTemperatureGet(oven := oven, deck := deck)                     // calculate delta Temp
  39.                                                         - DeckControlDB.data[oven,deck].startTemp) /10;
  40.                 SysTempLearn(deck  := deck,
  41.                              dTemp := DeckControlDB.data[oven,deck].dTemp,
  42.                              dTime := DeckControlDB.data[oven,deck].actHeatTimeMin);          
  43.                 FireControlStopHeat(oven := oven, deck := deck);        
  44.             END_IF;
  45.         END_IF;
  46.     //    DeckControlDB.data[oven,deck].panel_state := 1;
  47.     ELSIF DeckControlDB.data[oven,deck].STATE = 5 THEN // HeatingOff
  48.         ;
  49.     ELSIF DeckControlDB.data[oven,deck].STATE = 6 THEN // ReadyLoad
  50.         ;
  51.         DeckControlDB.data[oven,deck].panel_state := 12;
  52.     ELSIF DeckControlDB.data[oven,deck].STATE = 10 THEN // EStop
  53.         ;
  54.     ELSIF DeckControlDB.data[oven,deck].STATE = 11 THEN // Bake
  55.         IF (DeckControlDB.data[oven,deck].baketimeCount >
  56.            (DeckControlDB.data[oven,deck].specBaketimeMin * 60)) THEN
  57.             StateChange(p_dst_state := 13, p_state := DeckControlDB.data[oven,deck].STATE);
  58.             FlueGasFlapStopBake(oven := oven, deck := deck);
  59.             ErrorUserNotificationSet(oven := oven, deck := deck);
  60.         END_IF;
  61.         IF Impuls_1Sec THEN
  62.             deckControlCountTime(oven := oven, deck := deck);
  63.         END_IF;        
  64.         DeckControlDB.data[oven,deck].panel_state := 13;
  65.     ELSIF DeckControlDB.data[oven,deck].STATE = 12 THEN // BakeStop
  66.         ;
  67.         DeckControlDB.data[oven,deck].panel_state := 2;
  68.     ELSIF DeckControlDB.data[oven,deck].STATE = 13 THEN // BakeEnd
  69.         ;
  70.         DeckControlDB.data[oven,deck].panel_state := 14;
  71.     END_IF;
  72.    
  73.     // Set temperature to panel info:        
  74.     DeckControlDB.data[oven,deck].curTemp := SfTemperatureGet(oven := oven, deck := deck);
  75.    
  76. END_FUNCTION
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement