First bigger step to automation
- Aligned X and Y NC Axis with aligner camera coordination system - Added robot plc jobs and feedback - Began Meca500 robot interface - Changed hotplate control to slow PWM - PackML statemachine now starts in aborted state - Fixed StateML start method
This commit is contained in:
@@ -4,12 +4,17 @@
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Etcher EXTENDS FB_PackMLGeneric
|
||||
VAR_INPUT
|
||||
xOpenDoor : BOOL;
|
||||
xEnableVacuum : BOOL;
|
||||
xOpenChuckClamp : BOOL;
|
||||
xEjectChuck : BOOL;
|
||||
xReleaseManualMode : BOOL;
|
||||
xConfirmAlarms : BOOL;
|
||||
stHMIInterface : ST_Etcher_HMIInterface;
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
xDoorOpen : BOOL;
|
||||
xChuckClampOpen : BOOL;
|
||||
xVacuumEnabled : BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
_fbValveDoor : FB_Valve('Door');
|
||||
@@ -18,39 +23,39 @@ VAR
|
||||
xHasOpenFeedback := TRUE,
|
||||
timTimeoutOpen := T#5S,
|
||||
timTimeoutClose := T#5S);
|
||||
_stDoorHMIInterface : ST_HMI_VALVE_DATA;
|
||||
|
||||
_fbClampingLeft : FB_Valve('Clamping left');
|
||||
_stValveClampingLeftCfg : ST_ValveConfig := (
|
||||
|
||||
_fbUnlockLeft : FB_Valve('Clamping left');
|
||||
_stValveUnlockLeftCfg : ST_ValveConfig := (
|
||||
xHasClosedFeedback := TRUE,
|
||||
xHasOpenFeedback := TRUE,
|
||||
timTimeoutOpen := T#5S,
|
||||
timTimeoutClose := T#5S);
|
||||
_stClampingLeftHMIInterface : ST_HMI_VALVE_DATA;
|
||||
|
||||
_fbClampingRight : FB_Valve('Clamping right');
|
||||
_stValveClampingRightCfg : ST_ValveConfig := (
|
||||
|
||||
_fbUnlockRight : FB_Valve('Clamping right');
|
||||
_stValveUnlockRightCfg : ST_ValveConfig := (
|
||||
xHasClosedFeedback := TRUE,
|
||||
xHasOpenFeedback := TRUE,
|
||||
timTimeoutOpen := T#5S,
|
||||
timTimeoutClose := T#5S);
|
||||
_stClampingRightHMIInterface : ST_HMI_VALVE_DATA;
|
||||
|
||||
_fbClampingFront : FB_Valve('Clamping front');
|
||||
|
||||
_fbEjectFront : FB_Valve('Clamping front');
|
||||
_stValveClampingFrontCfg : ST_ValveConfig := (
|
||||
xHasClosedFeedback := TRUE,
|
||||
xHasOpenFeedback := TRUE,
|
||||
timTimeoutOpen := T#5S,
|
||||
timTimeoutClose := T#5S);
|
||||
_stClampingFrontHMIInterface : ST_HMI_VALVE_DATA;
|
||||
|
||||
_fbClampingBack : FB_Valve('Clamping back');
|
||||
_stValveClampingBackCfg : ST_ValveConfig := (
|
||||
|
||||
_fbEjectBack : FB_Valve('Clamping back');
|
||||
_stValveEjectBackCfg : ST_ValveConfig := (
|
||||
xHasClosedFeedback := TRUE,
|
||||
xHasOpenFeedback := TRUE,
|
||||
timTimeoutOpen := T#5S,
|
||||
timTimeoutClose := T#5S);
|
||||
_stClampingBackHMIInterface : ST_HMI_VALVE_DATA;
|
||||
|
||||
|
||||
_rtEjectChuckCmd : R_TRIG;
|
||||
_tpEjectChuck : TP;
|
||||
@@ -59,6 +64,8 @@ VAR
|
||||
// Sensors
|
||||
// =======
|
||||
|
||||
_xVacuumOk AT %I* : BOOL;
|
||||
|
||||
// Spinner vibration sensor
|
||||
_xVibrationSensor AT %I* : BOOL;
|
||||
|
||||
@@ -66,7 +73,7 @@ VAR
|
||||
// Actuators
|
||||
// =========
|
||||
|
||||
|
||||
_xDisableVacuum AT %Q* : BOOL;
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
@@ -77,7 +84,9 @@ _fbValveDoor(
|
||||
stValveConfig:= _stValveDoorCfg,
|
||||
xReleaseManualMode:= FALSE,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= _stDoorHMIInterface);
|
||||
stHMIInterface:= stHMIInterface.stDoorHMIInterface);
|
||||
|
||||
xDoorOpen := _fbValveDoor.IsOpen;
|
||||
|
||||
// Chuck
|
||||
_rtEjectChuckCmd(CLK := xEjectChuck);
|
||||
@@ -87,40 +96,45 @@ ELSE
|
||||
_tpEjectChuck(IN := FALSE);
|
||||
END_IF
|
||||
|
||||
_fbClampingLeft(
|
||||
_fbUnlockLeft(
|
||||
xAutomaticOpen:= xOpenChuckClamp,
|
||||
xReleaseErrors:= TRUE,
|
||||
stValveConfig:= _stValveClampingLeftCfg,
|
||||
xReleaseManualMode:= FALSE,
|
||||
stValveConfig:= _stValveUnlockLeftCfg,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= _stClampingLeftHMIInterface);
|
||||
stHMIInterface:= stHMIInterface.stUnlockLeftHMIInterface);
|
||||
|
||||
_fbClampingRight(
|
||||
_fbUnlockRight(
|
||||
xAutomaticOpen:= xOpenChuckClamp,
|
||||
xReleaseErrors:= TRUE,
|
||||
stValveConfig:= _stValveClampingRightCfg,
|
||||
xReleaseManualMode:= FALSE,
|
||||
stValveConfig:= _stValveUnlockRightCfg,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= _stClampingRightHMIInterface);
|
||||
stHMIInterface:= stHMIInterface.stUnlockRightHMIInterface);
|
||||
|
||||
_fbClampingFront(
|
||||
_fbEjectFront(
|
||||
xAutomaticOpen:= _tpEjectChuck.Q,
|
||||
xReleaseErrors:= TRUE,
|
||||
stValveConfig:= _stValveClampingFrontCfg,
|
||||
xReleaseManualMode:= FALSE,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= _stClampingFrontHMIInterface);
|
||||
stHMIInterface:= stHMIInterface.stEjectFrontHMIInterface);
|
||||
|
||||
_fbClampingBack(
|
||||
_fbEjectBack(
|
||||
xAutomaticOpen:= _tpEjectChuck.Q,
|
||||
xReleaseErrors:= TRUE,
|
||||
stValveConfig:= _stValveClampingBackCfg,
|
||||
xReleaseManualMode:= FALSE,
|
||||
stValveConfig:= _stValveEjectBackCfg,
|
||||
xReleaseManualMode:= xReleaseManualMode,
|
||||
xConfirmAlarms:= xConfirmAlarms,
|
||||
stHMIInterface:= _stClampingBackHMIInterface);
|
||||
stHMIInterface:= stHMIInterface.stEjectBackHMIInterface);
|
||||
|
||||
_xDisableVacuum := (NOT xEnableVacuum);
|
||||
|
||||
// Call base sm
|
||||
SUPER^();]]></ST>
|
||||
SUPER^();
|
||||
|
||||
// Copy internal signals to output
|
||||
xVacuumEnabled := _xVacuumOk;]]></ST>
|
||||
</Implementation>
|
||||
<Method Name="FB_Init" Id="{afcda70c-3e52-4a32-9ca9-670a6b854f24}">
|
||||
<Declaration><![CDATA[//FB_Init is always available implicitly and it is used primarily for initialization.
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_Etcher_HMIInterface" Id="{b42cab98-5a22-4703-a464-a4d1f5cdc177}">
|
||||
<Declaration><![CDATA[TYPE ST_Etcher_HMIInterface :
|
||||
STRUCT
|
||||
stDoorHMIInterface : ST_HMI_VALVE_DATA;
|
||||
stUnlockLeftHMIInterface : ST_HMI_VALVE_DATA;
|
||||
stUnlockRightHMIInterface : ST_HMI_VALVE_DATA;
|
||||
stEjectFrontHMIInterface : ST_HMI_VALVE_DATA;
|
||||
stEjectBackHMIInterface : ST_HMI_VALVE_DATA;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_Meca_JointSet" Id="{11c9caa0-793d-42a4-a6d6-9b5ea59d2923}">
|
||||
<Declaration><![CDATA[{attribute 'pack_mode' := '1'}
|
||||
TYPE ST_Meca_JointSet :
|
||||
STRUCT
|
||||
rSubIndex001 : REAL;
|
||||
rSubIndex002 : REAL;
|
||||
rSubIndex003 : REAL;
|
||||
rSubIndex004 : REAL;
|
||||
rSubIndex005 : REAL;
|
||||
rSubIndex006 : REAL;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_Meca_MotionStatus" Id="{5e335d40-97f1-424a-b3e3-1b2de304decf}">
|
||||
<Declaration><![CDATA[{attribute 'pack_mode' := '1'}
|
||||
TYPE ST_Meca_MotionStatus :
|
||||
STRUCT
|
||||
uiReachedCheckPointId : UINT;
|
||||
uiDiscardedCheckpointId : UINT;
|
||||
uiMoveID : UINT;
|
||||
uiFIFOSpace : UINT;
|
||||
bPaused : BIT;
|
||||
bEOB : BIT;
|
||||
bEOM : BIT;
|
||||
bFIFOCleared : BIT;
|
||||
PStop2 : BIT;
|
||||
bExcessiveTorque : BIT;
|
||||
uiOfflineProgramID : UINT;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<DUT Name="ST_Meca_RobotStatus" Id="{2543bfc1-49aa-4184-94d9-b32f02498fcc}">
|
||||
<Declaration><![CDATA[{attribute 'pack_mode' := '1'}
|
||||
TYPE ST_Meca_RobotStatus :
|
||||
STRUCT
|
||||
bBusy : BIT;
|
||||
bActivated : BIT;
|
||||
bHomed : BIT;
|
||||
bSimActivated : BIT;
|
||||
bBrakesEngaged : BIT;
|
||||
bRecoveryMode : BIT;
|
||||
bEStop : BIT;
|
||||
bCollisionStatus : BIT;
|
||||
bWorkZoneStatus : BIT;
|
||||
uiError : UINT;
|
||||
END_STRUCT
|
||||
END_TYPE
|
||||
]]></Declaration>
|
||||
</DUT>
|
||||
</TcPlcObject>
|
||||
16
PLC/01_Stationen/Etcher/Mecademics/FB_Mecademics.TcPOU
Normal file
16
PLC/01_Stationen/Etcher/Mecademics/FB_Mecademics.TcPOU
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TcPlcObject Version="1.1.0.1">
|
||||
<POU Name="FB_Mecademics" Id="{c81cf0ae-3f01-4427-918b-0d3e1c93ae01}" SpecialFunc="None">
|
||||
<Declaration><![CDATA[FUNCTION_BLOCK FB_Mecademics
|
||||
VAR_INPUT
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
]]></Declaration>
|
||||
<Implementation>
|
||||
<ST><![CDATA[]]></ST>
|
||||
</Implementation>
|
||||
</POU>
|
||||
</TcPlcObject>
|
||||
Reference in New Issue
Block a user