ILSLib hinzugefügt
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
FUNCTION "FC_SHR_CheckStationPin" : Void
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
nInStation : Int;
|
||||
xInTargetStation : Bool;
|
||||
nInConvStations : Int; // neu hinzugefügt, statt Konstante
|
||||
nInStationsMax : Int; // neu hinzugefügt, statt Konstante
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
xOutStationHi : Bool;
|
||||
xOutStationNHi : Bool;
|
||||
xOutStationHiBefore : Bool;
|
||||
nOutBarcode : DInt;
|
||||
sOutBarcode : String;
|
||||
END_VAR
|
||||
|
||||
VAR_IN_OUT
|
||||
stInOutConveyorStations : "stConveyorStations";
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
nCounter : Int;
|
||||
xStationHi : Bool;
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
// *************************************************************
|
||||
// Prüft ob Hanger aus dem Online-Register Station erreicht hat
|
||||
// *************************************************************
|
||||
|
||||
IF #stInOutConveyorStations.stData.nTrolleysOnline = 0 OR
|
||||
(#nInStation > #nInStationsMax) THEN
|
||||
RETURN;
|
||||
END_IF;
|
||||
|
||||
FOR #nCounter := 1 TO #nInConvStations DO
|
||||
IF #stInOutConveyorStations.arTrolleysOnline[#nCounter].stCarrier.bStatus.%X0 AND // Teil vorhanden
|
||||
((#stInOutConveyorStations.arTrolleysOnline[#nCounter].stPinValues.nTarget = #nInStation) OR NOT #xInTargetStation) AND // Zielstation GLEICH der eigenen Station
|
||||
(#stInOutConveyorStations.arTrolleysOnline[#nCounter].stPinValues.nPosAct >= #stInOutConveyorStations.arStationsPos[#nInStation].nPosIncr) THEN
|
||||
|
||||
#xStationHi := 1; //sagt Abwurf abbiegen
|
||||
|
||||
IF #xStationHi THEN
|
||||
#nOutBarcode := #stInOutConveyorStations.arTrolleysOnline[#nCounter].stCarrier.nBarcode;
|
||||
END_IF;
|
||||
EXIT;
|
||||
ELSIF
|
||||
#stInOutConveyorStations.arTrolleysOnline[#nCounter].stCarrier.bStatus.%X0 AND // Teil vorhanden
|
||||
((#stInOutConveyorStations.arTrolleysOnline[#nCounter].stPinValues.nTarget > #nInStation) OR NOT #xInTargetStation) AND // Zielstation GRÖßER der eigenen Station
|
||||
(#stInOutConveyorStations.arTrolleysOnline[#nCounter].stPinValues.nPosAct >= #stInOutConveyorStations.arStationsPos[#nInStation].nPosIncr) AND
|
||||
(#stInOutConveyorStations.arTrolleysOnline[#nCounter].stPinValues.nPosAct < #stInOutConveyorStations.arStationsPos[#nInStation].nPosIncr + 150) THEN
|
||||
|
||||
#xOutStationNHi := 1; //sagt Abwurf geradeaus
|
||||
EXIT;
|
||||
END_IF;
|
||||
END_FOR;
|
||||
#xOutStationHi := #xStationHi;
|
||||
END_FUNCTION
|
||||
|
||||
Reference in New Issue
Block a user