77 lines
1.9 KiB
XML
77 lines
1.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<TcPlcObject Version="1.1.0.1">
|
|
<POU Name="FB_Aligner" Id="{5be6cab7-2294-48e5-869c-33773329143e}" SpecialFunc="None">
|
|
<Declaration><![CDATA[FUNCTION_BLOCK FB_Aligner EXTENDS FB_PackMLGeneric
|
|
VAR_INPUT
|
|
xEnableVacuum : BOOL;
|
|
xExecute : BOOL;
|
|
|
|
xConfirmAlarms : BOOL;
|
|
END_VAR
|
|
VAR_OUTPUT
|
|
xVacuumEnabled : BOOL;
|
|
END_VAR
|
|
VAR
|
|
xActivateVacuum AT %Q* : BOOL := FALSE;
|
|
xDeactivateVacuum AT %Q* : BOOL := TRUE;
|
|
xVacuumOk AT %I* : BOOL;
|
|
|
|
diXOffset AT %I* : DINT;
|
|
diYOffset AT %I* : DINT;
|
|
|
|
_fbXAxis : FB_AxisPTP;
|
|
_fbYAxis : FB_AxisPTP;
|
|
|
|
_rXPosToGo : REAL;
|
|
_rYPosToGo : REAL;
|
|
|
|
_rtExecute : R_TRIG;
|
|
_xStartAlign : BOOL;
|
|
END_VAR
|
|
]]></Declaration>
|
|
<Implementation>
|
|
<ST><![CDATA[_fbXAxis(
|
|
xEnable:= TRUE,
|
|
xInvertCalibrationCam:= FALSE,
|
|
xEnablePositive:= TRUE,
|
|
xEnableNegative:= TRUE,
|
|
rOverride:= 100.0,
|
|
lrVelocity:= 2.5,
|
|
lrAcceleration:= 0,
|
|
lrDecelleration:= 0,
|
|
lrJerk:= 0,
|
|
xConfirmAlarms:= xConfirmAlarms);
|
|
|
|
_fbYAxis(
|
|
xEnable:= TRUE,
|
|
xInvertCalibrationCam:= FALSE,
|
|
xEnablePositive:= TRUE,
|
|
xEnableNegative:= TRUE,
|
|
rOverride:= 100.0,
|
|
lrVelocity:= 2.5,
|
|
lrAcceleration:= 0,
|
|
lrDecelleration:= 0,
|
|
lrJerk:= 0,
|
|
xConfirmAlarms:= xConfirmAlarms);
|
|
|
|
_rtExecute(CLK:= xExecute, Q=> _xStartAlign);
|
|
|
|
// Drei mal ausführen damit die Position genau ist
|
|
IF _xStartAlign THEN
|
|
|
|
_rXPosToGo := DINT_TO_REAL(diXOffset) * -0.001;
|
|
_rYPosToGo := ((DINT_TO_REAL(diYOffset) * 0.001) - 37.5) * -1;
|
|
|
|
IF (ABS(_rXPosToGo) < 10.0) AND (ABS(_rYPosToGo) < 10.0) AND (NOT _fbXAxis.xError) AND (NOT _fbYAxis.xError) THEN
|
|
_fbXAxis.M_MoveRel(lrRelDist := _rXPosToGo);
|
|
_fbYAxis.M_MoveRel(lrRelDist := _rYPosToGo);
|
|
END_IF
|
|
END_IF
|
|
|
|
// Handle enable disable vacuum command
|
|
xActivateVacuum := xEnableVacuum;
|
|
xDeactivateVacuum := (NOT xEnableVacuum);
|
|
xVacuumEnabled := xVacuumOk;]]></ST>
|
|
</Implementation>
|
|
</POU>
|
|
</TcPlcObject> |