Merge branch 'develop' of https://gitea.heisig-gmbh.de/Heisig_GmbH/infineon_plc into develop
# Conflicts: # PLC/01_Stationen/Kuka_Robot/ST_KukaRobot_JobParams.TcDUT
This commit is contained in:
14
Infineon.tmc
14
Infineon.tmc
@@ -2,7 +2,7 @@
|
|||||||
<TcModuleClass>
|
<TcModuleClass>
|
||||||
<DataTypes>
|
<DataTypes>
|
||||||
<DataType>
|
<DataType>
|
||||||
<Name GUID="{41663E72-28F8-4E92-AC1A-8F6F55BA9D6D}">KukaRobot</Name>
|
<Name GUID="{ED26FE12-E1DA-401E-9C9B-E08D7B3D666D}">KukaRobot</Name>
|
||||||
<DisplayName TxtId=""><![CDATA[NewEventClass_DisplayText]]></DisplayName>
|
<DisplayName TxtId=""><![CDATA[NewEventClass_DisplayText]]></DisplayName>
|
||||||
<EventId>
|
<EventId>
|
||||||
<Name Id="1">NotInExtMode</Name>
|
<Name Id="1">NotInExtMode</Name>
|
||||||
@@ -134,6 +134,16 @@
|
|||||||
<DisplayName TxtId=""><![CDATA[Implausible gripper signals]]></DisplayName>
|
<DisplayName TxtId=""><![CDATA[Implausible gripper signals]]></DisplayName>
|
||||||
<Severity>Error</Severity>
|
<Severity>Error</Severity>
|
||||||
</EventId>
|
</EventId>
|
||||||
|
<EventId>
|
||||||
|
<Name Id="27">WrongParamsReadBack</Name>
|
||||||
|
<DisplayName TxtId=""><![CDATA[Robot did not correctly mirrored back job parameter]]></DisplayName>
|
||||||
|
<Severity>Error</Severity>
|
||||||
|
</EventId>
|
||||||
|
<EventId>
|
||||||
|
<Name Id="28">WrongJobReadBack</Name>
|
||||||
|
<DisplayName TxtId=""><![CDATA[Robot mirrored wrong job command]]></DisplayName>
|
||||||
|
<Severity>Error</Severity>
|
||||||
|
</EventId>
|
||||||
<Hides>
|
<Hides>
|
||||||
<Hide GUID="{456A0777-3241-483C-B513-164C5A2791FC}"/>
|
<Hide GUID="{456A0777-3241-483C-B513-164C5A2791FC}"/>
|
||||||
<Hide GUID="{8667E78C-B458-4844-A8FF-6F6F9FAB3AD8}"/>
|
<Hide GUID="{8667E78C-B458-4844-A8FF-6F6F9FAB3AD8}"/>
|
||||||
@@ -161,6 +171,8 @@
|
|||||||
<Hide GUID="{29E3A83B-DAF1-4873-919F-E7C8F007ACAD}"/>
|
<Hide GUID="{29E3A83B-DAF1-4873-919F-E7C8F007ACAD}"/>
|
||||||
<Hide GUID="{FA039875-23CD-4325-8CA9-B14FADA92FFA}"/>
|
<Hide GUID="{FA039875-23CD-4325-8CA9-B14FADA92FFA}"/>
|
||||||
<Hide GUID="{96196A41-758B-4248-8C31-DA1C8BC623CC}"/>
|
<Hide GUID="{96196A41-758B-4248-8C31-DA1C8BC623CC}"/>
|
||||||
|
<Hide GUID="{41663E72-28F8-4E92-AC1A-8F6F55BA9D6D}"/>
|
||||||
|
<Hide GUID="{8C191398-5220-493F-BC5D-8F1AA729AA0D}"/>
|
||||||
</Hides>
|
</Hides>
|
||||||
</DataType>
|
</DataType>
|
||||||
<DataType>
|
<DataType>
|
||||||
|
|||||||
@@ -91,6 +91,11 @@ VAR
|
|||||||
_fbAlarmOperatorSafetyNotOk : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.OperatorSafetyNotOk, xWithConfirmation := FALSE);
|
_fbAlarmOperatorSafetyNotOk : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.OperatorSafetyNotOk, xWithConfirmation := FALSE);
|
||||||
_fbAlarmRobotErrorResetTimeout : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.ErrorResetTimeout, xWithConfirmation := TRUE);
|
_fbAlarmRobotErrorResetTimeout : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.ErrorResetTimeout, xWithConfirmation := TRUE);
|
||||||
_fbAlarmDrivesEnableTimeout : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.DrivesEnableTimeout, xWithConfirmation := TRUE);
|
_fbAlarmDrivesEnableTimeout : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.DrivesEnableTimeout, xWithConfirmation := TRUE);
|
||||||
|
_fbAlarmWrongJobMirrored : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.WrongJobReadBack, xWithConfirmation := TRUE);
|
||||||
|
_fbAlarmWrongParamMirrored : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.WrongParamsReadBack, xWithConfirmation := TRUE);
|
||||||
|
END_VAR
|
||||||
|
VAR RETAIN
|
||||||
|
byCurrentGripper : BYTE := 2;
|
||||||
END_VAR
|
END_VAR
|
||||||
]]></Declaration>
|
]]></Declaration>
|
||||||
<Implementation>
|
<Implementation>
|
||||||
@@ -129,6 +134,16 @@ _fbAlarmRobotErrorResetTimeout(
|
|||||||
xRelease:= xReleaseAlarms,
|
xRelease:= xReleaseAlarms,
|
||||||
xAcknowledge:= xConfirmAlarms);
|
xAcknowledge:= xConfirmAlarms);
|
||||||
|
|
||||||
|
// Handled by M_Starting
|
||||||
|
_fbAlarmWrongParamMirrored(
|
||||||
|
xRelease:= xReleaseAlarms,
|
||||||
|
xAcknowledge:= xConfirmAlarms);
|
||||||
|
|
||||||
|
// Handled by M_Starting
|
||||||
|
_fbAlarmWrongJobMirrored(
|
||||||
|
xRelease:= xReleaseAlarms,
|
||||||
|
xAcknowledge:= xConfirmAlarms);
|
||||||
|
|
||||||
|
|
||||||
// =======================
|
// =======================
|
||||||
// Check if robot is ready
|
// Check if robot is ready
|
||||||
@@ -217,6 +232,16 @@ stJobs.wJobNrForRobot := E_KukaRobot_JobNumberRobot.NO_JOB;
|
|||||||
stJobs.wFinishedJobNrFromPlc := E_KukaRobot_JobNumerPLC.NO_JOB;]]></ST>
|
stJobs.wFinishedJobNrFromPlc := E_KukaRobot_JobNumerPLC.NO_JOB;]]></ST>
|
||||||
</Implementation>
|
</Implementation>
|
||||||
</Method>
|
</Method>
|
||||||
|
<Method Name="M_CalcGripperNr" Id="{282207f3-bc23-43ae-a217-8c6b456b1a5f}">
|
||||||
|
<Declaration><![CDATA[METHOD PRIVATE M_CalcGripperNr : BYTE
|
||||||
|
VAR_INPUT
|
||||||
|
byGripperSide : BYTE;
|
||||||
|
END_VAR
|
||||||
|
]]></Declaration>
|
||||||
|
<Implementation>
|
||||||
|
<ST><![CDATA[M_CalcGripperNr := (byCurrentGripper - 1) + byGripperSide;]]></ST>
|
||||||
|
</Implementation>
|
||||||
|
</Method>
|
||||||
<Method Name="M_Clearing" Id="{e6152288-8c7d-4b38-bfbc-4f861d76ccc5}" FolderPath="StateMachine\">
|
<Method Name="M_Clearing" Id="{e6152288-8c7d-4b38-bfbc-4f861d76ccc5}" FolderPath="StateMachine\">
|
||||||
<Declaration><![CDATA[METHOD PROTECTED M_Clearing
|
<Declaration><![CDATA[METHOD PROTECTED M_Clearing
|
||||||
VAR_INST
|
VAR_INST
|
||||||
@@ -376,7 +401,7 @@ CASE _iSSM OF
|
|||||||
// Timeout drives ready
|
// Timeout drives ready
|
||||||
IF _tonTimeout.Q THEN
|
IF _tonTimeout.Q THEN
|
||||||
stCtrl.bEnableAxes := 0;
|
stCtrl.bEnableAxes := 0;
|
||||||
_fbAlarmDrivesEnableTimeout.xRelease := TRUE;
|
_fbAlarmDrivesEnableTimeout.M_OneShot();
|
||||||
_tonTimeout(IN := FALSE);
|
_tonTimeout(IN := FALSE);
|
||||||
_eCmd := E_PackMLCmd.ABORT;
|
_eCmd := E_PackMLCmd.ABORT;
|
||||||
END_IF
|
END_IF
|
||||||
@@ -395,7 +420,7 @@ CASE _iSSM OF
|
|||||||
|
|
||||||
// Timeout reset errors
|
// Timeout reset errors
|
||||||
IF _tonTimeout.Q THEN
|
IF _tonTimeout.Q THEN
|
||||||
_fbAlarmRobotErrorResetTimeout.xRelease := TRUE;
|
_fbAlarmRobotErrorResetTimeout.M_OneShot();
|
||||||
_tonTimeout(IN := FALSE);
|
_tonTimeout(IN := FALSE);
|
||||||
_eCmd := E_PackMLCmd.ABORT;
|
_eCmd := E_PackMLCmd.ABORT;
|
||||||
END_IF
|
END_IF
|
||||||
@@ -423,6 +448,9 @@ END_CASE]]></ST>
|
|||||||
</Method>
|
</Method>
|
||||||
<Method Name="M_Starting" Id="{011f85d8-1225-4288-876f-918df6e4f235}" FolderPath="StateMachine\">
|
<Method Name="M_Starting" Id="{011f85d8-1225-4288-876f-918df6e4f235}" FolderPath="StateMachine\">
|
||||||
<Declaration><![CDATA[METHOD PROTECTED M_Starting
|
<Declaration><![CDATA[METHOD PROTECTED M_Starting
|
||||||
|
VAR
|
||||||
|
_byGripperSideNrCalc : BYTE;
|
||||||
|
END_VAR
|
||||||
VAR_INST
|
VAR_INST
|
||||||
_tonTimeout : TON;
|
_tonTimeout : TON;
|
||||||
END_VAR]]></Declaration>
|
END_VAR]]></Declaration>
|
||||||
@@ -430,9 +458,11 @@ END_VAR]]></Declaration>
|
|||||||
<ST><![CDATA[CASE _iSSM OF
|
<ST><![CDATA[CASE _iSSM OF
|
||||||
// Check job parameters
|
// Check job parameters
|
||||||
0:
|
0:
|
||||||
IF (_stJobParams.byGripperNumber > 4) // Wrong gripper number
|
_byGripperSideNrCalc := M_CalcGripperNr(_stJobParams.byGripperNumber);
|
||||||
|
|
||||||
|
IF (_stJobParams.byGripperNumber > 3) // Wrong gripper number
|
||||||
//OR (_stJobParams.byChuckNumber < 1) OR (_stJobParams.byChuckNumber > 6) // Wrong chuck number
|
//OR (_stJobParams.byChuckNumber < 1) OR (_stJobParams.byChuckNumber > 6) // Wrong chuck number
|
||||||
OR (_stJobParams.byGripperSide < 1) OR (_stJobParams.byGripperSide > 6) // Wrong gripper side
|
OR (_byGripperSideNrCalc < 1) OR (_byGripperSideNrCalc > 6) // Wrong gripper side
|
||||||
THEN
|
THEN
|
||||||
_eCmd := E_PackMLCmd.ABORT;
|
_eCmd := E_PackMLCmd.ABORT;
|
||||||
ELSE
|
ELSE
|
||||||
@@ -477,9 +507,6 @@ END_VAR]]></Declaration>
|
|||||||
// Chuck for etcher to load
|
// Chuck for etcher to load
|
||||||
abyToolsAndPositions[1] := stJobParams.byChuckNumber;
|
abyToolsAndPositions[1] := stJobParams.byChuckNumber;
|
||||||
|
|
||||||
// Write robot job number
|
|
||||||
stJobs.wJobNrForRobot := DINT_TO_WORD(_stJobParams.eJob);
|
|
||||||
|
|
||||||
// Safety reset timout fb
|
// Safety reset timout fb
|
||||||
_tonTimeout(IN := FALSE);
|
_tonTimeout(IN := FALSE);
|
||||||
|
|
||||||
@@ -487,17 +514,29 @@ END_VAR]]></Declaration>
|
|||||||
|
|
||||||
// Check mirrored values
|
// Check mirrored values
|
||||||
15:
|
15:
|
||||||
|
_tonTimeout(IN := TRUE, PT := T#5S);
|
||||||
|
|
||||||
IF abyMirrorToolsAndPositions[0] = stJobParams.byGripperNumber
|
IF abyMirrorToolsAndPositions[0] = stJobParams.byGripperNumber
|
||||||
AND abyMirrorToolsAndPositions[1] = stJobParams.byChuckNumber
|
AND abyMirrorToolsAndPositions[1] = stJobParams.byChuckNumber
|
||||||
AND abyMirrorToolsAndPositions[2] = stJobParams.byPlaceOnHotplate
|
AND abyMirrorToolsAndPositions[2] = stJobParams.byPlaceOnHotplate
|
||||||
AND abyMirrorToolsAndPositions[3] = stJobParams.byPlaceOnCoolPlate
|
AND abyMirrorToolsAndPositions[3] = stJobParams.byPlaceOnCoolPlate
|
||||||
THEN
|
THEN
|
||||||
|
_tonTimeout(IN := FALSE);
|
||||||
_iSSM := 20;
|
_iSSM := 20;
|
||||||
END_IF
|
END_IF
|
||||||
|
|
||||||
|
IF _tonTimeout.Q THEN
|
||||||
|
_tonTimeout(IN := FALSE);
|
||||||
|
_fbAlarmWrongParamMirrored.M_OneShot();
|
||||||
|
_eCmd := E_PackMLCmd.STOP;
|
||||||
|
END_IF
|
||||||
|
|
||||||
// Wait for robot program start
|
// Wait for robot program start
|
||||||
20:
|
20:
|
||||||
_tonTimeout(IN := TRUE, PT := T#15S);
|
// Write robot job number
|
||||||
|
stJobs.wJobNrForRobot := DINT_TO_WORD(_stJobParams.eJob);
|
||||||
|
|
||||||
|
_tonTimeout(IN := TRUE, PT := T#5S);
|
||||||
|
|
||||||
// If job number is read back correct, go to next state
|
// If job number is read back correct, go to next state
|
||||||
IF awJobStatesFromRobot[0] = stJobs.wJobNrForRobot THEN
|
IF awJobStatesFromRobot[0] = stJobs.wJobNrForRobot THEN
|
||||||
@@ -509,6 +548,7 @@ END_VAR]]></Declaration>
|
|||||||
// Timeout occured
|
// Timeout occured
|
||||||
IF _tonTimeout.Q THEN
|
IF _tonTimeout.Q THEN
|
||||||
_tonTimeout(IN := FALSE);
|
_tonTimeout(IN := FALSE);
|
||||||
|
_fbAlarmWrongJobMirrored.M_OneShot();
|
||||||
_eCmd := E_PackMLCmd.ABORT;
|
_eCmd := E_PackMLCmd.ABORT;
|
||||||
END_IF
|
END_IF
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ STRUCT
|
|||||||
// Substrate thickness in mm
|
// Substrate thickness in mm
|
||||||
rThickness : REAL := 2.7;
|
rThickness : REAL := 2.7;
|
||||||
|
|
||||||
// Gripper side (1 - 6)
|
// Gripper side (1 or 2)
|
||||||
byGripperSide : BYTE := 3;
|
byGripperSide : BYTE := 1;
|
||||||
|
|
||||||
// Scan QR Code during pickup from loading station
|
// Scan QR Code during pickup from loading station
|
||||||
xScanQRCode : BOOL;
|
xScanQRCode : BOOL;
|
||||||
|
|||||||
@@ -326,6 +326,11 @@
|
|||||||
<SubType>Content</SubType>
|
<SubType>Content</SubType>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PlaceholderResolution Include="BaseComponents">
|
||||||
|
<Resolution>BaseComponents, * (Heisig GmbH)</Resolution>
|
||||||
|
</PlaceholderResolution>
|
||||||
|
</ItemGroup>
|
||||||
<ProjectExtensions>
|
<ProjectExtensions>
|
||||||
<PlcProjectOptions>
|
<PlcProjectOptions>
|
||||||
<XmlArchive>
|
<XmlArchive>
|
||||||
|
|||||||
Reference in New Issue
Block a user