49 lines
1.6 KiB
Plaintext
49 lines
1.6 KiB
Plaintext
FUNCTION "FC_SHR_TargetSet_ReRoutePin" : Void
|
|
{ S7_Optimized_Access := 'TRUE' }
|
|
VERSION : 0.1
|
|
VAR_INPUT
|
|
nInBarcodeNo : DInt; // Barcode
|
|
nInTarget : USInt; // Ziel-Station f. Trolley bei My Theresa = 1
|
|
END_VAR
|
|
|
|
VAR_OUTPUT
|
|
xOutSuccess : Bool;
|
|
END_VAR
|
|
|
|
VAR_IN_OUT
|
|
stInOutConveyorStations : "stConveyorStations";
|
|
END_VAR
|
|
|
|
VAR_TEMP
|
|
nCounter : Int; // Arraynummer bzw. Haken / Trolley
|
|
END_VAR
|
|
|
|
|
|
BEGIN
|
|
// // ****************************************
|
|
// // Ändert Ziel für Barcode in Online-Register Station
|
|
// // ****************************************
|
|
|
|
IF #stInOutConveyorStations.stData.nTrolleysOnline = 0 THEN
|
|
RETURN;
|
|
END_IF;
|
|
// Passenden Eintrag finden
|
|
FOR #nCounter := 1 TO ("cHooksSorterMaxPin") DO
|
|
IF #stInOutConveyorStations.arTrolleysOnline[#nCounter].stCarrier.nBarcode = #nInBarcodeNo THEN
|
|
EXIT;
|
|
END_IF;
|
|
END_FOR;
|
|
// Wenn Eintrag gefunden, dann eintragen.
|
|
IF #nCounter < "cHooksSorterMaxPin" THEN
|
|
#stInOutConveyorStations.arTrolleysOnline[#nCounter].stCarrier.nDestination := #nInTarget;
|
|
// #stConveyorStations.arTrolleysOnline[#nCounter].stCarrData.xReRouteOverflow := TRUE; // brauchen wir bei ILS nicht (?), war speziell für Pin/Klinke
|
|
IF (#nInTarget > 0) AND (#nInTarget <= #stInOutConveyorStations.stData.nStations) THEN
|
|
#stInOutConveyorStations.arTrolleysOnline[#nCounter].stPinValues.nTargetPos := #stInOutConveyorStations.arStationsPos[#nInTarget].nPosIncr;
|
|
#xOutSuccess := 1;
|
|
END_IF;
|
|
ELSE
|
|
#xOutSuccess := 0;
|
|
END_IF;
|
|
END_FUNCTION
|
|
|