Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FUNCTION DeckControlExecute : VOID
- title = 'deckControl execute'
- family : 'deckCtrl'
- author : 'wisol'
- VAR_INPUT
- oven : INT;
- deck : INT;
- END_VAR
- BEGIN
- // States:
- // 0 = init / error
- // 3 = Off
- // 4 = Heating
- // 5 = HeatingOff
- // 6 = ReadyLoad
- // 10 = EStop
- // 11 = Bake
- // 12 = BakeStop
- // 13 = BakeEnd
- IF DeckControlDB.data[oven,deck].STATE = 0 THEN // init / error
- ;
- DeckControlDB.data[oven,deck].panel_state := 0;
- ELSIF DeckControlDB.data[oven,deck].STATE = 3 THEN // Off
- ;
- DeckControlDB.data[oven,deck].panel_state := 0;
- ELSIF DeckControlDB.data[oven,deck].STATE = 4 THEN // Heating
- (* if DeckControlDB.data[oven,deck].heatTimeCount > // stop after ?t
- ((DeckControlDB.data[oven,deck].specHeatTimeMin* 60)) then
- FireControlStopHeat(oven := oven, deck := deck);
- end_if; *)
- IF Impuls_1Sec THEN
- deckControlHeatTime(oven := oven, deck := deck);
- END_IF;
- IF SfTemperatureGet(oven := oven, deck := deck) >=
- DeckControlDB.data[oven, deck].act_recipe.Temperature THEN
- IF FireControlDB.data[oven,deck].STATE = 9 THEN
- DeckControlDB.data[oven,deck].dTemp := (SfTemperatureGet(oven := oven, deck := deck) // calculate delta Temp
- - DeckControlDB.data[oven,deck].startTemp) /10;
- SysTempLearn(deck := deck,
- dTemp := DeckControlDB.data[oven,deck].dTemp,
- dTime := DeckControlDB.data[oven,deck].actHeatTimeMin);
- FireControlStopHeat(oven := oven, deck := deck);
- END_IF;
- END_IF;
- // DeckControlDB.data[oven,deck].panel_state := 1;
- ELSIF DeckControlDB.data[oven,deck].STATE = 5 THEN // HeatingOff
- ;
- ELSIF DeckControlDB.data[oven,deck].STATE = 6 THEN // ReadyLoad
- ;
- DeckControlDB.data[oven,deck].panel_state := 12;
- ELSIF DeckControlDB.data[oven,deck].STATE = 10 THEN // EStop
- ;
- ELSIF DeckControlDB.data[oven,deck].STATE = 11 THEN // Bake
- IF (DeckControlDB.data[oven,deck].baketimeCount >
- (DeckControlDB.data[oven,deck].specBaketimeMin * 60)) THEN
- StateChange(p_dst_state := 13, p_state := DeckControlDB.data[oven,deck].STATE);
- FlueGasFlapStopBake(oven := oven, deck := deck);
- ErrorUserNotificationSet(oven := oven, deck := deck);
- END_IF;
- IF Impuls_1Sec THEN
- deckControlCountTime(oven := oven, deck := deck);
- END_IF;
- DeckControlDB.data[oven,deck].panel_state := 13;
- ELSIF DeckControlDB.data[oven,deck].STATE = 12 THEN // BakeStop
- ;
- DeckControlDB.data[oven,deck].panel_state := 2;
- ELSIF DeckControlDB.data[oven,deck].STATE = 13 THEN // BakeEnd
- ;
- DeckControlDB.data[oven,deck].panel_state := 14;
- END_IF;
- // Set temperature to panel info:
- DeckControlDB.data[oven,deck].curTemp := SfTemperatureGet(oven := oven, deck := deck);
- END_FUNCTION
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement