新增Load腔开盖操作,修改界面、配置和仿真

This commit is contained in:
hanqiangqiang 2026-05-29 11:03:40 +08:00
parent bfbc90c5a9
commit 42149f271c
7 changed files with 26 additions and 33 deletions

View File

@ -111,7 +111,6 @@
<IoSlitValve id="LoadLockDoor" module="TM" display="LLDoor" Type="" unit="" schematicId="LLDoor" scTimeout="System.SlitValveMotionTimeout" diOpen="DI_LoadDoorOpened" diClose="DI_LoadDoorClosed" doOpen="DO_LoadDoorOpen" doClose="DO_LoadDoorClose" />
<IoSlitValve id="PM1Door" module="TM" display="PM1Door" Type="" unit="" schematicId="PM1Door" scTimeout="System.SlitValveMotionTimeout" diOpen="DI_ReactorADoorOpened" diClose="DI_ReactorADoorClosed" doOpen="DO_RectorADoorOpen" doClose="DO_RectorADoorClose" />
<IoSlitValve id="PM2Door" module="TM" display="PM2Door" Type="" unit="" schematicId="PM2Door" scTimeout="System.SlitValveMotionTimeout" diOpen="DI_ReactorBDoorOpened" diClose="DI_ReactorBDoorClosed" doOpen="DO_RectorBDoorOpen" doClose="DO_RectorBDoorClose" />
<IoSlitValve id="UnLoadDoor" module="TM" display="UnLoadDoor" Type="" unit="" schematicId="UnLoadDoor" scTimeout="System.SlitValveMotionTimeout" diOpen="DI_UnloadStationDoorOpened" diClose="DI_UnloadStationDoorClosed" doOpen="DO_UnloadStationDoorOpen" doClose="DO_UnloadStationDoorClose" />
<IoSlitValve id="BufferDoor" module="TM" display="BufferDoor" Type="" unit="" schematicId="BufferDoor" scTimeout="System.SlitValveMotionTimeout" diOpen="DI_BufferStationDoorOpened" diClose="DI_BufferStationDoorClosed" doOpen="DO_BufferStationDoorOpen" doClose="DO_BufferStationDoorClose" />
<IoSlitValve id="UnLoadSubDoor" module="EFEM" display="UnLoadSubDoor" Type="" unit="" schematicId="UnLoadSubDoor" scTimeout="System.SlitValveMotionTimeout" diOpen="DI_UnloadSubStationDoorOpened" diClose="DI_UnloadSubStationDoorClosed" doOpen="DO_UnloadSubStationDoorOpen" doClose="DO_UnloadSubStationDoorClose" />
<IoSlitValve id="LoadLockLSideDoor" module="EFEM" display="LLLSideDoor" Type="" unit="" schematicId="LLLSideDoor" scTimeout="System.SlitValveMotionTimeout" diOpen="DI_LoadLSideDoorOpened" diClose="DI_LoadLSideDoorClosed" doOpen="DO_LoadLSideDoorOpen" doClose="DO_LoadLSideDoorClose" />
@ -129,7 +128,7 @@
<IoTempMeter module="Buffer" id="BufferTemp" display="" schematicId="" aioType="float" aiFeedback="AI_BufferTemp" />
</IoTempMeters>
<IoLift4s classType="Aitex.Core.RT.Device.Unit.IoLift4" assembly="MECF.Framework.RT.EquipmentLibrary">
<IoLift4 id="LoadLidLock" module="LoadLock" display="LoadLidLock" schematicId="LoadLidLock" unit="" aioType="" diUp="DI_LoadLidLocked" diDown="DI_LoadLidUnlocked" doUp="DO_LoadLidLock" doDown="DO_LoadLidUnlock" scTimeout="10" />
<IoLift4 id="LoadLidLock" module="LoadLock" display="LoadLidLock" schematicId="LoadLidLock" unit="" aioType="" diUp="DI_LoadLidOpen" diDown="DI_LoadLidClose" doUp="DO_LoadLidOpen" doDown="DO_LoadLidClose" scTimeout="10" />
<IoLift4 id="UnLoadLift" module="UnLoad" display="UnLoadLift" schematicId="UnLoadLift" unit="" aioType="" diUp="DI_UnloadStationLifterCYUp" diDown="DI_UnloadStationLifterCYDown" doUp="DO_UnloadStationLifterCYUp" doDown="DO_UnloadStationLifterCYDown" scTimeout="10" />
</IoLift4s>
<IoClaws classType="Aitex.Core.RT.Device.Unit.IoClaw" assembly="MECF.Framework.RT.EquipmentLibrary">

View File

@ -44,6 +44,8 @@
<DI_ITEM Index="55" Name="DI_WaferCassetRightConvexSensor" BufferOffset="55" Addr="55" Description="" Visible="false"/>
<DI_ITEM Index="56" Name="DI_TrayCassetInch6" BufferOffset="56" Addr="56" Description="" Visible="false"/>
<DI_ITEM Index="58" Name="DI_TrayCassetConvexSensor" BufferOffset="58" Addr="58" Description="" Visible="false"/>
<DI_ITEM Index="59" Name="DI_LoadLidOpen" BufferOffset="59" Addr="59" Description=""/>
<DI_ITEM Index="60" Name="DI_LoadLidClose" BufferOffset="60" Addr="60" Description=""/>
<DI_ITEM Index="62" Name="DI_LoadLidLockedR" BufferOffset="62" Addr="62" Description=""/>
<DI_ITEM Index="63" Name="DI_LoadLidUnlockedR" BufferOffset="63" Addr="63" Description=""/>
<DI_ITEM Index="64" Name="DI_LoadLidLocked" BufferOffset="64" Addr="64" Description=""/>
@ -170,8 +172,8 @@
<DO_ITEM Index="8" Name="DO_TMLoadBanlance" BufferOffset="8" Addr="8" Description="V85" />
<DO_ITEM Index="9" Name="DO_LoadDoorClose" BufferOffset="9" Addr="9" Description="" />
<DO_ITEM Index="10" Name="DO_LoadDoorOpen" BufferOffset="10" Addr="10" Description="" />
<DO_ITEM Index="11" Name="DO_UnloadStationDoorClose" BufferOffset="11" Addr="11" Description="" />
<DO_ITEM Index="12" Name="DO_UnloadStationDoorOpen" BufferOffset="12" Addr="12" Description="" />
<DO_ITEM Index="11" Name="DO_LoadLidOpen" BufferOffset="11" Addr="11" Description="" />
<DO_ITEM Index="12" Name="DO_LoadLidClose" BufferOffset="12" Addr="12" Description="" />
<DO_ITEM Index="13" Name="DO_RectorADoorClose" BufferOffset="13" Addr="13" Description="" />
<DO_ITEM Index="14" Name="DO_RectorADoorOpen" BufferOffset="14" Addr="14" Description="" />
<DO_ITEM Index="15" Name="DO_RectorBDoorClose" BufferOffset="15" Addr="15" Description="" />

View File

@ -138,7 +138,7 @@ namespace SicModules.TMs
{
_slitValves[ModuleName.PM1] = DEVICE.GetDevice<IoSlitValve>("TM.PM1Door");
_slitValves[ModuleName.PM2] = DEVICE.GetDevice<IoSlitValve>("TM.PM2Door");
_slitValves[ModuleName.UnLoad] = DEVICE.GetDevice<IoSlitValve>("TM.UnLoadDoor");
//_slitValves[ModuleName.UnLoad] = DEVICE.GetDevice<IoSlitValve>("TM.UnLoadDoor");
_slitValves[ModuleName.LoadLock] = DEVICE.GetDevice<IoSlitValve>("TM.LoadLockDoor");
_slitValves[ModuleName.Buffer] = DEVICE.GetDevice<IoSlitValve>("TM.BufferDoor");

View File

@ -44,6 +44,8 @@
<DI_ITEM Index="55" Name="DI_WaferCassetRightConvexSensor" BufferOffset="55" Addr="55" Description="" Visible="false"/>
<DI_ITEM Index="56" Name="DI_TrayCassetInch6" BufferOffset="56" Addr="56" Description="" Visible="false"/>
<DI_ITEM Index="58" Name="DI_TrayCassetConvexSensor" BufferOffset="58" Addr="58" Description="" Visible="false"/>
<DI_ITEM Index="59" Name="DI_LoadLidOpen" BufferOffset="59" Addr="59" Description=""/>
<DI_ITEM Index="60" Name="DI_LoadLidClose" BufferOffset="60" Addr="60" Description=""/>
<DI_ITEM Index="62" Name="DI_LoadLidLockedR" BufferOffset="62" Addr="62" Description=""/>
<DI_ITEM Index="63" Name="DI_LoadLidUnlockedR" BufferOffset="63" Addr="63" Description=""/>
<DI_ITEM Index="64" Name="DI_LoadLidLocked" BufferOffset="64" Addr="64" Description=""/>
@ -170,8 +172,8 @@
<DO_ITEM Index="8" Name="DO_TMLoadBanlance" BufferOffset="8" Addr="8" Description="V85" />
<DO_ITEM Index="9" Name="DO_LoadDoorClose" BufferOffset="9" Addr="9" Description="" />
<DO_ITEM Index="10" Name="DO_LoadDoorOpen" BufferOffset="10" Addr="10" Description="" />
<DO_ITEM Index="11" Name="DO_UnloadStationDoorClose" BufferOffset="11" Addr="11" Description="" />
<DO_ITEM Index="12" Name="DO_UnloadStationDoorOpen" BufferOffset="12" Addr="12" Description="" />
<DO_ITEM Index="11" Name="DO_LoadLidOpen" BufferOffset="11" Addr="11" Description="" />
<DO_ITEM Index="12" Name="DO_LoadLidClose" BufferOffset="12" Addr="12" Description="" />
<DO_ITEM Index="13" Name="DO_RectorADoorClose" BufferOffset="13" Addr="13" Description="" />
<DO_ITEM Index="14" Name="DO_RectorADoorOpen" BufferOffset="14" Addr="14" Description="" />
<DO_ITEM Index="15" Name="DO_RectorBDoorClose" BufferOffset="15" Addr="15" Description="" />

View File

@ -38,6 +38,8 @@ namespace SicSimulator.Instances
private void SetTMDefaultValue(string mod)
{
IO.DO["DO_LoadLidClose"].Value = true;
IO.DI["DI_LoadLidLocked"].Value = true;
IO.DI["DI_UnloadStationLifterCYDown"].Value = true;
IO.DI["DI_LoadWafeCYOpened"].Value = true;
@ -104,6 +106,7 @@ namespace SicSimulator.Instances
IO.DO["DO_LoadLidLock"].Value = true;
IO.DO["DO_LoadLidUnlock"].Value = true;
}
private void SetDefaultValue(string mod)
@ -788,12 +791,6 @@ namespace SicSimulator.Instances
IO.DI["DI_ReactorBDoorClosed"].Value = IO.DO["DO_RectorBDoorClose"].Value;
}
if (IO.DO["DO_UnloadStationDoorOpen"].Value != IO.DO["DO_UnloadStationDoorClose"].Value)
{
IO.DI["DI_UnloadStationDoorOpened"].Value = IO.DO["DO_UnloadStationDoorOpen"].Value;
IO.DI["DI_UnloadStationDoorClosed"].Value = IO.DO["DO_UnloadStationDoorClose"].Value;
}
if (IO.DO["DO_BufferStationDoorOpen"].Value != IO.DO["DO_BufferStationDoorClose"].Value)
{
IO.DI["DI_BufferStationDoorOpened"].Value = IO.DO["DO_BufferStationDoorOpen"].Value;
@ -828,6 +825,10 @@ namespace SicSimulator.Instances
private void MonitorTMValve()
{
//DI_LoadLidClose
IO.DI["DI_LoadLidClose"].Value = IO.DO["DO_LoadLidClose"].Value;
IO.DI["DI_LoadLidOpen"].Value = IO.DO["DO_LoadLidOpen"].Value;
IO.DI["DI_VacRobotExtendBufferEnableFB"].Value = IO.DO["DO_VacRobotExtendBufferEnable"].Value;
IO.DI["DI_VacRobotExtenLoadEnableFB"].Value = IO.DO["DO_VacRobotExtenLoadEnable"].Value;
IO.DI["DI_VacRobotExtendPMAEnableFB"].Value = IO.DO["DO_VacRobotExtendPMAEnable"].Value;

View File

@ -177,10 +177,10 @@
HasWafer="{Binding IsArmWater}"
IsEnabled="{Binding TMEnableWaferClick}"
RobotMoveInfo="{Binding TmRobotMoveInfo}"
Wafer1="{Binding TMRobotWafer1}"
RotateAngle="123"
ShowDock="False"
TranslateX="120" />
TranslateX="120"
Wafer1="{Binding TMRobotWafer1}" />
<Canvas Visibility="{Binding IsBufferInstalled, Converter={StaticResource BoolVisibilityConverter}}">
<TextBlock

View File

@ -136,18 +136,7 @@ namespace SicUI.Client.Models.Platform.TM
}
}
public FoupDoorState UnLoadDoorState
{
get
{
{
if (UnLoadDoorOpenFeedback && !UnLoadDoorCloseFeedback) return FoupDoorState.Open;
if (!UnLoadDoorOpenFeedback && UnLoadDoorCloseFeedback) return FoupDoorState.Close;
}
return FoupDoorState.Unknown;
}
}
@ -446,10 +435,10 @@ namespace SicUI.Client.Models.Platform.TM
[Subscription("TM.LLTrayPresence.DeviceData")]
public AITSensorData LLTrayPresence { get; set; }
[Subscription("LoadLock.LoadLidLock.UpSensor")]
[Subscription("LoadLock.LoadLidLock.DownSensor")]
public bool LoadLockSensor { get; set; }
[Subscription("LoadLock.LoadLidLock.DownSensor")]
[Subscription("LoadLock.LoadLidLock.UpSensor")]
public bool LoadUnLockSensor { get; set; }
@ -460,7 +449,7 @@ namespace SicUI.Client.Models.Platform.TM
//public bool IsBufferDoorOpen => BufferDoorState == FoupDoorState.Open ? true : false;
public bool IsBufferDoorOpen => true;
public bool IsUnLoadDoorOpen => UnLoadDoorState == FoupDoorState.Open ? true : false;
public bool IsUnLoadDoorOpen => true ;
public bool IsPM1DoorOpen => PM1DoorState == FoupDoorState.Open ? true : false;
public bool IsPM2DoorOpen => PM2DoorState == FoupDoorState.Open ? true : false;
@ -1116,12 +1105,12 @@ namespace SicUI.Client.Models.Platform.TM
public void LoadLidLock()
{
InvokeClient.Instance.Service.DoOperation($"LoadLock.LoadLidLock.MoveUp");
InvokeClient.Instance.Service.DoOperation($"LoadLock.LoadLidLock.MoveDown");
}
public void LoadLidUnlock()
{
InvokeClient.Instance.Service.DoOperation($"LoadLock.LoadLidLock.MoveDown");
InvokeClient.Instance.Service.DoOperation($"LoadLock.LoadLidLock.MoveUp");
}