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
