123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Aitex.Core.Common.DeviceData;
- 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 MECF.Framework.Common.Device.Bases;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.Schedulers;
- using MECF.Framework.Common.SubstrateTrackings;
- using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs;
- using Venus_RT.Devices.IODevices;
- using Venus_Core;
- namespace Venus_RT.Devices
- {
- enum ValveType
- {
- PNV21,
- PNV22,
- PV11,
- PV12,
- PV21,
- PV22,
- PV31,
- PV32,
- PV41,
- PV42,
- N2,
- Mfc1,
- Mfc2,
- Mfc3,
- Mfc4,
- Mfc5,
- Mfc6,
- Mfc7,
- Mfc8,
- PVHe1,
- PVHe2,
- GasFinal,
- SoftPump,
- FastPump,
- CHBPurge,
- CHBVent,
- TurboPumpPurge,
- Guage,
- LoadlockVent,
- LoadlockPumping
- }
- class JetPM : PM
- {
- private readonly IoLid _Lid;
- private readonly IoLid _LidLoadlock;
- private readonly IoCylinder _slitDoor;
- private readonly IoCylinder _LiftPin;
- private readonly IoCylinder _LoadLockArm;
- private readonly IoSensor _CDAPressure;
- private readonly IoValve _PNV21Valve;
- private readonly IoValve _PNV22Valve;
- private readonly IoValve _PV11Valve;
- private readonly IoValve _PV12Valve;
- private readonly IoValve _PV21Valve;
- private readonly IoValve _PV22Valve;
- private readonly IoValve _PV31Valve;
- private readonly IoValve _PV32Valve;
- private readonly IoValve _PV41Valve;
- private readonly IoValve _PV42Valve;
- private readonly IoValve _N2Valve;
- private readonly IoValve _Mfc1Valve;
- private readonly IoValve _Mfc2Valve;
- private readonly IoValve _Mfc3Valve;
- private readonly IoValve _Mfc4Valve;
- private readonly IoValve _Mfc5Valve;
- private readonly IoValve _Mfc6Valve;
- private readonly IoValve _Mfc7Valve;
- private readonly IoValve _Mfc8Valve;
- private readonly IoValve _PVHe1Valve;
- private readonly IoValve _PVHe2Valve;
- private readonly IoValve _GasFinalValve;
- private readonly IoValve _SoftPumpValve;
- private readonly IoValve _FastPumpValve;
- private readonly IoValve _CHBPurgeValve;
- private readonly IoValve _CHBVentValve;
- private readonly IoValve _TurboPumpPurgeValve;
- private readonly IoValve _GuageValve;
- private readonly IoValve _LoadlockVentValve;
- private readonly IoValve _LoadlockPumpingValve;
- private readonly PumpBase _MainPump;
- // 盖子的状态
- public bool IsLidClosed => _Lid.OFFFeedback;
- public bool IsLidLoadlockClosed => _LidLoadlock.OFFFeedback;
- public bool IsSlitDoorClosed => !_slitDoor.ONFeedback && _slitDoor.OFFFeedback;
- public bool IsPumpRunning => _MainPump.IsRunning;
- public bool HasPumpError => _MainPump.IsError || !_MainPump.IsRunning;
- public bool IsCDA_OK => _CDAPressure.Value;
- public new ModuleName Module { get; }
- public JetPM(ModuleName mod) : base(mod.ToString())
- {
- Module = mod;
- _Lid = DEVICE.GetDevice<IoLid>($"{Module}.{VenusDevice.Lid}");
- _LidLoadlock = DEVICE.GetDevice<IoLid>($"{Module}.{VenusDevice.LidLoadlock}");
- _slitDoor = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.SlitDoor}");
- _LiftPin = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.LiftPin}");
- _LoadLockArm = DEVICE.GetDevice<IoCylinder>($"{Module}.{VenusDevice.LoadLockArm}");
- _PNV21Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVN21}");
- _PNV22Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVN22}");
- _PV11Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV11}");
- _PV12Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV12}");
- _PV21Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV21}");
- _PV22Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV22}");
- _PV31Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV31}");
- _PV32Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV32}");
- _PV41Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV41}");
- _PV42Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePV42}");
- _N2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveN2}");
- _Mfc1Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc1}");
- _Mfc2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc2}");
- _Mfc3Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc2}");
- _Mfc4Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc2}");
- _Mfc5Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc2}");
- _Mfc6Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc2}");
- _Mfc7Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc2}");
- _Mfc8Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveMfc2}");
- _PVHe1Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVHe1}");
- _PVHe2Valve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValvePVHe2}");
- _GasFinalValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveGasFinal}");
- _SoftPumpValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveSoftPump}");
- _FastPumpValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveFastPump}");
- _CHBPurgeValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveCHBPurge}");
- _CHBVentValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveCHBVent}");
- _TurboPumpPurgeValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveTurboPumpPurge}");
- _GuageValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveGuage}");
- _LoadlockVentValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveLoadlockVent}");
- _LoadlockPumpingValve = DEVICE.GetDevice<IoValve>($"{Module}.{VenusDevice.ValveLoadlockPumping}");
- _MainPump = DEVICE.GetDevice<PumpBase>($"{Module}.{VenusDevice.MainPump}");
- _CDAPressure = DEVICE.GetDevice<IoSensor>($"{Module}.SensorCDAPressureOk");
- // RS232 Dry pump, SKY
- if (SC.GetValue<int>($"{mod}.DryPump.CommunicationType") == (int)CommunicationType.RS232)
- {
- if (SC.GetValue<int>($"{mod}.DryPump.MFG") == (int)DryPumpMFG.SKY)
- {
- _MainPump = DEVICE.GetDevice<SkyPump>($"{Module}.{VenusDevice.MainPump}");
- }
- else if (SC.GetValue<int>($"{mod}.DryPump.MFG") == (int)DryPumpMFG.Edwards)
- {
- _MainPump = DEVICE.GetDevice<EdwardsPump>($"{Module}.{VenusDevice.MainPump}");
- }
- }
- }
- public void CloseValves()
- {
- _PNV21Valve.TurnValve(false, out _);
- _PNV22Valve.TurnValve(false, out _);
- _PV11Valve.TurnValve(false, out _);
- _PV12Valve.TurnValve(false, out _);
- _PV21Valve.TurnValve(false, out _);
- _PV22Valve.TurnValve(false, out _);
- _PV31Valve.TurnValve(false, out _);
- _PV32Valve.TurnValve(false, out _);
- _PV41Valve.TurnValve(false, out _);
- _PV42Valve.TurnValve(false, out _);
- _PVHe1Valve.TurnValve(false, out _);
- _PVHe2Valve.TurnValve(false, out _);
- _GasFinalValve.TurnValve(false, out _);
- _SoftPumpValve.TurnValve(false, out _);
- _FastPumpValve.TurnValve(false, out _);
- _CHBPurgeValve.TurnValve(false, out _);
- _CHBVentValve.TurnValve(false, out _);
- _TurboPumpPurgeValve.TurnValve(false, out _);
- _GuageValve.TurnValve(false, out _);
- _LoadlockVentValve.TurnValve(false, out _);
- _LoadlockPumpingValve.TurnValve(false, out _);
- _N2Valve.TurnValve(false, out _);
- _FastPumpValve.TurnValve(false, out _);
- _Mfc1Valve.TurnValve(false, out _);
- _Mfc2Valve.TurnValve(false, out _);
- _Mfc3Valve.TurnValve(false, out _);
- _Mfc4Valve.TurnValve(false, out _);
- _Mfc5Valve.TurnValve(false, out _);
- _Mfc6Valve.TurnValve(false, out _);
- _Mfc7Valve.TurnValve(false, out _);
- _Mfc8Valve.TurnValve(false, out _);
- //foreach (var stick in _gasLines)
- //{
- // stick.Stop();
- //}
- }
- public void OpenValve(ValveType vlvType, bool on)
- {
- switch (vlvType)
- {
- case ValveType.PNV21:
- _PNV21Valve.TurnValve(on, out _);
- break;
- case ValveType.PNV22:
- _PNV22Valve.TurnValve(on, out _);
- break;
- case ValveType.PV11:
- _PV11Valve.TurnValve(on, out _);
- break;
- case ValveType.PV12:
- _PV12Valve.TurnValve(on, out _);
- break;
- case ValveType.PV21:
- _PV21Valve.TurnValve(on, out _);
- break;
- case ValveType.PV22:
- _PV22Valve.TurnValve(on, out _);
- break;
- case ValveType.PV31:
- _PV31Valve.TurnValve(on, out _);
- break;
- case ValveType.PV32:
- _PV32Valve.TurnValve(on, out _);
- break;
- case ValveType.PV41:
- _PV41Valve.TurnValve(on, out _);
- break;
- case ValveType.PV42:
- _PV42Valve.TurnValve(on, out _);
- break;
- case ValveType.N2:
- _N2Valve.TurnValve(on, out _);
- break;
- case ValveType.PVHe1:
- _PVHe1Valve.TurnValve(on, out _);
- break;
- case ValveType.PVHe2:
- _PVHe2Valve.TurnValve(on, out _);
- break;
- case ValveType.GasFinal:
- _GasFinalValve.TurnValve(on, out _);
- break;
- case ValveType.SoftPump:
- _SoftPumpValve.TurnValve(on, out _);
- break;
- case ValveType.FastPump:
- _FastPumpValve.TurnValve(on, out _);
- break;
- case ValveType.CHBPurge:
- _CHBPurgeValve.TurnValve(on, out _);
- break;
- case ValveType.CHBVent:
- _CHBVentValve.TurnValve(on, out _);
- break;
- case ValveType.TurboPumpPurge:
- _TurboPumpPurgeValve.TurnValve(on, out _);
- break;
- case ValveType.Guage:
- _GuageValve.TurnValve(on, out _);
- break;
- case ValveType.LoadlockVent:
- _LoadlockVentValve.TurnValve(on, out _);
- break;
- case ValveType.LoadlockPumping:
- _LoadlockPumpingValve.TurnValve(on, out _);
- break;
- case ValveType.Mfc1:
- _Mfc1Valve.TurnValve(on, out _);
- break;
- case ValveType.Mfc2:
- _Mfc2Valve.TurnValve(on, out _);
- break;
- case ValveType.Mfc3:
- _Mfc3Valve.TurnValve(on, out _);
- break;
- case ValveType.Mfc4:
- _Mfc4Valve.TurnValve(on, out _);
- break;
- case ValveType.Mfc5:
- _Mfc5Valve.TurnValve(on, out _);
- break;
- case ValveType.Mfc6:
- _Mfc6Valve.TurnValve(on, out _);
- break;
- case ValveType.Mfc7:
- _Mfc7Valve.TurnValve(on, out _);
- break;
- case ValveType.Mfc8:
- _Mfc8Valve.TurnValve(on, out _);
- break;
- default:
- throw new ArgumentOutOfRangeException($"Argument error {vlvType}-{on}");
- }
- }
- }
- }
|