Files
HundM_awl/SCL-Export/=A01+UH07-KF00/EPtoLP_Draussen.scl
T

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