| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 | using System.Diagnostics;using Venus_RT.Devices;using System;using Venus_Core;using Aitex.Core.RT.Routine;namespace Venus_RT.Modules.PMs{    class PMRoutineBase : ModuleRoutineBase    {        protected readonly JetPMBase _chamber;        public PMRoutineBase(JetPMBase chamber) : base(chamber.Module)        {            _chamber = chamber;        }        public bool CheckLid()        {            if (!_chamber.IsLidClosed)            {                this.Stop("Chamber 盖子必须关");                return false;            }            return true;        }        public bool CheckLidLoadLock()        {            if (_chamber.ChamberType == JetChamber.VenusSE || _chamber.ChamberType == JetChamber.VenusDE)                return true;            if (!_chamber.IsLidLoadlockClosed)            {                this.Stop("LoadLock 盖子必须关");                return false;            }            return true;        }        protected bool CheckSlitDoor()        {            if (!_chamber.IsSlitDoorClosed)            {                Stop("传送门必须关");                return false;            }            return true;        }        protected bool CheckDryPump()        {            if (!_chamber.IsPumpRunning)            {                Stop("干泵没有启动");                return false;            }            if (_chamber.HasPumpError)            {                Stop("干泵状态有错误");                return false;            }            return true;        }        protected bool CheckTurboPump()        {            if (!_chamber.IsTurboPumpRunning)            {                Stop("分子泵没有启动");                return false;            }            if (_chamber.HasTurboPumpError)            {                Stop("分子泵状态有错误");                return false;            }            return true;        }        protected bool CheckCDA()        {            if (!_chamber.IsCDA_OK)            {                Stop("CDA 压力信号不正确");                return false;            }            return true;        }        public bool CheckATM()        {            if (_chamber.IsATM)            {                this.Stop("Chamber 是ATM状态");                return false;            }            return true;        }        protected bool CloseAllValves(int? delayTime = null)        {            Notify("关闭所有的阀门");            _chamber.CloseValves(delayTime);            return true;        }        protected bool TurnValve(ValveType vlv, bool bOpen)        {            _chamber.OpenValve(vlv, bOpen);            Notify($"{(bOpen ? "打开" : "关闭")} {vlv} 阀");            return true;        }        protected bool CheckValve(ValveType vlv, bool bOpen)        {            if (vlv == ValveType.FastPump)                return _chamber.IsFastPumpOpened == bOpen;            else if (vlv == ValveType.SoftPump)                return _chamber.IsSoftPumpOpened == bOpen;            return true;        }        protected bool SetCoolantTemp(double target, double offset)        {            if (!_chamber.CheckChillerStatus())            {                Stop("Chiller status error");                return false;            }            if (_chamber.CoolantOutletTempFB > target)            {                Notify($"水冷当前温度{_chamber.CoolantOutletTempFB} ℃, 大于目标 {target.ToString()} ℃");            }            _chamber.HeatChiller(ChillerType.Chiller,target, offset);            Notify($"检查水冷温度值,当前温度{_chamber.CoolantOutletTempFB} ℃, 目标 {target.ToString()} ℃");            return true;        }        protected bool CheckCoolantTemp(double target, double tolerance)        {            return Math.Abs(_chamber.CoolantOutletTempFB - target) <= tolerance;        }           }}
 |