Bugfixes in TrayFeeder and Aligner
Aligner ======= - Fixed Aligner during resetting with library update to 1.3.4 - Added Vacuum valve to HMI Etcher ====== - Added Vacuum valve to HMI TrayFeeder ========== - Fixed a bug in protocoll parsing - Added automatic reconnect tries to protocoll handler - Added buttons to hmi interface for tray feeding and unloading
This commit is contained in:
@@ -5,7 +5,8 @@
|
||||
VAR_INPUT
|
||||
xEnableVacuum : BOOL;
|
||||
xExecute : BOOL;
|
||||
|
||||
xReleaseManualMode : BOOL;
|
||||
xReleaseAlarms : BOOL;
|
||||
xConfirmAlarms : BOOL;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
@@ -15,8 +16,9 @@ VAR_IN_OUT
|
||||
stHMIInterface : ST_HMI_Aligner;
|
||||
END_VAR
|
||||
VAR
|
||||
xActivateVacuum AT %Q* : BOOL := FALSE;
|
||||
xDeactivateVacuum AT %Q* : BOOL := TRUE;
|
||||
_fbValveVacuum : FB_Valve('Vacuum');
|
||||
_stValveVacuumConfig : ST_ValveConfig;
|
||||
|
||||
xVacuumOk AT %I* : BOOL;
|
||||
|
||||
diXOffset AT %I* : DINT;
|
||||
@@ -52,6 +54,14 @@ _fbYAxis(
|
||||
lrJerk:= 0,
|
||||
xConfirmAlarms:= xConfirmAlarms);
|
||||
|
||||
_fbValveVacuum(
|
||||
xAutomaticOpen:= xEnableVacuum,
|
||||
xReleaseErrors:= xReleaseAlarms,
|
||||
stValveConfig:= _stValveVacuumConfig,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= stHMIInterface.stVacuumValve);
|
||||
|
||||
|
||||
// =============================
|
||||
// Call isa88 base state machine
|
||||
@@ -61,8 +71,6 @@ SUPER^(stPackMLHMIInterface := stHMIInterface.stStationCmds);
|
||||
_rtExecute(CLK:= xExecute, Q=> _xStartAlign);
|
||||
|
||||
// Handle enable disable vacuum command
|
||||
xActivateVacuum := xEnableVacuum;
|
||||
xDeactivateVacuum := (NOT xEnableVacuum);
|
||||
xVacuumEnabled := xVacuumOk;]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="FB_init" Id="{5048e086-25a4-4fbb-bf29-7a016bcf2277}">
|
||||
@@ -81,7 +89,11 @@ END_VAR
|
||||
_stSMConfig.xStartingDisabled := TRUE;
|
||||
_stSMConfig.xHeldDisabled := TRUE;
|
||||
_stSMConfig.xSuspededDisabled := TRUE;
|
||||
_stSMConfig.xCompletedDisabled := FALSE;]]></ST>
|
||||
_stSMConfig.xCompletedDisabled := FALSE;
|
||||
|
||||
// Valve config
|
||||
_stValveVacuumConfig.xHasOpenFeedback := FALSE;
|
||||
_stValveVacuumConfig.xHasClosedFeedback := FALSE;]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
<Method Name="M_Clearing" Id="{0b5b5108-3886-40a3-876f-a3460b5d5089}">
|
||||
@@ -146,7 +158,9 @@ END_CASE]]></ST>
|
||||
</Method>
|
||||
<Method Name="M_Resetting" Id="{015c2bf3-1e45-46dd-93fe-a1f154bfd906}">
|
||||
<Declaration><![CDATA[METHOD PROTECTED M_Resetting
|
||||
]]></Declaration>
|
||||
VAR
|
||||
_xFailed : BOOL;
|
||||
END_VAR]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[CASE _iSSM OF
|
||||
0:
|
||||
@@ -156,29 +170,48 @@ END_CASE]]></ST>
|
||||
|
||||
IF _fbXAxis.xEnabled AND _fbYAxis.xEnabled THEN
|
||||
IF (NOT _fbXAxis.xHomed) THEN
|
||||
_fbXAxis.M_Homing(lrHomingPosition := BC.Tc2_MC2.DEFAULT_HOME_POSITION);
|
||||
IF (NOT _fbXAxis.M_Homing(lrHomingPosition := BC.Tc2_MC2.DEFAULT_HOME_POSITION)) THEN
|
||||
_xFailed := TRUE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
IF (NOT _fbYAxis.xHomed) THEN
|
||||
_fbYAxis.M_Homing(lrHomingPosition := BC.Tc2_MC2.DEFAULT_HOME_POSITION);
|
||||
IF (NOT _fbYAxis.M_Homing(lrHomingPosition := BC.Tc2_MC2.DEFAULT_HOME_POSITION)) THEN
|
||||
_xFailed := TRUE;
|
||||
END_IF
|
||||
END_IF
|
||||
|
||||
_iSSM := 10;
|
||||
IF (NOT _xFailed) THEN
|
||||
_iSSM := 10;
|
||||
ELSE
|
||||
M_CmdAbort();
|
||||
END_IF
|
||||
|
||||
END_IF
|
||||
|
||||
10:
|
||||
// Home axes
|
||||
IF (NOT _fbXAxis.xBusy) AND (NOT _fbYAxis.xBusy) THEN
|
||||
_fbXAxis.M_MoveAbs(0.0);
|
||||
_fbYAxis.M_MoveAbs(0.0);
|
||||
IF _fbXAxis.xDone AND _fbYAxis.xDone THEN
|
||||
IF (NOT _fbXAxis.M_MoveAbs(0.0)) OR (NOT _fbYAxis.M_MoveAbs(0.0)) THEN
|
||||
M_CmdAbort();
|
||||
END_IF
|
||||
|
||||
_iSSM := 20;
|
||||
END_IF
|
||||
|
||||
IF _fbXAxis.xError OR _fbYAxis.xError THEN
|
||||
M_CmdAbort();
|
||||
END_IF
|
||||
|
||||
20:
|
||||
// Move to 0 position
|
||||
IF (NOT _fbXAxis.xBusy) AND (NOT _fbYAxis.xBusy) THEN
|
||||
IF _fbXAxis.xDone AND _fbYAxis.xDone THEN
|
||||
M_StateComplete();
|
||||
END_IF
|
||||
|
||||
IF _fbXAxis.xError OR _fbYAxis.xError THEN
|
||||
M_CmdAbort();
|
||||
END_IF
|
||||
END_CASE]]></ST>
|
||||
</Implementation>
|
||||
</Method>
|
||||
|
||||
Reference in New Issue
Block a user