83 lines
2.1 KiB
XML
83 lines
2.1 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4026.12">
|
|
<POU Name="ALIGNER_IO_FB" Id="{617e5ee2-ae00-42c0-8de6-a2292df23fc7}" SpecialFunc="None">
|
|
<Declaration><![CDATA[FUNCTION_BLOCK ALIGNER_IO_FB EXTENDS Station_GENERAL_IO_FB
|
|
VAR_OUTPUT
|
|
rInDiameter : LREAL; //mm
|
|
rInRoundness : LREAL; //mm
|
|
|
|
rInX_Coordinates : LREAL; //mm
|
|
rInY_Coordinates : LREAL; //mm
|
|
END_VAR
|
|
VAR
|
|
KeyenceSensor AT %I* : ARRAY[0..3] OF UDINT;
|
|
END_VAR
|
|
VAR CONSTANT
|
|
END_VAR
|
|
VAR_INPUT
|
|
ChuckVacuum : PneumaticCylinder_FB;
|
|
END_VAR
|
|
|
|
|
|
]]></Declaration>
|
|
<Implementation>
|
|
<ST><![CDATA[//LedCylinder();
|
|
ChuckVacuum();
|
|
ChuckVacuum.bInDown := NOT ChuckVacuum.bInUp;
|
|
rInDiameter := KeyenceSensor[0];
|
|
rInDiameter := rInDiameter*2;
|
|
rInDiameter := rInDiameter /1000;
|
|
|
|
|
|
rInRoundness := KeyenceSensor[1];
|
|
rInRoundness := rInRoundness/1000;
|
|
|
|
|
|
rInX_Coordinates := UDINT_TO_DINT(KeyenceSensor[2]);
|
|
rInX_Coordinates := rInX_Coordinates /1000;
|
|
|
|
|
|
rInY_Coordinates := UDINT_TO_DINT(KeyenceSensor[3]);
|
|
rInY_Coordinates := rInY_Coordinates /1000;
|
|
|
|
IF ROBOT_MAIN.TargetStation = iStation THEN
|
|
CASE CMD[RobotStation] OF
|
|
GetCMD:
|
|
IF ROBOT_MAIN.RobotControl.bInPartOnSucker[ROBOT_MAIN.TargetPuddle] THEN
|
|
ChuckVacuum.Down(TRUE);
|
|
END_IF
|
|
PutCMD:
|
|
IF NOT ROBOT_MAIN.RobotControl.bInPartOnSucker[ROBOT_MAIN.TargetPuddle] THEN
|
|
ChuckVacuum.Up(TRUE);
|
|
END_IF
|
|
ChangeCMD:
|
|
IF SpinnerVacOff THEN
|
|
ChuckVacuum.Down(TRUE);
|
|
END_IF
|
|
|
|
IF SpinnerVacOn THEN
|
|
ChuckVacuum.Up(TRUE);
|
|
END_IF
|
|
END_CASE
|
|
END_IF]]></ST>
|
|
</Implementation>
|
|
<Method Name="Initialization" Id="{a871eb65-cceb-4b85-87c8-1d7073b58215}">
|
|
<Declaration><![CDATA[METHOD Initialization
|
|
VAR_INPUT
|
|
iStation : INT;
|
|
END_VAR]]></Declaration>
|
|
<Implementation>
|
|
<ST><![CDATA[InitializationExt(iStation);
|
|
|
|
ChuckVacuum.Initialization(
|
|
iStation,
|
|
eAlignerMedienNamen.ChuckVacuumOn,
|
|
eAlignerMedienNamen.ChuckVacuumOff,
|
|
SPINNER_ErrorNr.eChuckVacuumOn,
|
|
Peripherie_GVL.ServiceNameChuckVacuumOn,
|
|
Peripherie_GVL.ServiceNameChuckVacuumOff
|
|
);]]></ST>
|
|
</Implementation>
|
|
</Method>
|
|
</POU>
|
|
</TcPlcObject> |