Files

100 lines
4.8 KiB
Plaintext

FUNCTION_BLOCK "VP_Auslagern"
{ S7_Optimized_Access := 'FALSE' }
// Mechanische AWL->SCL-Konvertierung (awl2scl.py). Kontrollfluss per GOTO,
// wo im Original mit Sprungmarken gearbeitet wurde. Vor Uebernahme in TIA
// Portal pruefen/kompilieren (siehe SCL-Export/README.md).
VAR_INPUT
DVP_Sensoren : Word; // war "DVP_Sensoren"
MB3207 : Byte; // war "MB3207"
MB3210 : Byte; // war "MB3210"
MB3211 : Byte; // war "MB3211"
MB3212 : Byte; // war "MB3212"
MB3213 : Byte; // war "MB3213"
MB3214 : Byte; // war "MB3214"
MB3215 : Byte; // war "MB3215"
END_VAR
VAR_IN_OUT
g_7_HMI_Err_UH07_OB : Word; // war "7_HMI_Err_UH07_OB"
BG3181 : Word; // war "BG3181"
BG3182 : Word; // war "BG3182"
BG3183 : Word; // war "BG3183"
BG3184 : Word; // war "BG3184"
BG3185 : Word; // war "BG3185"
BG3240 : Word; // war "BG3240"
BG3241 : Word; // war "BG3241"
BG3480 : Word; // war "BG3480"
BG3481 : Word; // war "BG3481"
DOutbound_Bereich : Word; // war "DOutbound_Bereich"
DVP_Antriebe : Word; // war "DVP_Antriebe"
MA0147 : Bool; // war "MA0147"
MA0150 : Bool; // war "MA0150"
END_VAR
VAR
Ausfahren_Ok_B : "MAusfahrFreigabe_neu";
Impuls_MB3480 : "MImpulsGeber";
Ausfahren_Ok_A : "MAusfahrFreigabe_neu";
Impuls_MB3185 : "MImpulsGeber";
Simulation_Auslagern : Struct
Auslagern_aktiv : Bool;
Wartezeit : Int;
Vollpuffer_Check : Int;
Vollpuffer_Aktiv : Int;
Last_Check : Int;
Position : Int;
END_STRUCT;
END_VAR
VAR_TEMP
ErrQuit : Bool;
Antrieb : Bool;
Impuls : Bool;
Lager_X : Int;
Lager_DB : Int;
Lager_DW : Int;
AR1Zeiger : DWord; // Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes)
AR1Start : DInt; // Startwert mit Offset 0
END_VAR
BEGIN
REGION Inkremente B über Zahnrad-Sensor
#ErrQuit := #DOutbound_Bereich.A01_UZ7107.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7104.StOk_aktiv;
#Impuls_MB3480(B_Zaehlen := #BG3480, Antrieb_aktiv := #MA0147, Quit := #ErrQuit, Signal := #Impuls, Err_Kein_Signal := #g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Kein_Signal, Err_Signal_zu_lang := #g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Signal_zu_lang);
IF (#g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Kein_Signal OR #g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Signal_zu_lang) AND NOT (#ErrQuit) THEN #DVP_Antriebe.MA0147.Stat.Stop_vor := TRUE; END_IF;
IF #g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Kein_Signal OR #g_7_HMI_Err_UH07_OB.Impulsgeber_3480.Signal_zu_lang THEN
#DOutbound_Bereich.A01_UZ7107.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UZ7104.StOk_blinken := TRUE;
END_IF;
END_REGION
REGION Ausfahr-Steuerung B
#Ausfahren_Ok_B(Impuls := #Impuls, Vorbei_1 := #BG3183, Vorbei_2 := #BG3182, Vorbei_3 := #BG3181, Vorbei_4 := #BG3481, Inks_Vorbei_1 := 12, Inks_Vorbei_2 := 158, Inks_Vorbei_3 := 353, Inks_Vorbei_4 := 509, Antrieb_ein := #DVP_Antriebe.MA0147.Stat.A_start);
END_REGION
REGION Lager-Raus-Antrieb B stoppen
IF #BG3183 AND ((((((((((#MB3207 OR #MB3210) OR #MB3211) OR #MB3212) OR #MB3213) OR #MB3214) OR #MB3215) OR #DVP_Sensoren.Stau_BG3184.Stat.B_Akt) OR #DVP_Sensoren.Stau_BG3240.Stat.B_Akt) OR #DVP_Sensoren.Stau_BG3241.Stat.B_Akt) OR #DVP_Sensoren.Stau_BG3242.Stat.B_Akt) THEN #DVP_Antriebe.MA0147.Stat.Stop_vor := TRUE; END_IF;
END_REGION
REGION Inkremente A über Zahnrad-Sensor
#ErrQuit := (#DOutbound_Bereich.A01_UZ7104.StOk_aktiv OR #DOutbound_Bereich.A01_UZ7105.StOk_aktiv) OR #DOutbound_Bereich.A01_UC071.StOk_aktiv;
#Impuls_MB3185(B_Zaehlen := #BG3185, Antrieb_aktiv := #MA0150, Quit := #ErrQuit, Signal := #Impuls, Err_Kein_Signal := #g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Kein_Signal, Err_Signal_zu_lang := #g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Signal_zu_lang);
IF (#g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Kein_Signal OR #g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Signal_zu_lang) AND NOT (#ErrQuit) THEN #DVP_Antriebe.MA0150.Stat.Stop_vor := TRUE; END_IF;
IF #g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Kein_Signal OR #g_7_HMI_Err_UH07_OB.Impulsgeber_3185.Signal_zu_lang THEN
#DOutbound_Bereich.A01_UZ7104.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UZ7105.StOk_blinken := TRUE;
#DOutbound_Bereich.A01_UC071.StOk_blinken := TRUE;
END_IF;
END_REGION
REGION Ausfahr-Steuerung A
#Ausfahren_Ok_A(Impuls := #Impuls, Vorbei_1 := #BG3241, Vorbei_2 := #BG3240, Vorbei_3 := #BG3184, Vorbei_4 := #BG3183, Inks_Vorbei_1 := 146, Inks_Vorbei_2 := 331, Inks_Vorbei_3 := 489, Inks_Vorbei_4 := 482, Inks_Vorbei_5 := 630, Antrieb_ein := #DVP_Antriebe.MA0150.Stat.A_start);
END_REGION
REGION Ende
RETURN;
END_REGION
END_FUNCTION_BLOCK