100 lines
4.8 KiB
Plaintext
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
|