You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

176 lines
4.2 KiB
C#

11 months ago
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>
/// 上下料状态WaitingBusyingUnloadingErrorInterrupt
/// </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>
/// 初始化状态UninitializedInitializingInitialized
/// </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;
}
}
}