| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 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.OperationCenter;using Aitex.Core.RT.SCCore;using Aitex.Core.Util;using Aitex.Core.Utilities;using Aitex.Sorter.Common;using FurnaceRT.Devices;using FurnaceRT.Equipments.PMs;using FurnaceRT.Equipments.Systems;using MECF.Framework.Common.Alarms;using MECF.Framework.Common.Equipment;using MECF.Framework.Common.Event;using MECF.Framework.Common.Schedulers;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace FurnaceRT.Equipments.FIMSs{    public partial class FIMSModule    {               #region fields        private List<AlarmEventItem> _triggeredAlarmList = new List<AlarmEventItem>();        private List<IoAlarmSignal> _alarmSignals = new List<IoAlarmSignal>();        private List<IDevice> _allModuleDevice = new List<IDevice>();        private int _alarmNumber;        #endregion        public IoFIMS FIMSDevice { get; set; }        public IoSensor SensorWaferRobotEX1AxisHomePosition { get; set; }        public IoSensor SensorWaferRobotEX2AxisHomePosition { get; set; }        public bool IsMapping { get; set; }        public bool IsDoorOpen        {            get            {                if (!SC.GetValue<bool>("System.IsSimulatorMode"))                {                    if (FIMSDevice != null)                    {                        return FIMSDevice.DoorOpenCloseStatus == DeviceStatus.Open;                    }                }                return true;            }        }        public bool IsWaferOnRobot => FIMSDevice == null ? false : FIMSDevice.IsWaferOnRobot;        public void InitDevice()        {            FIMSDevice = DEVICE.GetDevice<IoFIMS>($"PM1.{Module}");            SensorWaferRobotEX1AxisHomePosition = DEVICE.GetDevice<IoSensor>($"PM1.SensorWaferRobotEX1AxisHomePosition");            SensorWaferRobotEX2AxisHomePosition = DEVICE.GetDevice<IoSensor>($"PM1.SensorWaferRobotEX2AxisHomePosition");            this.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());                    }                }                else                {                    EV.PostWarningLog(Module, alarmItem);                }            }            else            {            }        }        public void Stop()        {            FIMSDevice.Stop();            (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1] as PMModule)?.SetN2PurgeProcess(false);            return;        }    }}
 |