1.完善SunwayRobot Pick

This commit is contained in:
HCL 2023-12-07 10:26:38 +08:00
parent a758bb4479
commit 454827a3db
3 changed files with 23 additions and 8 deletions

View File

@ -1224,6 +1224,10 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.RobotBase
Transition(RobotStateEnum.ReadingData, RobotMsg.ReadDataComplete, null, RobotStateEnum.Idle);
Transition(RobotStateEnum.ReadingData, FSM_MSG.TIMER, fMonitorReadData, RobotStateEnum.Idle);
Transition(RobotStateEnum.Idle, RobotMsg.ExtendForPick, fStartExtendForPick, RobotStateEnum.ExtendingForPick);
Transition(RobotStateEnum.ExtendingForPick, RobotMsg.ExtendComplete, fExtendForPickComplete, RobotStateEnum.Idle);
Transition(RobotStateEnum.ExtendingForPick, RobotMsg.ActionDone, fExtendForPickComplete, RobotStateEnum.Idle);
Transition(RobotStateEnum.Idle, RobotMsg.PickWafer, fStartPickWafer, RobotStateEnum.Picking);
Transition(RobotStateEnum.Picking, RobotMsg.PickComplete, fPickComplete, RobotStateEnum.Idle);
Transition(RobotStateEnum.Picking, RobotMsg.ActionDone, fPickComplete, RobotStateEnum.Idle);
@ -1275,9 +1279,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.RobotBase
Transition(RobotStateEnum.UnGripping, FSM_MSG.TIMER, fMonitorUnGrip, RobotStateEnum.Idle);
Transition(RobotStateEnum.Idle, RobotMsg.ExtendForPick, fStartExtendForPick, RobotStateEnum.ExtendingForPick);
Transition(RobotStateEnum.ExtendingForPick, RobotMsg.ExtendComplete, fExtendForPickComplete, RobotStateEnum.Idle);
Transition(RobotStateEnum.ExtendingForPick, RobotMsg.ActionDone, fExtendForPickComplete, RobotStateEnum.Idle);
Transition(RobotStateEnum.Idle, RobotMsg.ExtendForPlace, fStartExtendForPlace, RobotStateEnum.ExtendingForPlace);

View File

@ -1118,9 +1118,19 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.Sunway
return false;
}
if (WaferManager.Instance.CheckHasWafer(sourceModule, sourceSlot))
if (RobotModuleName == ModuleName.WaferRobot)
{
WaferManager.Instance.WaferMoved(sourceModule, sourceSlot, RobotModuleName, 0);
if (WaferManager.Instance.CheckHasWafer(sourceModule, sourceSlot))
{
WaferManager.Instance.WaferMoved(sourceModule, sourceSlot, RobotModuleName, 0);
}
}
else
{
if (WaferManager.Instance.CheckHasTray(sourceModule, sourceSlot))
{
WaferManager.Instance.TrayMoved(sourceModule, sourceSlot, RobotModuleName, 0);
}
}
//lock (_locker)

View File

@ -397,6 +397,9 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.Sunway
{
if (!isRetract)
{
//将Robot的状态从ExtendingForPick转到Idle
Device.NoteActionCompleted();
//伸出
Device.MoveInfo = new RobotMoveInfo()
{
@ -404,13 +407,13 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.Sunway
ArmTarget = _blade == RobotArmEnum.Blade1 ? RobotArm.ArmA : RobotArm.ArmB,
BladeTarget = cModule,
};
Device.NoteActionCompleted();
}
else
{
//缩回
//将Robot的状态从Picking转到Idle
Device.NoteActionCompleted();
//缩回
Device.MoveInfo = new RobotMoveInfo()
{
Action = RobotAction.Moving,