54 lines
2.4 KiB
Plaintext
54 lines
2.4 KiB
Plaintext
FUNCTION "EPtoLP_Draussen" : Void
|
|
TITLE = Draussen-FC: EP > LP
|
|
{ S7_Optimized_Access := 'FALSE' }
|
|
AUTHOR : AE
|
|
FAMILY : Module
|
|
NAME : Draussen
|
|
//SCL-Portierung des AWL-Bausteins FC4182 "EPtoLP_Draussen" (verhaltensgleich).
|
|
//
|
|
//Der Baustein hatte im AWL-Original die Bausteineigenschaft "Parameterversorgung
|
|
//ueber Register" (ParameterPassing) aktiv und konnte daher nur per UC/CC aus AWL
|
|
//aufgerufen werden. Da der Baustein ausschliesslich den globalen Merker MW190
|
|
//(Schleusen-Nr) liest sowie globale DB-Daten voll qualifiziert verwendet, gibt es
|
|
//keine echte Registerabhaengigkeit -> die Option entfaellt bei der SCL-Fassung,
|
|
//der Baustein ist damit direkt aus SCL aufrufbar (CASE 4182 in MHMOmniSchleuse).
|
|
//
|
|
//Der indirekte Dispatch (AWL: je Netzwerk "L MW190 / L <Schleuse> / NE_I / JC")
|
|
//ist als CASE ueber die Schleusen-Nr ausgefuehrt. Die Merker-Schnittstelle
|
|
//(MW190 vom Aufrufer gesetzt) bleibt erhalten.
|
|
//
|
|
//ABWEICHUNGEN ZUM AWL-ORIGINAL (bei Inbetriebnahme pruefen!):
|
|
// - Es wird nur eine Schleusen-Nr (4466) ausgewertet; alle anderen Werte fuehren
|
|
// (wie im Original per JC ans Netzwerkende) zu keiner Aktion -> CASE ELSE.
|
|
// - NE_I vergleicht den geladenen WORD-Wert "Weichen_Ziel" mit der WORD-Konstante
|
|
// 16#4461; hier als direkte WORD-Gleichheit (= W#16#4461) uebernommen.
|
|
// - Der BEC (bedingtes Bausteinende nach NE_I) ist als IF ... THEN ausgefuehrt:
|
|
// nur bei Gleichheit (Weichen_Ziel = W#16#4461) wird Akt_Schritt := 0 gesetzt,
|
|
// andernfalls endet der Baustein wirkungslos.
|
|
VAR_TEMP
|
|
"Error.Bit" : Bool;
|
|
END_VAR
|
|
|
|
BEGIN
|
|
// NW1: Rueckmeldung
|
|
// Rückmeldungen erst mal resetten (AWL: SET / R M180.6 -> unbedingter Reset)
|
|
"M180.6" := FALSE; // Weiterfahrt von Ziel-FC erlaubt
|
|
|
|
// AWL: UC FC4182 dispatcht ueber MW190 (Schleusen-Nr, vom Aufrufer gesetzt)
|
|
CASE WORD_TO_INT("MW190") OF
|
|
|
|
4466: // NW2: Schleuse 4466 (Vor ByPass vom VP): Ausgefahren ?
|
|
// Abzweig? (AWL: L Weichen_Ziel / L 16#4461 / NE_I / BEC)
|
|
IF "DVPtoEP_OmniFahren".Schleuse_4443.Dyn.Weichen_Ziel = W#16#4461 THEN
|
|
// Partner-Trolley will zu LP fahren:
|
|
// Bei Partner (Schleuse 4443) wieder mit Schritt 0 beginnen (erneuter Ziel-FC-Aufruf)
|
|
"DVPtoEP_OmniFahren".Schleuse_4443.Dyn.Sk.Akt_Schritt := 0;
|
|
END_IF;
|
|
|
|
ELSE
|
|
; // unbekannte Schleusen-Nr -> nichts tun (AWL: JC ans Netzwerkende)
|
|
END_CASE;
|
|
|
|
// NW3: Ende (AWL: BE)
|
|
END_FUNCTION
|