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#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
}
}
}