Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2016
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SCL 2.18 KB | None | 0 0
  1. FUNCTION deckControlStartHeat : VOID
  2. title = 'deck control start heat'
  3. family : 'deckCtrl'
  4. author : 'dsh'
  5.  
  6. VAR_INPUT
  7.     oven    : INT;
  8.     deck    : INT;
  9.     recipe  : INT;
  10. END_VAR
  11. VAR_TEMP
  12.     copyRet : INT;
  13.     dTemp   : INT;
  14. END_VAR
  15. BEGIN
  16.     IF DeckControlDB.data[oven,deck].STATE = 3 OR
  17.        DeckControlDB.data[oven,deck].STATE = 5 OR
  18.        DeckControlDB.data[oven,deck].STATE = 6 OR
  19.        DeckControlDB.data[oven,deck].STATE = 12 THEN
  20.         copyRet := RecHandlerCopyDeck(oven := oven,
  21.                                       deck := deck,
  22.                                       recipe := recipe);
  23.         IF copyRet <> 0 THEN
  24.             deckControlerror(oven := oven, deck := deck, error := 1);
  25.             RETURN;
  26.         END_IF;
  27.  
  28.         // check if pre heating is required
  29.         IF (SfTemperatureGet(oven := oven, deck := deck) -
  30.             DeckControlDB.settings[oven,deck].minTempDiffToStart) >=
  31.            DeckControlDB.data[oven, deck].act_recipe.Temperature THEN
  32.             // do not heat, switch to ready to load...
  33.             StateChange(p_dst_state := 6, p_state := DeckControlDB.data[oven,deck].STATE);        
  34.         ELSE
  35.             IF DeckDoorIsClosed(oven := oven, deck := deck) THEN
  36.                 StateChange(p_dst_state := 4, p_state := DeckControlDB.data[oven,deck].STATE);
  37.  
  38.                 dTemp := DeckControlDB.data[oven, deck].act_recipe.Temperature                                  // calculate ?T
  39.                        - SfTemperatureGet(oven := oven, deck := deck);
  40.                 DeckControlDB.data[oven,deck].specHeatTimeMin := SysTempCalc(deck := deck, dTemp := dTemp);     // calculate ?t
  41.  
  42.                 DeckControlDB.data[oven,deck].panel_state := 3;                                    
  43.                 DeckControlDB.data[oven,deck].actHeattimeMin := 0;
  44.                 DeckControlDB.data[oven,deck].actHeattimeSec := 0;
  45.                 DeckControlDB.data[oven,deck].HeatTimeCount := 0;
  46.                 FireControlPrepare(oven := oven, deck := deck);            
  47.             ELSE
  48.                 deckControlerror(oven := oven, deck := deck, error := 2);
  49.             END_IF;          
  50.         END_IF;
  51.     END_IF;
  52. END_FUNCTION
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement