| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 | using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using Aitex.Core.RT.DataCenter;using Aitex.Core.RT.Device;using Aitex.Core.RT.SCCore;using MECF.Framework.Common.Equipment;using MECF.Framework.Common.Schedulers;using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.TMs;namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs{    public class PM : BaseDevice, IDevice, IPM    {        //如果true,robot采用extend, retract指令        //如果false,robot采用pick,place指令        public  bool IsActiveHandoff { get; set; }        //如果true,robot调用收尾PostTransfer        public bool IsNeedPostTransfer { get; set; }        public virtual double ChamberPressure { get; }        public virtual double ChamberPressurePressure { get; }        public virtual bool IsError { get; }        public virtual bool IsIdle { get; }        public bool IsInstalled { get; set; }        public PM(string module) : base(module, module, module, module)        {            IsInstalled = false;        }        public virtual bool Initialize()        {            DATA.Subscribe($"{Name}.IsAtm", () => { return CheckAtm(); });            DATA.Subscribe($"{Name}.IsVacuum", () => { return CheckVacuum(); });            DATA.Subscribe($"{Name}.IsCDAOK", () => { return CheckCDAOK(); });            DATA.Subscribe($"{Name}.IsCoolantInletTCOK", () => { return CheckCoolantInletTCOK(); });            DATA.Subscribe($"{Name}.IsCoolantOutletTCOK", () => { return CheckCoolantOutletTCOK(); });            DATA.Subscribe($"{Name}.IsArmNotExtend", () => { return CheckArmExtendOK(); });            DATA.Subscribe($"{Name}.IsWaterLeak", () => { return CheckWaterLeak(); });            DATA.Subscribe($"{Name}.ChamberPressure", () => ChamberPressure);            IsInstalled = true;            return true;        }        public virtual bool CheckSlitDoorOpen(ModuleName moduleName)        {            return false;        }        public virtual bool CheckSlitDoorClose(ModuleName moduleName)        {            return false;        }        public virtual bool CheckAtm()        {            return false;        }        public virtual bool CheckWaterLeak()        {            return false;        }        public virtual bool CheckCDAOK()        {            return false;        }        public virtual bool CheckCoolantInletTCOK()        {            return false;        }        public virtual bool CheckCoolantOutletTCOK()        {            return false;        }        public virtual bool CheckArmExtendOK()        {            return false;        }        public virtual bool CheckVacuum()        {            return false;        }        public virtual bool CheckHandoff(EnumTransferType type)        {            return false;        }        public virtual bool CheckEnableTransfer(EnumTransferType type)        {            return false;        }        public virtual void Monitor()        {        }        public virtual void Terminate()        {        }        public virtual void Reset()        {        }        public virtual void PrepareTransfer(EnumTransferType type)        {        }        public virtual void Home()        {                     }        public virtual void PostTransfer(EnumTransferType type)        {        }        public virtual void TransferHandoff(EnumTransferType type)        {        }         public virtual void StartProcess(string recipeName, string recipeContent)        {        }    }}
 |