Merge branch 'Sic8ToSic6' into 添加DI-45
# Conflicts: # SicUI/Properties/AssemblyInfo.cs
This commit is contained in:
commit
ec0db0ed21
|
@ -308,6 +308,14 @@
|
|||
<IoPTOffsetAndK id="PT1_K" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT1_K" />
|
||||
<IoPTOffsetAndK id="PT2_Offset" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT2_Offset" />
|
||||
<IoPTOffsetAndK id="PT2_K" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT2_K" />
|
||||
<IoPTOffsetAndK id="PT3_Offset" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT3_Offset" />
|
||||
<IoPTOffsetAndK id="PT3_K" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT3_K" />
|
||||
<IoPTOffsetAndK id="PT4_Offset" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT4_Offset" />
|
||||
<IoPTOffsetAndK id="PT4_K" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT4_K" />
|
||||
<IoPTOffsetAndK id="PT9_Offset" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT9_Offset" />
|
||||
<IoPTOffsetAndK id="PT9_K" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT9_K" />
|
||||
<IoPTOffsetAndK id="PT10_Offset" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT10_Offset" />
|
||||
<IoPTOffsetAndK id="PT10_K" module="" display="PT" schematicId="" unit="" aioType="float" aoOffset="AO_PT10_K" />
|
||||
<IoPTOffsetAndK id="U1_Water" module="" display="WaterTemp" schematicId="" unit="" aioType="float" aoOffset="AO_AI3_Offset" />
|
||||
<IoPTOffsetAndK id="U2_Water" module="" display="WaterTemp" schematicId="" unit="" aioType="float" aoOffset="AO_AI4_Offset" />
|
||||
<IoPTOffsetAndK id="U3_Water" module="" display="WaterTemp" schematicId="" unit="" aioType="float" aoOffset="AO_AI5_Offset" />
|
||||
|
|
|
@ -188,14 +188,6 @@
|
|||
<TMRobot id="TMRobot" module="TMRobot" display="" schematicId="" unit="" />
|
||||
</TMRobots>
|
||||
|
||||
<WaferRobots assembly="SicModules" classType="SicModules.EFEMs.SicWaferRobot">
|
||||
<WaferRobot id="WaferRobot" module="WaferRobot" display="" schematicId="" unit="" />
|
||||
</WaferRobots>
|
||||
|
||||
<TrayRobots assembly="SicModules" classType="SicModules.EFEMs.SicTrayRobot">
|
||||
<TrayRobot id="TrayRobot" module="TrayRobot" display="" schematicId="" unit="" />
|
||||
</TrayRobots>
|
||||
|
||||
<Cassettes assembly="SicModules" classType="SicModules.Cassettes.SicCassette">
|
||||
<Cassette id="CassAL" module="CassAL" display="" schematicId="" unit="" />
|
||||
<Cassette id="CassAR" module="CassAR" display="" schematicId="" unit="" />
|
||||
|
|
|
@ -10,7 +10,9 @@ using MECF.Framework.Common.SubstrateTrackings;
|
|||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Aligners.HiWinAligner;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.EFEM;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HwinRobot;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.RobotBase;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.Sunway;
|
||||
using static MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.RobotBase.RobotBaseDevice;
|
||||
using IoInterLock = SicModules.Devices.IoInterLock;
|
||||
|
||||
|
@ -59,8 +61,24 @@ namespace SicModules.EFEMs.Routines.Base
|
|||
|
||||
public EfemBaseRoutine() : base(ModuleName.EFEM.ToString())
|
||||
{
|
||||
_waferRobot = DEVICE.GetDevice<SicWaferRobot>($"WaferRobot.WaferRobot");
|
||||
_trayRobot = DEVICE.GetDevice<SicTrayRobot>($"TrayRobot.TrayRobot");
|
||||
if (SC.GetStringValue("WaferRobot.RobotType") == "SunwayRobot")
|
||||
{
|
||||
_waferRobot = DEVICE.GetDevice<SunwayRobot>($"WaferRobot.WaferRobot");
|
||||
}
|
||||
else
|
||||
{
|
||||
_waferRobot = DEVICE.GetDevice<HwinRobot>($"WaferRobot.WaferRobot");
|
||||
}
|
||||
|
||||
if (SC.GetStringValue("TrayRobot.RobotType") == "SunwayRobot")
|
||||
{
|
||||
_trayRobot = DEVICE.GetDevice<SunwayRobot>($"TrayRobot.TrayRobot");
|
||||
}
|
||||
else
|
||||
{
|
||||
_trayRobot = DEVICE.GetDevice<HwinRobotB>($"TrayRobot.TrayRobot");
|
||||
}
|
||||
|
||||
_efemDevice = DEVICE.GetDevice<SicEFEM>($"EFEM.EFEM");
|
||||
_loadTrayHomeSensor = DEVICE.GetDevice<IoSensor>($"TM.LoadTrayHomeSensor");
|
||||
_alignerDevice = DEVICE.GetDevice<HwAlignerGuide>($"Aligner.HiWinAligner");
|
||||
|
|
|
@ -43,7 +43,8 @@ namespace SicModules.EFEMs.Routines
|
|||
SetExtendToDo,
|
||||
Pick,
|
||||
CheckTrayStatuBeforePick,
|
||||
ClearRobortExtendToDo
|
||||
ClearRobortExtendToDo,
|
||||
ExtendForPick
|
||||
}
|
||||
|
||||
public TrayRobotPickRoutine()
|
||||
|
@ -112,26 +113,33 @@ namespace SicModules.EFEMs.Routines
|
|||
{
|
||||
try
|
||||
{
|
||||
CheckRobotReady((int)RoutineStep.CheckRobotReady, TrayRobot, _pickTimeout);
|
||||
if (SC.GetStringValue("TrayRobot.RobotType") != "SunwayRobot")
|
||||
{
|
||||
CheckTrayStatuBeforePick((int)RoutineStep.CheckTrayStatuBeforePick, TrayRobot, 10); //Pick前先检查
|
||||
}
|
||||
|
||||
if (_source == ModuleName.LoadLock)
|
||||
{
|
||||
CheckRobotReady((int)RoutineStep.CheckRobotReady, TrayRobot, _pickTimeout);
|
||||
CheckTrayStatuBeforePick((int)RoutineStep.CheckTrayStatuBeforePick, TrayRobot, 10); //Pick前先检查
|
||||
ExecuteRoutine((int)RoutineStep.OpenSlitValve, _efemSlitValveOpenRoutine); //打开闸板阀
|
||||
SetTrayRobortExtendToDO((int)RoutineStep.SetExtendToDo, _source, 10); //设置ExtendToDO,用于检测InterLock
|
||||
}
|
||||
|
||||
Pick((int)RoutineStep.Pick, TrayRobot, _source, _sourceSlot, _pickTimeout);
|
||||
if (SC.GetStringValue("TrayRobot.RobotType") == "SunwayRobot")
|
||||
{
|
||||
ExtendForPick((int)RoutineStep.ExtendForPick, TrayRobot, _source, _sourceSlot, _pickTimeout); //机械手到位
|
||||
}
|
||||
|
||||
ClearRobortExtendToDO((int)RoutineStep.ClearRobortExtendToDo);
|
||||
Pick((int)RoutineStep.Pick, TrayRobot, _source, _sourceSlot, _pickTimeout);
|
||||
|
||||
ClearRobortExtendToDO((int)RoutineStep.ClearRobortExtendToDo);
|
||||
|
||||
if (_source == ModuleName.LoadLock)
|
||||
{
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 1);
|
||||
ExecuteRoutine((int)RoutineStep.CloseSlitValve, _efemSlitValveCloseRoutine); //关闭闸板阀
|
||||
}
|
||||
else
|
||||
{
|
||||
CheckRobotReady((int)RoutineStep.CheckRobotReady, TrayRobot, _pickTimeout);
|
||||
CheckTrayStatuBeforePick((int)RoutineStep.CheckTrayStatuBeforePick, TrayRobot, 10); //Pick前先检查
|
||||
Pick((int)RoutineStep.Pick, TrayRobot, _source, _sourceSlot, _pickTimeout); //机械手到位,夹爪打开
|
||||
ClearRobortExtendToDO((int)RoutineStep.ClearRobortExtendToDo);
|
||||
}
|
||||
|
||||
}
|
||||
catch (RoutineBreakException)
|
||||
{
|
||||
|
|
|
@ -61,6 +61,7 @@ namespace SicModules.EFEMs.Routines
|
|||
SetExtendToDo,
|
||||
ClearRobortExtendToDo,
|
||||
CheckTraySensor,
|
||||
ExtendForPlace,
|
||||
|
||||
TimeDelay1,
|
||||
TimeDelay2,
|
||||
|
@ -150,12 +151,6 @@ namespace SicModules.EFEMs.Routines
|
|||
{
|
||||
try
|
||||
{
|
||||
/* DI_LoadTrayPresence 托盘有无
|
||||
* DI_LoadWaferPlaced Wafer有无
|
||||
* DI_LoadHomeTraySensor 托盘测距
|
||||
*/
|
||||
|
||||
|
||||
if (_source == ModuleName.LoadLock)
|
||||
{
|
||||
|
||||
|
@ -164,6 +159,12 @@ namespace SicModules.EFEMs.Routines
|
|||
ExecuteRoutine((int)RoutineStep.OpenSlitValve, _efemSlitValveOpenRoutine); //打开闸板阀
|
||||
SetTrayRobortExtendToDO((int)RoutineStep.SetExtendToDo, _source, 10); //设置ExtendToDO,用于检测InterLock
|
||||
CheckRobotReady((int)RoutineStep.CheckRobotReady, TrayRobot, _placeTimeout); //判断机械手当前是否空闲
|
||||
|
||||
if (SC.GetStringValue("TrayRobot.RobotType") == "SunwayRobot")
|
||||
{
|
||||
ExtendForPlace((int)RoutineStep.ExtendForPlace, TrayRobot, _source, _sourceSlot, _placeTimeout); //伸出,关真空
|
||||
}
|
||||
|
||||
Place((int)RoutineStep.Place, TrayRobot, _source, _sourceSlot, _placeTimeout); //机械手
|
||||
ClearRobortExtendToDO((int)RoutineStep.ClearRobortExtendToDo);
|
||||
|
||||
|
@ -183,6 +184,12 @@ namespace SicModules.EFEMs.Routines
|
|||
{
|
||||
CheckRobotReady((int)RoutineStep.CheckRobotReady, TrayRobot, _placeTimeout); //判断机械手当前是否空闲
|
||||
SetTrayRobortExtendToDO((int)RoutineStep.SetExtendToDo, _source, 10); //设置ExtendToDO,用于检测InterLock
|
||||
|
||||
if (SC.GetStringValue("TrayRobot.RobotType") == "SunwayRobot")
|
||||
{
|
||||
ExtendForPlace((int)RoutineStep.ExtendForPlace, TrayRobot, _source, _sourceSlot, _placeTimeout); //伸出,关真空
|
||||
}
|
||||
|
||||
Place((int)RoutineStep.Place, TrayRobot, _source, _sourceSlot, _placeTimeout); //机械手
|
||||
ClearRobortExtendToDO((int)RoutineStep.ClearRobortExtendToDo);
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ namespace SicModules.EFEMs.Routines
|
|||
TimeDelay1,
|
||||
ExtendForPick,
|
||||
Pick,
|
||||
Map,
|
||||
}
|
||||
|
||||
public WaferRobotMapRoutine()
|
||||
|
@ -98,7 +99,7 @@ namespace SicModules.EFEMs.Routines
|
|||
try
|
||||
{
|
||||
CheckRobotReady((int)RoutineStep.CheckRobotReady, WaferRobot, _pickTimeout); //判断机械手当前是否空闲
|
||||
Map((int)RoutineStep.Pick, WaferRobot, _source, _pickTimeout); //机械手吸住,收回
|
||||
Map((int)RoutineStep.Map, WaferRobot, _source, _pickTimeout); //机械手吸住,收回
|
||||
}
|
||||
catch (RoutineBreakException)
|
||||
{
|
||||
|
|
|
@ -186,8 +186,11 @@ namespace SicModules.EFEMs.Routines
|
|||
CheckRobotReady((int)RoutineStep.CheckRobotReady, WaferRobot, _pickTimeout);
|
||||
|
||||
//开始前先检查Wafer
|
||||
CheckWaferStatuBeforePick((int)RoutineStep.CheckWaferStatuBeforePick, WaferRobot, 10);
|
||||
|
||||
if (SC.GetStringValue("WaferRobot.RobotType") != "SunwayRobot")
|
||||
{
|
||||
CheckWaferStatuBeforePick((int)RoutineStep.CheckWaferStatuBeforePick, WaferRobot, 10);
|
||||
}
|
||||
|
||||
TimeDelay((int)RoutineStep.TimeDelay2, 3);
|
||||
|
||||
////执行Load Tray 找原点
|
||||
|
|
|
@ -176,6 +176,7 @@ namespace SicModules.EFEMs.Routines
|
|||
ExecuteRoutine((int)RoutineStep.OpenSlitValve, _efemSlitValveOpenRoutine); //打开闸板阀
|
||||
SetWaferRobortExtendToDO((int)RoutineStep.SetExtendToDo, _target, 10); //设置ExtendToDO,用于检测InterLock
|
||||
CheckRobotReady((int)RoutineStep.CheckRobotReady, WaferRobot, _placeTimeout); //判断机械手当前是否空闲
|
||||
|
||||
ExtendForPlace((int)RoutineStep.ExtendForPlace, WaferRobot, _target, _targetSlot, _placeTimeout); //伸出,关真空
|
||||
|
||||
//夹爪打开,顶针上升
|
||||
|
@ -203,7 +204,12 @@ namespace SicModules.EFEMs.Routines
|
|||
|
||||
ClearRobortExtendToDO((int)RoutineStep.ClearRobortExtendToDo);
|
||||
TimeDelay((int)RoutineStep.TimeDelay1, 1);
|
||||
CheckWaferStatuAfterPlace((int)RoutineStep.CheckWaferStatusByRq, WaferRobot, 10); //结束后检查Wafer
|
||||
|
||||
if (SC.GetStringValue("WaferRobot.RobotType") != "SunwayRobot")
|
||||
{
|
||||
CheckWaferStatuAfterPlace((int)RoutineStep.CheckWaferStatusByRq, WaferRobot, 10); //结束后检查Wafer
|
||||
}
|
||||
|
||||
ExecuteRoutine((int)RoutineStep.CloseSlitValve, _efemSlitValveCloseRoutine); //关闭闸板阀
|
||||
}
|
||||
catch (RoutineBreakException)
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
using System.Xml;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HwinRobot;
|
||||
|
||||
namespace SicModules.EFEMs
|
||||
{
|
||||
public class SicTrayRobot : HwinRobotB
|
||||
{
|
||||
private ModuleName _module;
|
||||
|
||||
public SicTrayRobot(string module, XmlElement node, string ioModule = "") : base("TrayRobot", "TrayRobot", "\r\n")
|
||||
{
|
||||
var attrModule = node.GetAttribute("module");
|
||||
base.Module = string.IsNullOrEmpty(attrModule) ? module : attrModule;
|
||||
base.Name = node.GetAttribute("id");
|
||||
_module = ModuleHelper.Converter(Module);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
using System.Xml;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HwinRobot;
|
||||
|
||||
namespace SicModules.EFEMs
|
||||
{
|
||||
public class SicWaferRobot : HwinRobot
|
||||
{
|
||||
private ModuleName _module;
|
||||
|
||||
public SicWaferRobot(string module, XmlElement node, string ioModule = "") : base("WaferRobot", "WaferRobot", "\r\n")
|
||||
{
|
||||
var attrModule = node.GetAttribute("module");
|
||||
base.Module = string.IsNullOrEmpty(attrModule) ? module : attrModule;
|
||||
base.Name = node.GetAttribute("id");
|
||||
_module = ModuleHelper.Converter(Module);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,10 +4,14 @@ using Aitex.Core.RT.Device;
|
|||
using Aitex.Core.RT.Fsm;
|
||||
using Aitex.Core.RT.OperationCenter;
|
||||
using Aitex.Core.RT.Routine;
|
||||
using Aitex.Core.RT.SCCore;
|
||||
using Aitex.Core.Utilities;
|
||||
using Aitex.Sorter.Common;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using MECF.Framework.Common.Fsm;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HwinRobot;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.RobotBase;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.Sunway;
|
||||
using SicModules.EFEMs.Routines;
|
||||
|
||||
namespace SicModules.EFEMs
|
||||
|
@ -45,7 +49,7 @@ namespace SicModules.EFEMs
|
|||
Map,
|
||||
};
|
||||
|
||||
public SicTrayRobot TrayRobotDevice { get; set; }
|
||||
public RobotBaseDevice TrayRobotDevice { get; set; }
|
||||
|
||||
public bool IsReady => FsmState == (int)STATE.Idle && CheckAllMessageProcessed();
|
||||
|
||||
|
@ -112,7 +116,14 @@ namespace SicModules.EFEMs
|
|||
|
||||
private void InitDevice()
|
||||
{
|
||||
TrayRobotDevice = DEVICE.GetDevice<SicTrayRobot>($"{ModuleName.TrayRobot}.{ModuleName.TrayRobot}");
|
||||
if (SC.GetStringValue("TrayRobot.RobotType") == "SunwayRobot")
|
||||
{
|
||||
TrayRobotDevice = DEVICE.GetDevice<SunwayRobot>($"TrayRobot.TrayRobot");
|
||||
}
|
||||
else
|
||||
{
|
||||
TrayRobotDevice = DEVICE.GetDevice<HwinRobotB>($"TrayRobot.TrayRobot");
|
||||
}
|
||||
}
|
||||
|
||||
private void InitFsm()
|
||||
|
|
|
@ -3,10 +3,14 @@ using Aitex.Core.RT.Device;
|
|||
using Aitex.Core.RT.Fsm;
|
||||
using Aitex.Core.RT.OperationCenter;
|
||||
using Aitex.Core.RT.Routine;
|
||||
using Aitex.Core.RT.SCCore;
|
||||
using Aitex.Core.Utilities;
|
||||
using Aitex.Sorter.Common;
|
||||
using MECF.Framework.Common.Equipment;
|
||||
using MECF.Framework.Common.Fsm;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HwinRobot;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.RobotBase;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.Sunway;
|
||||
using SicModules.EFEMs.Routines;
|
||||
|
||||
namespace SicModules.EFEMs
|
||||
|
@ -80,7 +84,7 @@ namespace SicModules.EFEMs
|
|||
|
||||
#region Properties
|
||||
|
||||
public SicWaferRobot WaferRobotDevice { get; set; }
|
||||
public RobotBaseDevice WaferRobotDevice { get; set; }
|
||||
|
||||
public bool IsReady => FsmState == (int)STATE.Idle && CheckAllMessageProcessed();
|
||||
|
||||
|
@ -126,7 +130,14 @@ namespace SicModules.EFEMs
|
|||
|
||||
private void InitDevice()
|
||||
{
|
||||
WaferRobotDevice = DEVICE.GetDevice<SicWaferRobot>($"{ModuleName.WaferRobot}.{ModuleName.WaferRobot}");
|
||||
if (SC.GetStringValue("WaferRobot.RobotType") == "SunwayRobot")
|
||||
{
|
||||
WaferRobotDevice = DEVICE.GetDevice<SunwayRobot>($"WaferRobot.WaferRobot");
|
||||
}
|
||||
else
|
||||
{
|
||||
WaferRobotDevice = DEVICE.GetDevice<HwinRobot>($"WaferRobot.WaferRobot");
|
||||
}
|
||||
}
|
||||
|
||||
private void InitFsm()
|
||||
|
|
|
@ -103,8 +103,6 @@
|
|||
<Compile Include="EFEMs\Routines\WaferRobotMapRoutine.cs" />
|
||||
<Compile Include="EFEMs\Routines\WaferRobotPickRoutine.cs" />
|
||||
<Compile Include="EFEMs\Routines\WaferRobotPlaceRoutine.cs" />
|
||||
<Compile Include="EFEMs\SicTrayRobot.cs" />
|
||||
<Compile Include="EFEMs\SicWaferRobot.cs" />
|
||||
<Compile Include="EFEMs\TrayRobotModule.cs" />
|
||||
<Compile Include="EFEMs\WaferRobotModule.cs" />
|
||||
<Compile Include="EFEMs\EFEMModule.cs" />
|
||||
|
|
|
@ -1688,6 +1688,7 @@
|
|||
<config default="50" name="MaxPressureDiffOpenSlitValve" description="闸板阀允许打开的最大压力差" max="1200" min="0" paramter="" tag="" unit="mbar" type="Double" />
|
||||
</configs>
|
||||
<configs name="WaferRobot">
|
||||
<config default="HwinRobot" name="RobotType" description="Wafer Robot类型" max="" min="" paramter="HwinRobot;SunwayRobot" tag="ReadOnlySelection" unit="" type="String" />
|
||||
<config default="120" name="PickTimeout" description="pick time out" max="600" min="1" paramter="" tag="" unit="s" type="Integer" />
|
||||
<config default="120" name="PlaceTimeout" description="place time out" max="600" min="1" paramter="" tag="" unit="s" type="Integer" />
|
||||
<config default="120" name="GotoTimeout" description="Goto time out" max="600" min="1" paramter="" tag="" unit="s" type="Integer" />
|
||||
|
@ -1702,6 +1703,7 @@
|
|||
<config default="true" name="Blade2Enable" description="Blade2 Enable" max="0" min="0" paramter="" tag="" unit="" type="Bool" visible="false" />
|
||||
</configs>
|
||||
<configs name="TrayRobot">
|
||||
<config default="HwinRobot" name="RobotType" description="Tray Robot类型" max="" min="" paramter="HwinRobot;SunwayRobot" tag="ReadOnlySelection" unit="" type="String" />
|
||||
<config default="120" name="PickTimeout" description="pick time out" max="600" min="1" paramter="" tag="" unit="s" type="Integer" />
|
||||
<config default="120" name="PlaceTimeout" description="place time out" max="600" min="1" paramter="" tag="" unit="s" type="Integer" />
|
||||
<config default="120" name="GotoTimeout" description="Goto time out" max="600" min="1" paramter="" tag="" unit="s" type="Integer" />
|
||||
|
|
|
@ -7,6 +7,8 @@ using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.UPS;
|
|||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.MachineVision.Keyence;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Temps.P116PIDTC;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Temps;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.Sunway;
|
||||
using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HwinRobot;
|
||||
|
||||
namespace SicRT.Instances
|
||||
{
|
||||
|
@ -125,6 +127,32 @@ namespace SicRT.Instances
|
|||
QueueDevice(AkOptics);
|
||||
}
|
||||
|
||||
if (SC.GetStringValue($"WaferRobot.RobotType") == "SunwayRobot")
|
||||
{
|
||||
var waferRobot = new SunwayRobot("WaferRobot", "WaferRobot");
|
||||
waferRobot.Initialize();
|
||||
QueueDevice(waferRobot);
|
||||
}
|
||||
else
|
||||
{
|
||||
var waferRobot = new HwinRobot("WaferRobot", "WaferRobot");
|
||||
waferRobot.Initialize();
|
||||
QueueDevice(waferRobot);
|
||||
}
|
||||
|
||||
if (SC.GetStringValue($"TrayRobot.RobotType") == "SunwayRobot")
|
||||
{
|
||||
var trayRobot = new SunwayRobot("TrayRobot", "TrayRobot");
|
||||
trayRobot.Initialize();
|
||||
QueueDevice(trayRobot);
|
||||
}
|
||||
else
|
||||
{
|
||||
var trayRobot = new HwinRobotB("TrayRobot", "TrayRobot");
|
||||
trayRobot.Initialize();
|
||||
QueueDevice(trayRobot);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<SubView Id="io2" Name="PM2-IO" ViewClass="SicSimulator.Views.SimulatorIOPM2View" Assembly="SicSimulator"/>
|
||||
<SubView Id="io3" Name="TM-IO" ViewClass="SicSimulator.Views.SimulatorIOTMView" Assembly="SicSimulator"/>
|
||||
<SubView Id="tmRobot" Name="TM-Robot" ViewClass="MECF.Framework.Simulator.Core.Robots.BrooksMag7RobotView" Assembly="MECF.Framework.Simulator.Core"/>
|
||||
<SubView Id="WaferRobot" Name="WaferRobot" ViewClass="MECF.Framework.Simulator.Core.Robots.HwinRobotView" Assembly="MECF.Framework.Simulator.Core"/>
|
||||
<SubView Id="TrayRobot" Name="TrayRobot" ViewClass="MECF.Framework.Simulator.Core.Robots.TrayRobotView" Assembly="MECF.Framework.Simulator.Core"/>
|
||||
<SubView Id="WaferRobot" Name="WaferRobot" ViewClass="MECF.Framework.Simulator.Core.Robots.HwinRobotView" Assembly="MECF.Framework.Simulator.Core"/>
|
||||
<SubView Id="TrayRobot" Name="TrayRobot" ViewClass="MECF.Framework.Simulator.Core.Robots.TrayRobotView" Assembly="MECF.Framework.Simulator.Core"/>
|
||||
<SubView Id="TempOmron" Name="Omron-Temp" ViewClass="MECF.Framework.Simulator.Core.Temperature.OmronTempView" Assembly="MECF.Framework.Simulator.Core"/>
|
||||
<SubView Id="NSXBreaker" Name="NSX-Breaker" ViewClass="MECF.Framework.Simulator.Core.Breakers.NSXBreakerView" Assembly="MECF.Framework.Simulator.Core"/>
|
||||
<SubView Id="NAISSevor" Name="NAIS-Sevor" ViewClass="MECF.Framework.Simulator.Core.Sevors.NAIS.NAISSevorView" Assembly="MECF.Framework.Simulator.Core"/>
|
||||
|
|
|
@ -54,5 +54,5 @@ using System.Windows;
|
|||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
|
||||
[assembly: AssemblyVersion("1.1.4.9")]
|
||||
[assembly: AssemblyVersion("1.1.5.0")]
|
||||
[assembly: AssemblyInformationalVersion("自动通用版(有EFEM)")]
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue