FUNCTION "FC_ClearJam" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
   VAR_INPUT 
      xInLocked : Bool;   // Bedingung, damit diese Funktion ausgeführt wird
   END_VAR

   VAR_IN_OUT 
      arInOutJam : Array[*] of "stCarrier";   // Zu manipulierende Jam Daten
      xInOutStart : Bool;   // Start befehlt
   END_VAR

   VAR_TEMP 
      tmpEmptyCarr : "stCarrier";   // Leere Carrier Struktur 
      nCounter : DInt;
      nArrayMax : Int;
      nIdx : Int;
      nStatus : Int;
      xResult : Bool;
   END_VAR


BEGIN
	(*
	FC löscht alle Carrierdaten für den verschaltenen Jam
	
	Man könnte optional noch einbauen, das man eine bestimmte Position löschen kann
	*)
	
	#nArrayMax := DINT_TO_INT(UPPER_BOUND(ARR := #arInOutJam, DIM := 1));
	
	REGION Returnbedingung
	    IF NOT #arInOutJam[1].bStatus.%X0 OR NOT #xInLocked THEN
	        #xInOutStart := FALSE;
	        RETURN;
	    END_IF;
	END_REGION
	
	REGION Funktion ausführen
	    IF #xInOutStart THEN
	        FOR #nIdx := 1 TO #nArrayMax DO
	            IF #arInOutJam[#nIdx].bStatus.%X0 THEN
	                #arInOutJam[#nIdx] := #tmpEmptyCarr; // Carrierdaten löschen/überschreiben
	            ELSE
	                EXIT; //fertig, nichts mehr zu tun
	            END_IF;
	        END_FOR;
	        #xInOutStart := FALSE;
	    END_IF;
	END_REGION
	
END_FUNCTION

