|
|
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
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 测试状态
|
|
|
/// </summary>
|
|
|
public enum ETestStatus
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 空闲
|
|
|
/// </summary>
|
|
|
Idle,
|
|
|
/// <summary>
|
|
|
/// 测试中
|
|
|
/// </summary>
|
|
|
Testing,
|
|
|
/// <summary>
|
|
|
/// 测试完成
|
|
|
/// </summary>
|
|
|
Finished
|
|
|
}
|
|
|
|
|
|
public enum EMachineStatus
|
|
|
{
|
|
|
/// <summary>
|
|
|
/// 未初始化
|
|
|
/// </summary>
|
|
|
NotInit,
|
|
|
/// <summary>
|
|
|
/// 未回原
|
|
|
/// </summary>
|
|
|
NotHomed,
|
|
|
/// <summary>
|
|
|
/// 回原中
|
|
|
/// </summary>
|
|
|
Homing,
|
|
|
/// <summary>
|
|
|
/// 回零失败
|
|
|
/// </summary>
|
|
|
HomeFail,
|
|
|
/// <summary>
|
|
|
/// 回原完成
|
|
|
/// </summary>
|
|
|
Homed,
|
|
|
/// <summary>
|
|
|
/// 工作中
|
|
|
/// </summary>
|
|
|
Working,
|
|
|
/// <summary>
|
|
|
/// 暂停
|
|
|
/// </summary>
|
|
|
Stop,
|
|
|
/// <summary>
|
|
|
/// 报警中
|
|
|
/// </summary>
|
|
|
Warning,
|
|
|
/// <summary>
|
|
|
/// 急停中
|
|
|
/// </summary>
|
|
|
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;
|
|
|
|
|
|
/// <summary>
|
|
|
/// 上下料状态(Waiting,Busying,Unloading,Error,Interrupt,)
|
|
|
/// </summary>
|
|
|
private ERunState RunState { get; set; } = ERunState.Interrupt;
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设备运行状态(Started,Stopped,InAlarm,EMGStop)
|
|
|
/// </summary>
|
|
|
private ERunStatus RunStatus { get; set; } = ERunStatus.Stopped;
|
|
|
|
|
|
/// <summary>
|
|
|
/// 运行模式(Manual,Automatic)
|
|
|
/// </summary>
|
|
|
public ERunMode RunMode { get; set; } = ERunMode.Manual;
|
|
|
|
|
|
/// <summary>
|
|
|
/// 初始化状态(Uninitialized,Initializing,Initialized)
|
|
|
/// </summary>
|
|
|
public EInitializeState InitializeState { get; set; } = EInitializeState.Uninitialized;
|
|
|
|
|
|
/// <summary>
|
|
|
/// 测试机状态
|
|
|
/// </summary>
|
|
|
private TesterInfo testerInfo;
|
|
|
|
|
|
/// <summary>
|
|
|
/// 物料分配模式(正常或空跑)
|
|
|
/// </summary>
|
|
|
public EAssignMode AssignMode { get; set; } = EAssignMode.Normal;
|
|
|
|
|
|
public bool NeedRestoreMove { get; set; } = false;
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置返回中控的运行状态
|
|
|
/// </summary>
|
|
|
/// <param name="status"></param>
|
|
|
public void SetCenterMachineStatus(ERunStatus status)
|
|
|
{
|
|
|
RunStatus= status;
|
|
|
}
|
|
|
|
|
|
public void SetTesterState(TesterInfo _testerInfo)
|
|
|
{
|
|
|
testerInfo = _testerInfo;
|
|
|
}
|
|
|
|
|
|
public TesterInfo GetTesterInfo() {
|
|
|
return testerInfo;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取中控运行状态
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public ERunStatus GetCenterRunStatus()
|
|
|
{
|
|
|
return RunStatus;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置本地运行状态
|
|
|
/// </summary>
|
|
|
/// <param name="status"></param>
|
|
|
public void SetLocalMachineStatus(EMachineStatus status)
|
|
|
{
|
|
|
MachineStatus= status;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 设置上下料的状态
|
|
|
/// </summary>
|
|
|
/// <param name="status"></param>
|
|
|
public void SetLoadUnloadStatus(ERunState status)
|
|
|
{
|
|
|
RunState= status;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取上下料的状态
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public ERunState GetLoadUnloadStatus()
|
|
|
{
|
|
|
return RunState;
|
|
|
}
|
|
|
}
|
|
|
}
|