修改TrayRobot和WaferRobot状态名称,使其更简短。

修改AutoTransfer中如果Buffer中有两个以上ProcessCount为0的Tray时,第一个Tray进入Load后,无法进行后续动作的问题。
This commit is contained in:
DESKTOP-GPE37UV\THINKAPD 2022-11-24 13:34:37 +08:00
parent 205591db51
commit 98cab1dd78
4 changed files with 31 additions and 25 deletions

View File

@ -192,7 +192,7 @@
<Style x:Key="TextBox_Top" TargetType="{x:Type TextBox}"> <Style x:Key="TextBox_Top" TargetType="{x:Type TextBox}">
<Setter Property="SnapsToDevicePixels" Value="True" /> <Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="FontFamily" Value="Arial" /> <Setter Property="FontFamily" Value="Arial" />
<Setter Property="FontSize" Value="12" /> <Setter Property="FontSize" Value="11" />
<Setter Property="Margin" Value="0,2,2,2" /> <Setter Property="Margin" Value="0,2,2,2" />
<Setter Property="BorderThickness" Value="0,1,1,1" /> <Setter Property="BorderThickness" Value="0,1,1,1" />
<Setter Property="Background" Value="{DynamicResource TextBox_Top_BG}" /> <Setter Property="Background" Value="{DynamicResource TextBox_Top_BG}" />
@ -201,6 +201,7 @@
<Setter Property="Border.CornerRadius" Value="0,6,6,0" /> <Setter Property="Border.CornerRadius" Value="0,6,6,0" />
<Setter Property="HorizontalAlignment" Value="Stretch" /> <Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" /> <Setter Property="VerticalAlignment" Value="Stretch" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" /> <Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" /> <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" /> <Setter Property="Stylus.IsFlicksEnabled" Value="False" />

View File

@ -24,9 +24,9 @@ namespace Mainframe.EFEMs
Error, Error,
RobotHoming, RobotHoming,
TrayRobotPick, Picking,
TrayRobotPlace, Placing,
TrayRobotMap, Mapping,
} }
public enum MSG public enum MSG
@ -171,18 +171,18 @@ namespace Mainframe.EFEMs
Transition(STATE.RobotHoming, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle); Transition(STATE.RobotHoming, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle);
Transition(STATE.RobotHoming, MSG.Abort, FsmAbortTask, STATE.Idle); Transition(STATE.RobotHoming, MSG.Abort, FsmAbortTask, STATE.Idle);
Transition(STATE.Idle, MSG.TrayRobotMap, FsmStartTrayRobotMap, STATE.TrayRobotMap); Transition(STATE.Idle, MSG.TrayRobotMap, FsmStartTrayRobotMap, STATE.Mapping);
Transition(STATE.TrayRobotMap, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle); Transition(STATE.Mapping, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle);
Transition(STATE.TrayRobotMap, MSG.Abort, FsmAbortTask, STATE.Idle); Transition(STATE.Mapping, MSG.Abort, FsmAbortTask, STATE.Idle);
Transition(STATE.Idle, MSG.TrayRobotPick, FsmStartTrayRobotPick, STATE.TrayRobotPick); Transition(STATE.Idle, MSG.TrayRobotPick, FsmStartTrayRobotPick, STATE.Picking);
Transition(STATE.TrayRobotPick, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle); Transition(STATE.Picking, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle);
Transition(STATE.TrayRobotPick, MSG.Abort, FsmAbortTask, STATE.Idle); Transition(STATE.Picking, MSG.Abort, FsmAbortTask, STATE.Idle);
Transition(STATE.Idle, MSG.TrayRobotPlace, FsmStartTrayRobotPlace, STATE.TrayRobotPlace); Transition(STATE.Idle, MSG.TrayRobotPlace, FsmStartTrayRobotPlace, STATE.Placing);
Transition(STATE.TrayRobotPlace, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle); Transition(STATE.Placing, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle);
Transition(STATE.TrayRobotPlace, MSG.Abort, FsmAbortTask, STATE.Idle); Transition(STATE.Placing, MSG.Abort, FsmAbortTask, STATE.Idle);

View File

@ -22,9 +22,9 @@ namespace Mainframe.EFEMs
Homing, Homing,
Error, Error,
WaferRobotPick, Picking,
WaferRobotPlace, Placing,
WaferRobotMap, Mapping,
RobotHoming, RobotHoming,
} }
@ -164,17 +164,17 @@ namespace Mainframe.EFEMs
Transition(STATE.Idle, MSG.SetOffline, FsmStartSetOffline, STATE.Idle); Transition(STATE.Idle, MSG.SetOffline, FsmStartSetOffline, STATE.Idle);
Transition(STATE.Idle, MSG.WaferRobotMap, FsmStartWaferRobotMap, STATE.WaferRobotMap); Transition(STATE.Idle, MSG.WaferRobotMap, FsmStartWaferRobotMap, STATE.Mapping);
Transition(STATE.WaferRobotMap, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle); Transition(STATE.Mapping, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle);
Transition(STATE.WaferRobotMap, MSG.Abort, FsmAbortTask, STATE.Idle); Transition(STATE.Mapping, MSG.Abort, FsmAbortTask, STATE.Idle);
Transition(STATE.Idle, MSG.WaferRobotPick, FsmStartWaferRobotPick, STATE.WaferRobotPick); Transition(STATE.Idle, MSG.WaferRobotPick, FsmStartWaferRobotPick, STATE.Picking);
Transition(STATE.WaferRobotPick, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle); Transition(STATE.Picking, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle);
Transition(STATE.WaferRobotPick, MSG.Abort, FsmAbortTask, STATE.Idle); Transition(STATE.Picking, MSG.Abort, FsmAbortTask, STATE.Idle);
Transition(STATE.Idle, MSG.WaferRobotPlace, FsmStartWaferRobotPlace, STATE.WaferRobotPlace); Transition(STATE.Idle, MSG.WaferRobotPlace, FsmStartWaferRobotPlace, STATE.Placing);
Transition(STATE.WaferRobotPlace, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle); Transition(STATE.Placing, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle);
Transition(STATE.WaferRobotPlace, MSG.Abort, FsmAbortTask, STATE.Idle); Transition(STATE.Placing, MSG.Abort, FsmAbortTask, STATE.Idle);
Transition(STATE.Idle, MSG.RobotHome, FsmStartRobotHome, STATE.RobotHoming); Transition(STATE.Idle, MSG.RobotHome, FsmStartRobotHome, STATE.RobotHoming);
Transition(STATE.RobotHoming, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle); Transition(STATE.RobotHoming, FSM_MSG.TIMER, FsmMonitorTask, STATE.Idle);

View File

@ -1697,6 +1697,11 @@ namespace SicRT.Modules
return; return;
} }
} }
else if (_load.HasTrayAndExceedProcessCount(0))
{
if (!_load.IsReadyForPick(ModuleName.TrayRobot, 0) && !_unload.IsInPumping)
_load.PrepareTransfer(ModuleName.TrayRobot, EnumTransferType.Pick, 0);
}
else if ((_tmRobot.NoWafer(0) && _tmRobot.HasTrayAndExceedProcessCount(0)) else if ((_tmRobot.NoWafer(0) && _tmRobot.HasTrayAndExceedProcessCount(0))
|| (_buffer.NoWafer(0) && _buffer.HasTrayAndExceedProcessCount(0)) || (_buffer.NoWafer(0) && _buffer.HasTrayAndExceedProcessCount(0))
|| (_buffer.NoWafer(1) && _buffer.HasTrayAndExceedProcessCount(1)) || (_buffer.NoWafer(1) && _buffer.HasTrayAndExceedProcessCount(1))