diff --git a/Infineon.tmc b/Infineon.tmc index 37a7055..7ed4deb 100644 --- a/Infineon.tmc +++ b/Infineon.tmc @@ -2,7 +2,7 @@ - KukaRobot + KukaRobot NotInExtMode @@ -134,6 +134,16 @@ Error + + WrongParamsReadBack + + Error + + + WrongJobReadBack + + Error + @@ -161,6 +171,8 @@ + + diff --git a/PLC/01_Stationen/Kuka_Robot/FB_KukaRobot.TcPOU b/PLC/01_Stationen/Kuka_Robot/FB_KukaRobot.TcPOU index fffe142..38cace1 100644 --- a/PLC/01_Stationen/Kuka_Robot/FB_KukaRobot.TcPOU +++ b/PLC/01_Stationen/Kuka_Robot/FB_KukaRobot.TcPOU @@ -88,6 +88,11 @@ VAR _fbAlarmOperatorSafetyNotOk : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.OperatorSafetyNotOk, xWithConfirmation := FALSE); _fbAlarmRobotErrorResetTimeout : FB_AlarmMessage(stEventEntry := TC_EVENTS.KukaRobot.ErrorResetTimeout, 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 ]]> @@ -126,6 +131,16 @@ _fbAlarmRobotErrorResetTimeout( xRelease:= xReleaseAlarms, 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 @@ -214,6 +229,16 @@ stJobs.wJobNrForRobot := E_KukaRobot_JobNumberRobot.NO_JOB; stJobs.wFinishedJobNrFromPlc := E_KukaRobot_JobNumerPLC.NO_JOB;]]> + + + + + + @@ -427,9 +455,11 @@ END_VAR]]> 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.byGripperSide < 1) OR (_stJobParams.byGripperSide > 6) // Wrong gripper side + OR (_byGripperSideNrCalc < 1) OR (_byGripperSideNrCalc > 6) // Wrong gripper side THEN _eCmd := E_PackMLCmd.ABORT; ELSE @@ -474,9 +504,6 @@ END_VAR]]> // Chuck for etcher to load abyToolsAndPositions[1] := stJobParams.byChuckNumber; - // Write robot job number - stJobs.wJobNrForRobot := DINT_TO_WORD(_stJobParams.eJob); - // Safety reset timout fb _tonTimeout(IN := FALSE); @@ -484,17 +511,29 @@ END_VAR]]> // Check mirrored values 15: + _tonTimeout(IN := TRUE, PT := T#5S); + IF abyMirrorToolsAndPositions[0] = stJobParams.byGripperNumber AND abyMirrorToolsAndPositions[1] = stJobParams.byChuckNumber AND abyMirrorToolsAndPositions[2] = stJobParams.byPlaceOnHotplate AND abyMirrorToolsAndPositions[3] = stJobParams.byPlaceOnCoolPlate THEN + _tonTimeout(IN := FALSE); _iSSM := 20; END_IF + IF _tonTimeout.Q THEN + _tonTimeout(IN := FALSE); + _fbAlarmWrongParamMirrored.M_OneShot(); + _eCmd := E_PackMLCmd.STOP; + END_IF + // Wait for robot program start 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 awJobStatesFromRobot[0] = stJobs.wJobNrForRobot THEN @@ -506,6 +545,7 @@ END_VAR]]> // Timeout occured IF _tonTimeout.Q THEN _tonTimeout(IN := FALSE); + _fbAlarmWrongJobMirrored.M_OneShot(); _eCmd := E_PackMLCmd.ABORT; END_IF diff --git a/PLC/01_Stationen/Kuka_Robot/ST_KukaRobot_JobParams.TcDUT b/PLC/01_Stationen/Kuka_Robot/ST_KukaRobot_JobParams.TcDUT index 39d6eb3..810ac15 100644 --- a/PLC/01_Stationen/Kuka_Robot/ST_KukaRobot_JobParams.TcDUT +++ b/PLC/01_Stationen/Kuka_Robot/ST_KukaRobot_JobParams.TcDUT @@ -16,7 +16,7 @@ STRUCT rThickness : REAL := 2.7; // Gripper side (1 or 2) - byGripperSide : BYTE := 3; + byGripperSide : BYTE := 1; // Scan QR Code during pickup from loading station xScanQRCode : BOOL; diff --git a/PLC/PLC.plcproj b/PLC/PLC.plcproj index 947b3ce..67fbc97 100644 --- a/PLC/PLC.plcproj +++ b/PLC/PLC.plcproj @@ -311,6 +311,11 @@ Content + + + BaseComponents, * (Heisig GmbH) + +