| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Diagnostics;
 
- using Aitex.Core.RT.DataCenter;
 
- using Aitex.Core.RT.Device;
 
- using Aitex.Core.RT.Device.Unit;
 
- using Aitex.Core.RT.Event;
 
- using Aitex.Core.RT.Fsm;
 
- using Aitex.Core.RT.OperationCenter;
 
- using Aitex.Core.RT.Routine;
 
- using Aitex.Core.RT.SCCore;
 
- using Aitex.Core.Util;
 
- using Aitex.Core.Utilities;
 
- using Aitex.Sorter.Common;
 
- using MECF.Framework.Common.Alarms;
 
- using MECF.Framework.Common.Equipment;
 
- using MECF.Framework.Common.Event;
 
- using MECF.Framework.Common.Schedulers;
 
- using MECF.Framework.Common.SubstrateTrackings;
 
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts;
 
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robot;
 
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots;
 
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.RobotBase;
 
- namespace FurnaceRT.Equipments.WaferRobots
 
- {
 
-     public partial class WaferRobotModule
 
-     {
 
-         public RobotBaseDevice WaferRobotDevice { get; set; }
 
-         private List<AlarmEventItem> _triggeredAlarmList = new List<AlarmEventItem>();
 
-         private int _alarmNumber;
 
-         public IoAlarmSignal AlarmSignaRobotTPStatusWarning { get; set; }
 
-         private IoTrigger _trigAlarmReset;
 
-         private IoAlarmSignal _alarmSignaRobotAlarm;
 
-         private R_TRIG _alarmSignaRobotAlarmTrig = new R_TRIG();
 
-         public void InitDevice()
 
-         {
 
-             WaferRobotDevice = DEVICE.GetDevice<RobotBaseDevice>($"{ModuleName.WaferRobot}");
 
-             AlarmSignaRobotTPStatusWarning = DEVICE.GetDevice<IoAlarmSignal>($"PM1.AlarmSignaWaferRobotTPStatusWarning");
 
-             _alarmSignaRobotAlarm = DEVICE.GetDevice<IoAlarmSignal>($"PM1.AlarmSignaWaferRobotAlarm");
 
-             _trigAlarmReset = DEVICE.GetDevice<IoTrigger>($"PM1.TrigWaferRobotAlarmReset");
 
-             WaferManager.Instance.SubscribeLocation($"{ModuleName.WaferRobot}", 5);
 
-             this.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
 
-             WaferRobotDevice.OnDeviceAlarmStateChanged += OnModuleDeviceAlarmStateChanged;
 
-         }
 
-         public void OnModuleDeviceAlarmStateChanged(string deviceId, AlarmEventItem alarmItem)
 
-         {
 
-             if (alarmItem.IsTriggered)
 
-             {
 
-                 EventLevel level = alarmItem.Level;
 
-                 _triggeredAlarmList.Add(alarmItem);
 
-                 if (level == EventLevel.Alarm)
 
-                 {
 
-                     try
 
-                     {
 
-                         EV.PostAlarmLog(Module, alarmItem);
 
-                     }
 
-                     catch (Exception ex)
 
-                     {
 
-                         EV.WriteEvent(ex.Message.ToString());
 
-                     }
 
-                     int count = 0;
 
-                     var alarms = EV.GetAlarmEvent();
 
-                     foreach (var alarm in alarms)
 
-                     {
 
-                         if (alarm.Level == EventLevel.Alarm && alarm.Source == Name)
 
-                             count++;
 
-                     }
 
-                     if (_alarmNumber != count && count != 0)
 
-                     {
 
-                         PostMsg(MSG.Error);
 
-                     }
 
-                     _alarmNumber = count;
 
-                 }
 
-                 else
 
-                 {
 
-                     EV.PostWarningLog(Module, alarmItem);
 
-                 }
 
-             }
 
-             else
 
-             {
 
-             }
 
-         }
 
-         public void SetCassetteRobotReset()
 
-         {
 
-             WaferRobotDevice.RobotReset();
 
-         }
 
-         public bool SetWaferRobotHome(out string reason)
 
-         {
 
-             reason = string.Empty;
 
-             return WaferRobotDevice.HomeModule(null);
 
-         }
 
-         public bool SetSpeed(int speed, out string reason)
 
-         {
 
-             reason = string.Empty;
 
-             return WaferRobotDevice.SetSpeed("SetSpeed", speed);
 
-         }
 
-         public bool RequestWaferPresent(Hand hand, out string reason)
 
-         {
 
-             reason = string.Empty;
 
-             RobotArmEnum arm = hand == Hand.Blade1 ? RobotArmEnum.Blade1 : RobotArmEnum.Blade2;
 
-             List<object> paras = new List<object>() { "CurrentStatus", arm };
 
-             return WaferRobotDevice.ReadParameter(paras.ToArray());
 
-         }
 
-         public bool RobotPick(ModuleName target, int targetSlot, Hand hand, out string reason)
 
-         {
 
-             reason = string.Empty;
 
-             RobotArmEnum arm = hand == Hand.Blade1 ? RobotArmEnum.Blade1 : RobotArmEnum.Both;
 
-             return WaferRobotDevice.Pick(arm, target.ToString(), targetSlot);
 
-         }
 
-         public bool RobotPlace(ModuleName target, int targetSlot, Hand hand, out string reason)
 
-         {
 
-             reason = string.Empty;
 
-             RobotArmEnum arm = hand == Hand.Blade1 ? RobotArmEnum.Blade1 : RobotArmEnum.Both;
 
-             return WaferRobotDevice.Place(arm, target.ToString(), targetSlot);
 
-         }
 
-         public bool RobotMap(ModuleName target, Hand hand, out string reason)
 
-         {
 
-             reason = string.Empty;
 
-             return WaferRobotDevice.WaferMapping(target, out reason);
 
-         }
 
-         public void Stop()
 
-         {
 
-             WaferRobotDevice.Stop();
 
-         }
 
-     }
 
- }
 
 
  |