123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- 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.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.RT.EquipmentLibrary.HardwareUnits.LoadPorts;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robot;
- namespace FurnaceRT.Equipments.Stockers
- {
- public partial class StockerModule
- {
- #region fields
- private IoSensor _diStationCassettePresent;
- private IoTrigger _foupPurge;
- private int _alarmNumber;
- #endregion
- private List<AlarmEventItem> _triggeredAlarmList = new List<AlarmEventItem>();
- public void InitDevice()
- {
- _diStationCassettePresent = DEVICE.GetDevice<IoSensor>($"PM1.Sensor{Module}");
- _foupPurge = DEVICE.GetDevice<IoTrigger>($"PM1.TrigStockerPurge{Module}");
- 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
- {
- }
- }
- private void SetDisplayName()
- {
- if (!SC.ContainsItem($"System.Stocker.{Module}WaferType"))
- return;
- var type = SC.GetStringValue($"System.Stocker.{Module}WaferType");
- if (type.Contains("P"))
- type = "P";
- else if (type.Contains("M"))
- type = "M";
- else if (type.Contains("SD"))
- type = "SD";
- else if (type.Contains("ED"))
- type = "ED";
- int display = 0;
- for(int i = 1; i < 30; i++)
- {
- if (!SC.ContainsItem($"System.Stocker.Stocker{i}WaferType"))
- continue;
- if (SC.GetStringValue($"System.Stocker.Stocker{i}WaferType").Contains(type))
- display++;
- if (Module == $"Stocker{i}")
- break;
- }
- SC.SetItemValue($"System.StockerDisplayName.{Module}", $"{display}");
- }
- public override void Monitor()
- {
- if(_foupPurge != null && _diStationCassettePresent != null &&
- _foupPurge.Value != _diStationCassettePresent.Value)
- {
- _foupPurge.SetTrigger(_diStationCassettePresent.Value, out _);
- }
- }
- }
- }
|