diff --git a/Rs.SkyLine/Commom/Scheduling.cs b/Rs.SkyLine/Commom/Scheduling.cs
index c8ee1ca..ea16560 100644
--- a/Rs.SkyLine/Commom/Scheduling.cs
+++ b/Rs.SkyLine/Commom/Scheduling.cs
@@ -1145,6 +1145,10 @@ namespace Rs.MotionPlat.Commom
///
EndInput,
///
+ /// 流程结束, 发送 回复
+ ///
+ EndFlow,
+ ///
/// 取料失败, 排料机发送 回复, 里提供接下来该做的处理方式
///
TakingError,
diff --git a/Rs.SkyLine/Flow/MachineManage.cs b/Rs.SkyLine/Flow/MachineManage.cs
index 0faf72e..6c6621e 100644
--- a/Rs.SkyLine/Flow/MachineManage.cs
+++ b/Rs.SkyLine/Flow/MachineManage.cs
@@ -96,15 +96,41 @@ namespace Rs.MotionPlat.Flow
///
private ERunStatus RunStatus { get; set; } = ERunStatus.Stopped;
+ private ERunMode _RunMode = ERunMode.Manual;
///
/// 运行模式(Manual,Automatic)
///
- public ERunMode RunMode { get; set; } = ERunMode.Manual;
+ public ERunMode RunMode
+ {
+ get
+ {
+ return _RunMode;
+ }
+ set
+ {
+ if (_RunMode != value)
+ {
+ _RunMode = value;
+ TestCenter.Instance.ReportStatusToCenter(SchedulingStatusInfo.InfoType.RunMode);
+ }
+ }
+ }
+ private EInitializeState _InitializeState = EInitializeState.Uninitialized;
///
/// 初始化状态(Uninitialized,Initializing,Initialized)
///
- public EInitializeState InitializeState { get; set; } = EInitializeState.Uninitialized;
+ public EInitializeState InitializeState
+ {
+ get { return _InitializeState; }
+ set {
+ if(_InitializeState != value)
+ {
+ _InitializeState = value;
+ TestCenter.Instance.ReportStatusToCenter(SchedulingStatusInfo.InfoType.InitializeState);
+ }
+ }
+ }
///
/// 测试机状态
@@ -124,7 +150,13 @@ namespace Rs.MotionPlat.Flow
///
public void SetCenterMachineStatus(ERunStatus status)
{
- RunStatus= status;
+ if(RunStatus!=status)
+ {
+ RunStatus = status;
+ //send to center
+ TestCenter.Instance.ReportStatusToCenter(SchedulingStatusInfo.InfoType.RunStatus);
+ }
+
}
public void SetTesterState(TesterInfo _testerInfo)
diff --git a/Rs.SkyLine/Flow/TestCenter.cs b/Rs.SkyLine/Flow/TestCenter.cs
index ce58fe6..a8ecf94 100644
--- a/Rs.SkyLine/Flow/TestCenter.cs
+++ b/Rs.SkyLine/Flow/TestCenter.cs
@@ -26,7 +26,7 @@ namespace Rs.MotionPlat.Flow
public class TestCenter
{
TcpClientHelper client = new TcpClientHelper("127.0.0.1",2048);
- //TcpClientHelper client = new TcpClientHelper("192.168.31.120", 2048);
+ //TcpClientHelper client = new TcpClientHelper("192.168.110.162", 2048);
SchedulingResult schedulResult = new SchedulingResult();
SchedulingMaterial sm;
Dictionary alarmInfos = new Dictionary();
@@ -72,41 +72,13 @@ namespace Rs.MotionPlat.Flow
}
else if(ssi.Info== "Stopped")
{
- MessageQueue.Instance.Insert("收到中控停止命令,等待各个料盘就绪");
- Task.Run(() => {
- while(true)
- {
- bool bInput = (StockManager.Instance.GetStock(ETrayType.Input).Status == EStockTrayStatus.Loaded
- || StockManager.Instance.GetStock(ETrayType.Input).Status == EStockTrayStatus.Unloaded
- || StockManager.Instance.GetStock(ETrayType.Input).Status == EStockTrayStatus.Empty);
-
- bool bOk = (StockManager.Instance.GetStock(ETrayType.Ok).Status == EStockTrayStatus.Loaded
- || StockManager.Instance.GetStock(ETrayType.Ok).Status == EStockTrayStatus.Unloaded
- || StockManager.Instance.GetStock(ETrayType.Ok).Status == EStockTrayStatus.Empty);
-
- bool bNg = (StockManager.Instance.GetStock(ETrayType.Ng).Status == EStockTrayStatus.Loaded
- || StockManager.Instance.GetStock(ETrayType.Ng).Status == EStockTrayStatus.Unloaded
- || StockManager.Instance.GetStock(ETrayType.Ng).Status == EStockTrayStatus.Empty);
-
- bool bMulti = (StockManager.Instance.GetStock(ETrayType.Multi).Status == EStockTrayStatus.Loaded
- || StockManager.Instance.GetStock(ETrayType.Multi).Status == EStockTrayStatus.Unloaded
- || StockManager.Instance.GetStock(ETrayType.Multi).Status == EStockTrayStatus.Empty);
-
- bool bEmpty2 = (StockManager.Instance.GetStock(ETrayType.Empty2).Status == EStockTrayStatus.Loaded
- || StockManager.Instance.GetStock(ETrayType.Empty2).Status == EStockTrayStatus.Unloaded
- || StockManager.Instance.GetStock(ETrayType.Empty2).Status == EStockTrayStatus.Empty);
-
- if (bInput && bOk && bNg && bMulti && bEmpty2)
- {
- DischargeFlow.Instance.ResetScanNum();
- Ops.Stop();
- MessageQueue.Instance.Insert("料仓已全部就绪,设备停止运行");
- break;
- }
- Thread.Sleep(100);
- }
- });
+ MessageQueue.Instance.Insert($"收到中控停止命令:{ssi.Info}");
+ Ops.Stop();
}
+ //else if(ssi.Info== "EndFlow")//Stopped
+ //{
+
+ //}
//WorkEnvironment.Instance.Ready();
//Task.Run(() => {
// if (WorkEnvironment.Instance.EnvReadyOkEvent.WaitOne())
@@ -156,6 +128,10 @@ namespace Rs.MotionPlat.Flow
}
switch (eInstructioneInstruction)
{
+ case EInstruction.EndFlow:
+ MessageQueue.Instance.Insert("收到中控停止命令:EndFlow,等待各个料盘就绪");
+ EndFlow();
+ break;
case EInstruction.CheckTray:
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Busying);
ReportToTestCenter(schedule);
@@ -702,6 +678,46 @@ namespace Rs.MotionPlat.Flow
Send(content, Encoding.ASCII);
}
+
+
+ public void EndFlow()
+ {
+
+ Task.Run(() => {
+ while (true)
+ {
+ bool bInput = (StockManager.Instance.GetStock(ETrayType.Input).Status == EStockTrayStatus.Loaded
+ || StockManager.Instance.GetStock(ETrayType.Input).Status == EStockTrayStatus.Unloaded
+ || StockManager.Instance.GetStock(ETrayType.Input).Status == EStockTrayStatus.Empty);
+
+ bool bOk = (StockManager.Instance.GetStock(ETrayType.Ok).Status == EStockTrayStatus.Loaded
+ || StockManager.Instance.GetStock(ETrayType.Ok).Status == EStockTrayStatus.Unloaded
+ || StockManager.Instance.GetStock(ETrayType.Ok).Status == EStockTrayStatus.Empty);
+
+ bool bNg = (StockManager.Instance.GetStock(ETrayType.Ng).Status == EStockTrayStatus.Loaded
+ || StockManager.Instance.GetStock(ETrayType.Ng).Status == EStockTrayStatus.Unloaded
+ || StockManager.Instance.GetStock(ETrayType.Ng).Status == EStockTrayStatus.Empty);
+
+ bool bMulti = (StockManager.Instance.GetStock(ETrayType.Multi).Status == EStockTrayStatus.Loaded
+ || StockManager.Instance.GetStock(ETrayType.Multi).Status == EStockTrayStatus.Unloaded
+ || StockManager.Instance.GetStock(ETrayType.Multi).Status == EStockTrayStatus.Empty);
+
+ bool bEmpty2 = (StockManager.Instance.GetStock(ETrayType.Empty2).Status == EStockTrayStatus.Loaded
+ || StockManager.Instance.GetStock(ETrayType.Empty2).Status == EStockTrayStatus.Unloaded
+ || StockManager.Instance.GetStock(ETrayType.Empty2).Status == EStockTrayStatus.Empty);
+
+ if (bInput && bOk && bNg && bMulti && bEmpty2)
+ {
+ DischargeFlow.Instance.ResetScanNum();
+ Ops.Stop();
+ MessageQueue.Instance.Insert("料仓已全部就绪,设备停止运行");
+ break;
+ }
+ Thread.Sleep(100);
+ }
+ });
+ }
+
public void ShowMsgBox(SchedulingMessageBox msgBox)
{
@@ -753,5 +769,36 @@ namespace Rs.MotionPlat.Flow
}
ReportToTestCenter(tray);
}
+
+ public void ReportStatusToCenter(SchedulingStatusInfo.InfoType intoType)
+ {
+ SchedulingStatusInfo statusInto = new SchedulingStatusInfo();
+ statusInto.Type=intoType;
+ statusInto.Instruction = EInstruction.InquireStatus;
+ switch (intoType)
+ {
+ case SchedulingStatusInfo.InfoType.State:
+ statusInto.Info = MachineManage.Instance.GetLoadUnloadStatus().ToString();// ERunState.Waiting.ToString();
+ break;
+ case SchedulingStatusInfo.InfoType.RunStatus:
+ statusInto.Info = MachineManage.Instance.GetCenterRunStatus().ToString();// ERunStatus.Started.ToString();
+ break;
+ case SchedulingStatusInfo.InfoType.RunMode:
+ statusInto.Info = MachineManage.Instance.RunMode.ToString();
+ break;
+ case SchedulingStatusInfo.InfoType.InitializeState:
+ statusInto.Info = MachineManage.Instance.InitializeState.ToString();// EInitializeState.Initialized.ToString();
+ break;
+ case SchedulingStatusInfo.InfoType.AssignMode:
+ statusInto.Info = EAssignMode.Normal.ToString();
+ break;
+ case SchedulingStatusInfo.InfoType.TesterState:
+ statusInto.Info = JsonConvert.SerializeObject(MachineManage.Instance.GetTesterInfo());//.ToString();
+ break;
+ default:
+ break;
+ }
+ ReportToTestCenter(statusInto);
+ }
}
}
diff --git a/Rs.SkyLine/Properties/AssemblyInfo.cs b/Rs.SkyLine/Properties/AssemblyInfo.cs
index 68bbb8e..727abc8 100644
--- a/Rs.SkyLine/Properties/AssemblyInfo.cs
+++ b/Rs.SkyLine/Properties/AssemblyInfo.cs
@@ -31,6 +31,6 @@ using System.Runtime.InteropServices;
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
- [assembly: AssemblyVersion("3.20.24.54")]
+ [assembly: AssemblyVersion("3.20.24.55")]
//[assembly: AssemblyVersion("1.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]