Merge branch 'develop' of http://112.124.35.216:65000/Sic-Software/MoS2 into develop
# Conflicts: # App/SicSimulator/Instances/SimulatorSystem.cs
This commit is contained in:
commit
1fc2f27485
@ -457,7 +457,7 @@
|
||||
<IoSensor id="SensorScrubberIntlkSW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_ScrubberIntlkSW" infoText="" warningText="" alarmText="Alarm27 Scrubber System Error [DI-41]" />
|
||||
<IoSensor id="SensorFacilityIntlkSW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_FacilityIntlkSW" infoText="" warningText="" alarmText="Alarm28 Facility Error [DI-42]" />
|
||||
<IoSensor id="SensorPMH2SeDetector2SW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_PMH2SeDetector2SW" infoText="" warningText="" alarmText="Alarm29 PMH2Se Leak Detect2 [DI-43]" />
|
||||
<IoSensor id="SensorPMSO2Detector2SW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_PMSO2Detector2SW" infoText="" warningText="" alarmText="Alarm30 PMSO2 Leak Detect2 [DI-43]" />
|
||||
<IoSensor id="SensorPMSO2Detector2SW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_PMSO2Detector2SW" infoText="" warningText="" alarmText="Alarm30 PMSO2 Leak Detect2 [DI-44]" />
|
||||
<IoSensor id="SensorServoDriverFaultSW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_ServoDriverFaultSW" infoText="" warningText="" alarmText="Alarm31 Rotation Servo Driver Error [DI-45]" />
|
||||
<IoSensor id="SensorChamMiddleFlow2SW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_ChamMiddleFlow2SW" infoText="" warningText="" alarmText="Alarm32 Chamber Middle2 Cooling Water Flow Abnormal U4[DI-46]" />
|
||||
<IoSensor id="SensorSpare2FlowSW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_Spare2FlowSW" infoText="" warningText="Warning8 Spare2 Flow Low -U13 [DI-47]" alarmText="" />
|
||||
@ -466,7 +466,7 @@
|
||||
<IoSensor id="SensorConfinementRingDown" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="true" di="DI_ConfinementRingDown" infoText="Information8 Confinement Ring At Down position [DI-50]" warningText="" alarmText="" />
|
||||
<IoSensor id="SensorPMGasDetectorFault2SW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_PMGasDetectorFault2SW" infoText="" warningText="" alarmText="Alarm33 PMGasDetectorFault2 [DI-51]" />
|
||||
<IoSensor id="SensorPMSO2Detector1SW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_PMSO2Detector1SW" infoText="" warningText="" alarmText="Alarm34 PMSO2Leak Detect1 [DI-52]" />
|
||||
<IoSensor id="SensorGN2InletPressSW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="true" di="DI_GN2InletPressSW" infoText="" warningText="" alarmText="Alarm35 Gasbox N2 Pressure Low [DI-55]" />
|
||||
<IoSensor id="SensorGN2InletPressSW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_GN2InletPressSW" infoText="" warningText="" alarmText="Alarm35 Gasbox N2 Pressure Low [DI-55]" />
|
||||
<IoSensor id="SensorGBH2SDetectorSW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_GBH2SDetectorSW" infoText="" warningText="" alarmText="Alarm36 GBH2S Leak Detect1 [DI-56]" />
|
||||
<IoSensor id="SensorGBH2SeDetectorSW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_GBH2SeDetectorSW" infoText="" warningText="" alarmText="Alarm37 GBH2Se Leak Detect1 [DI-57]" />
|
||||
<IoSensor id="SensorGBSmokeDetectorSW" module="" display="" schematicId="" unit="" aioType="" textOutTrigValue="false" di="DI_GBSmokeDetectorSW" infoText="" warningText="" alarmText="Alarm38 GBSmokeDetector [DI-58]" />
|
||||
|
||||
@ -137,7 +137,6 @@
|
||||
</IoTempMeters>
|
||||
<IoLift4s classType="Aitex.Core.RT.Device.Unit.IoLift4" assembly="MECF.Framework.RT.EquipmentLibrary">
|
||||
<IoLift4 id="LLLift" module="LoadLock" display="LLLift" schematicId="LLLift" unit="" aioType="" diUp="DI_LoadLockWaferCYUPFB" diDown="DI_LoadLockWaferCYDownFB" doUp="DO_LoadLockWaferCYUP" doDown="DO_LoadLockWaferCYDown" scTimeout="10"/>
|
||||
<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" />
|
||||
</IoLift4s>
|
||||
<TMRobots assembly="SicModules" classType="SicModules.TMs.SicTMRobot">
|
||||
<TMRobot id="TMRobot" module="TMRobot" display="" schematicId="" unit="" />
|
||||
|
||||
@ -345,21 +345,22 @@ namespace SicModules.UnLoads
|
||||
});*/
|
||||
DATA.Subscribe($"{Name}.UnderVAC", () =>
|
||||
{
|
||||
if (_unLoadDevice.CheckVacuum())
|
||||
if(_unLoadDevice != null)
|
||||
{
|
||||
return true;
|
||||
return _unLoadDevice.CheckVacuum();
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
});
|
||||
DATA.Subscribe($"{Name}.LidState", () =>
|
||||
{
|
||||
if (_unLoadDevice.CheckLidClose())
|
||||
if(_unLoadDevice != null)
|
||||
{
|
||||
return "Closed";
|
||||
return _unLoadDevice.CheckLidClose() ? "Closed" : "Open";
|
||||
}
|
||||
return "Open";
|
||||
|
||||
return "Closed";
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ using System.Windows;
|
||||
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
|
||||
// 方法是按如下所示使用“*”: :
|
||||
|
||||
[assembly: AssemblyVersion("1.1.0.60818")]
|
||||
[assembly: AssemblyVersion("1.1.0.60819")]
|
||||
[assembly: AssemblyInformationalVersion("MoS2(无EFEM)")]
|
||||
|
||||
|
||||
|
||||
@ -299,38 +299,57 @@ namespace SicSimulator.Instances
|
||||
|
||||
IO.DO[$"{mod}.DO_ChamBottomFlowTemp"].Value = true;
|
||||
|
||||
IO.DO[$"{mod}.DO_Foreline1FlowTemp"].Value = true;
|
||||
IO.DO[$"{mod}.DO_PowerRod1FlowTemp"].Value = true;
|
||||
IO.DO[$"{mod}.DO_PowerRod2FlowTemp"].Value = true;
|
||||
IO.DO[$"{mod}.DO_ElectrodeWFlowTemp"].Value = true;
|
||||
IO.DO[$"{mod}.DO_Foreline2FlowTemp"].Value = true;
|
||||
|
||||
IO.DO[$"{mod}.DO_TransformerFlowTemp"].Value = true;
|
||||
|
||||
IO.DO[$"{mod}.DO_HeaterEnable"].Value = true;
|
||||
IO.DO[$"{mod}.DO_EPV2"].Value = true;
|
||||
|
||||
|
||||
IO.DO[$"{mod}.DO_Foreline1FlowTemp"].Value = true;
|
||||
IO.DO[$"{mod}.DO_Foreline2FlowTemp"].Value = true;
|
||||
|
||||
IO.DI[$"{mod}.DI_PMGasDetectorSW"].Value = true;
|
||||
IO.DI[$"{mod}.DI_GBGasDetectorSW"].Value = true;
|
||||
|
||||
IO.DI[$"{mod}.DI_PMH2SDetector1SW"].Value = true;
|
||||
IO.DI[$"{mod}.DI_PMH2SeDetector1SW"].Value = true;
|
||||
IO.DI[$"{mod}.DI_PMH2SeDetector2SW"].Value = true;
|
||||
IO.DI[$"{mod}.DI_PMSO2Detector2SW"].Value = true;
|
||||
IO.DI[$"{mod}.DI_PMGasDetectorFault2SW"].Value = true;
|
||||
IO.DI[$"{mod}.DI_PMSO2Detector1SW"].Value = true;
|
||||
IO.DI[$"{mod}.DI_PMH2SDetector2SW"].Value = true;
|
||||
|
||||
IO.DI[$"{mod}.DI_GN2InletPressSW"].Value = true;
|
||||
IO.DI[$"{mod}.DI_GBH2SDetectorSW"].Value = true;
|
||||
IO.DI[$"{mod}.DI_GBH2SeDetectorSW"].Value = true;
|
||||
IO.DI[$"{mod}.DI_PMSmokeDetectorSW"].Value = true;
|
||||
|
||||
}
|
||||
|
||||
private void SetWaterTemp(string mod)
|
||||
{
|
||||
#region Water Flow
|
||||
|
||||
IO.AI[$"{mod}.AI_ChamMiddleFlow2Temp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_SHFlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_ChamTopFlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_ChamMiddleFlow1Temp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_ChamBottomFlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_Foreline2FlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_PowerRod1FlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_PowerRod2FlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_Foreline1FlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_ElectrodeWFlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_TMPump1FlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_TransformerFlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_Spare1Temp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_Spare2Temp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_ChamMiddleFlow2Temp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_SHFlowTemp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_ChamTopFlowTemp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_ChamMiddleFlow1Temp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_ChamBottomFlowTemp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_Foreline2FlowTemp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_PowerRod1FlowTemp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_PowerRod2FlowTemp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_Foreline1FlowTemp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_ElectrodeWFlowTemp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_TMPump1FlowTemp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_TransformerFlowTemp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_Spare1Temp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
IO.AI[$"{mod}.AI_Spare2Temp"].Value = (float)(WaterTempBase + _rnd.NextDouble()); ;
|
||||
//IO.AI[$"{mod}.AI_SpareFlowTemp"].Value = (float)(WaterTempBase * _rnd.NextDouble()); ;
|
||||
|
||||
#endregion Water Flow
|
||||
|
||||
@ -243,16 +243,17 @@ namespace SicUI.Controls.M2C4Parts
|
||||
StartPosition= new RobotPosition()
|
||||
{
|
||||
Z=0,
|
||||
Root = 100,
|
||||
Root = 99,
|
||||
Arm = 240,
|
||||
Hand = -110
|
||||
Hand = 240
|
||||
},
|
||||
EndPosition= new RobotPosition()
|
||||
{
|
||||
Root =238,
|
||||
Arm = 0,
|
||||
Hand = 0
|
||||
Root = 239,
|
||||
Arm = 0,
|
||||
Hand = 360
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
{ "ArmA.PM2",new StationPosition() //ArmA.ReactorB
|
||||
@ -260,15 +261,15 @@ namespace SicUI.Controls.M2C4Parts
|
||||
StartPosition= new RobotPosition()
|
||||
{
|
||||
Z=0,
|
||||
Root = 60,
|
||||
Arm = 120,
|
||||
Hand = 130
|
||||
Root = 10,
|
||||
Arm = 194,
|
||||
Hand = 99
|
||||
},
|
||||
EndPosition= new RobotPosition()
|
||||
{
|
||||
Root = -54,
|
||||
Arm = 360,
|
||||
Hand = 0
|
||||
Root = -58,
|
||||
Arm = 360,
|
||||
Hand = 0
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -277,15 +278,15 @@ namespace SicUI.Controls.M2C4Parts
|
||||
StartPosition= new RobotPosition()
|
||||
{
|
||||
Z=0,
|
||||
Root = 5,
|
||||
Arm = 240,
|
||||
Hand = -110
|
||||
Root = 80,
|
||||
Arm = 190,
|
||||
Hand = 100
|
||||
},
|
||||
EndPosition= new RobotPosition()
|
||||
{
|
||||
Root = 137,
|
||||
Arm = 0,
|
||||
Hand = 0
|
||||
Root = 13,
|
||||
Arm = 360,
|
||||
Hand = 0
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -294,7 +295,7 @@ namespace SicUI.Controls.M2C4Parts
|
||||
StartPosition= new RobotPosition()
|
||||
{
|
||||
Z=0,
|
||||
Root =27,
|
||||
Root =27,
|
||||
Arm = 240,
|
||||
Hand = 240
|
||||
},
|
||||
@ -311,15 +312,15 @@ namespace SicUI.Controls.M2C4Parts
|
||||
StartPosition= new RobotPosition()
|
||||
{
|
||||
Z=0,
|
||||
Root = 170,
|
||||
Arm = 120,
|
||||
Hand = 120
|
||||
Root =-45,
|
||||
Arm = 240,
|
||||
Hand = 240
|
||||
},
|
||||
EndPosition= new RobotPosition()
|
||||
{
|
||||
Root = 47,
|
||||
Arm = 360,
|
||||
Hand = 0
|
||||
Root = 90,
|
||||
Arm = 0,
|
||||
Hand = 360
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -1374,15 +1374,20 @@ namespace SicUI.Client
|
||||
if (menuInfo.System is "PM1" or "PM2")
|
||||
{
|
||||
var rect = FindVisualChildByName<Rectangle>(container, "InnerBG");
|
||||
rect.Fill = menuInfo.Selected
|
||||
if(rect != null)
|
||||
{
|
||||
rect.Fill = menuInfo.Selected
|
||||
? BgActiveContent
|
||||
: new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF346294"));
|
||||
}
|
||||
|
||||
var bgBorder = FindVisualChildByName<Border>(container, "BG");
|
||||
bgBorder.Background = menuInfo.Selected
|
||||
? BgActiveContent
|
||||
: new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF346294"));
|
||||
|
||||
if (bgBorder != null)
|
||||
{
|
||||
bgBorder.Background = menuInfo.Selected
|
||||
? BgActiveContent
|
||||
: new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF346294"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,6 +12,7 @@ using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using System.Windows.Threading;
|
||||
|
||||
namespace SicUI.Models.PMs
|
||||
{
|
||||
@ -23,6 +24,8 @@ namespace SicUI.Models.PMs
|
||||
public PMOperationView()
|
||||
{
|
||||
InitializeComponent();
|
||||
Loaded += (s, e) => Dispatcher.BeginInvoke(DispatcherPriority.Background,
|
||||
new Action(() => (s as FrameworkElement)?.UpdateLayout()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1157,7 +1157,12 @@ namespace SicUI.Models.PMs
|
||||
|
||||
private void GetSC()
|
||||
{
|
||||
Mfc5IsInstalled = (bool)QueryDataClient.Instance.Service.GetConfig($"PM.{Module}.MFC.Mfc5.IsInstalled");
|
||||
var mfc5IsInstalled = QueryDataClient.Instance.Service.GetConfig($"PM.{Module}.MFC.Mfc5.IsInstalled");
|
||||
if (mfc5IsInstalled != null)
|
||||
{
|
||||
Mfc5IsInstalled = (bool)QueryDataClient.Instance.Service.GetConfig($"PM.{Module}.MFC.Mfc5.IsInstalled");
|
||||
}
|
||||
|
||||
TMAEnable = (bool)QueryDataClient.Instance.Service.GetConfig($"PM.{Module}.TMAEnable");
|
||||
CarbonSource = (string)QueryDataClient.Instance.Service.GetConfig($"PM.{Module}.CarbonSource");
|
||||
|
||||
|
||||
@ -55,6 +55,6 @@ using System.Windows;
|
||||
// by using the '*' as shown below:
|
||||
|
||||
|
||||
[assembly: AssemblyVersion("1.1.0.60818")]
|
||||
[assembly: AssemblyVersion("1.1.0.60819")]
|
||||
[assembly: AssemblyInformationalVersion("MoS2(无EFEM)")]
|
||||
|
||||
|
||||
@ -1230,14 +1230,14 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.SiasunPhoenixB
|
||||
//TM从UnLoad只能取石墨盘
|
||||
if (sourcemodule == ModuleName.UnLoad)
|
||||
{
|
||||
if (_unloadWaferClaw.State == ClawStateEnum.Clamp)
|
||||
{
|
||||
WaferManager.Instance.TrayMoved(sourcemodule, SourceslotIndex, RobotModuleName, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
WaferManager.Instance.WaferTrayMoved(sourcemodule, SourceslotIndex, RobotModuleName, 0);
|
||||
}
|
||||
//if (_unloadWaferClaw.State == ClawStateEnum.Clamp)
|
||||
//{
|
||||
// WaferManager.Instance.TrayMoved(sourcemodule, SourceslotIndex, RobotModuleName, 0);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// WaferManager.Instance.WaferTrayMoved(sourcemodule, SourceslotIndex, RobotModuleName, 0);
|
||||
//}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1245,14 +1245,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.SiasunPhoenixB
|
||||
{
|
||||
if (arm == RobotArmEnum.Blade1)
|
||||
{
|
||||
if (_llWaferClaw.State == ClawStateEnum.Clamp && (sourcemodule == ModuleName.LoadLock || sourcemodule == ModuleName.Load))
|
||||
{
|
||||
WaferManager.Instance.TrayMoved(sourcemodule, SourceslotIndex, RobotModuleName, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
WaferManager.Instance.WaferTrayMoved(sourcemodule, SourceslotIndex, RobotModuleName, 0);
|
||||
}
|
||||
WaferManager.Instance.WaferTrayMoved(sourcemodule, SourceslotIndex, RobotModuleName, 0);
|
||||
}
|
||||
|
||||
if (arm == RobotArmEnum.Blade2)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user