using Rs.MotionPlat.Commom; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Rs.MotionPlat.Flow { /// /// 测试状态 /// public enum ETestStatus { /// /// 空闲 /// Idle, /// /// 测试中 /// Testing, /// /// 测试完成 /// Finished } public enum EMachineStatus { /// /// 未初始化 /// NotInit, /// /// 未回原 /// NotHomed, /// /// 回原中 /// Homing, /// /// 回零失败 /// HomeFail, /// /// 回原完成 /// Homed, /// /// 工作中 /// Working, /// /// 暂停 /// Stop, /// /// 报警中 /// Warning, /// /// 急停中 /// EStop } public class MachineManage { private static MachineManage instace; public static MachineManage Instance { get { if (instace == null) instace = new MachineManage(); return instace; } } private MachineManage() { } public EMachineStatus MachineStatus = EMachineStatus.NotInit; public ETestStatus TestStatus = ETestStatus.Idle; /// /// 上下料状态(Waiting,Busying,Unloading,Error,Interrupt,) /// private ERunState RunState { get; set; } = ERunState.Interrupt; /// /// 设备运行状态(Started,Stopped,InAlarm,EMGStop) /// private ERunStatus RunStatus { get; set; } = ERunStatus.Stopped; /// /// 运行模式(Manual,Automatic) /// public ERunMode RunMode { get; set; } = ERunMode.Manual; /// /// 初始化状态(Uninitialized,Initializing,Initialized) /// public EInitializeState InitializeState { get; set; } = EInitializeState.Uninitialized; /// /// 测试机状态 /// private TesterInfo testerInfo; /// /// 物料分配模式(正常或空跑) /// public EAssignMode AssignMode { get; set; } = EAssignMode.Normal; public bool NeedRestoreMove { get; set; } = false; /// /// 设置返回中控的运行状态 /// /// public void SetCenterMachineStatus(ERunStatus status) { RunStatus= status; } public void SetTesterState(TesterInfo _testerInfo) { testerInfo = _testerInfo; } public TesterInfo GetTesterInfo() { return testerInfo; } /// /// 获取中控运行状态 /// /// public ERunStatus GetCenterRunStatus() { return RunStatus; } /// /// 设置本地运行状态 /// /// public void SetLocalMachineStatus(EMachineStatus status) { MachineStatus= status; } /// /// 设置上下料的状态 /// /// public void SetLoadUnloadStatus(ERunState status) { RunState= status; } /// /// 获取上下料的状态 /// /// public ERunState GetLoadUnloadStatus() { return RunState; } } }