|
|
@ -1,6 +1,5 @@
|
|
|
|
using Admin.Core.Common;
|
|
|
|
using Admin.Core.Common;
|
|
|
|
using Admin.Core.IService;
|
|
|
|
using Admin.Core.IService;
|
|
|
|
using Admin.Core.Model.Model_New;
|
|
|
|
|
|
|
|
using Admin.Core.Model;
|
|
|
|
using Admin.Core.Model;
|
|
|
|
using Admin.Core.Model.ViewModels;
|
|
|
|
using Admin.Core.Model.ViewModels;
|
|
|
|
using System.Text;
|
|
|
|
using System.Text;
|
|
|
@ -73,6 +72,7 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
bool sideFlag = true;//前板标识
|
|
|
|
bool sideFlag = true;//前板标识
|
|
|
|
bool statusFlag = true;//计划任务状态标识
|
|
|
|
bool statusFlag = true;//计划任务状态标识
|
|
|
|
bool complatePlanFlag = true;//计划完成
|
|
|
|
bool complatePlanFlag = true;//计划完成
|
|
|
|
|
|
|
|
|
|
|
|
#region 构造函数
|
|
|
|
#region 构造函数
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// 构造函数
|
|
|
|
/// 构造函数
|
|
|
@ -214,7 +214,6 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
SendPlanTaskToSidPanel(planInfo, obj_sidePanel, smSyncModel.SmProductId.ObjToInt());
|
|
|
|
SendPlanTaskToSidPanel(planInfo, obj_sidePanel, smSyncModel.SmProductId.ObjToInt());
|
|
|
|
|
|
|
|
|
|
|
|
//UpdateSidPanelPlanTaskByComplate(planInfo);
|
|
|
|
//UpdateSidPanelPlanTaskByComplate(planInfo);
|
|
|
|
|
|
|
|
|
|
|
|
// sideFlag = false;
|
|
|
|
// sideFlag = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (planInfo.PlanType == 1)
|
|
|
|
if (planInfo.PlanType == 1)
|
|
|
@ -299,9 +298,17 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
#region PLC反馈信号逻辑处理
|
|
|
|
#region PLC反馈信号逻辑处理
|
|
|
|
//循环读取PLC应答信号,PLC应答后复位应答信号、更新计划状态为执行中
|
|
|
|
//循环读取PLC应答信号,PLC应答后复位应答信号、更新计划状态为执行中
|
|
|
|
bool isFlag = true;
|
|
|
|
bool isFlag = true;
|
|
|
|
|
|
|
|
bool isTaskFlag = true;
|
|
|
|
DateTime startTime = DateTime.Now;
|
|
|
|
DateTime startTime = DateTime.Now;
|
|
|
|
do
|
|
|
|
do
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
//判断当前是否有手动下发的任务,有退出当前方法
|
|
|
|
|
|
|
|
isTaskFlag = GetNewTask(planInfo.ObjId);
|
|
|
|
|
|
|
|
if (isTaskFlag)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int answer = obj_sidePanel.plc.ReadInt16("D6021");
|
|
|
|
int answer = obj_sidePanel.plc.ReadInt16("D6021");
|
|
|
|
if (answer == 2)
|
|
|
|
if (answer == 2)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -310,10 +317,15 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
RefreshExecInfoEvent?.Invoke($"计划【{planInfo.TaskCode}】,收到前板板设备应答信号,复位应答地址", "White");
|
|
|
|
RefreshExecInfoEvent?.Invoke($"计划【{planInfo.TaskCode}】,收到前板板设备应答信号,复位应答地址", "White");
|
|
|
|
startTime = DateTime.Now;
|
|
|
|
startTime = DateTime.Now;
|
|
|
|
isFlag = false;
|
|
|
|
isFlag = false;
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
Thread.Sleep(3000);
|
|
|
|
} while (isFlag);
|
|
|
|
} while (isFlag);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isTaskFlag) return ;
|
|
|
|
|
|
|
|
|
|
|
|
//更新计划状态为2执行中
|
|
|
|
//更新计划状态为2执行中
|
|
|
|
planInfo.ExecuteStatus = 2;
|
|
|
|
planInfo.ExecuteStatus = 2;
|
|
|
|
bool result = _executePlanInfoServices.UpdateSheetMetalExecutePlanInfo(planInfo.ObjId, planInfo.ExecuteStatus, startTime).Result;
|
|
|
|
bool result = _executePlanInfoServices.UpdateSheetMetalExecutePlanInfo(planInfo.ObjId, planInfo.ExecuteStatus, startTime).Result;
|
|
|
@ -595,9 +607,17 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
#region PLC反馈信号逻辑处理
|
|
|
|
#region PLC反馈信号逻辑处理
|
|
|
|
//循环读取PLC应答信号,PLC应答后复位应答信号、更新计划状态为执行中
|
|
|
|
//循环读取PLC应答信号,PLC应答后复位应答信号、更新计划状态为执行中
|
|
|
|
bool isFlag = true;
|
|
|
|
bool isFlag = true;
|
|
|
|
|
|
|
|
bool isTaskFlag = true;
|
|
|
|
DateTime startTime = DateTime.Now;
|
|
|
|
DateTime startTime = DateTime.Now;
|
|
|
|
do
|
|
|
|
do
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
//判断当前是否有手动下发的任务,有退出当前方法
|
|
|
|
|
|
|
|
isTaskFlag = GetNewTask(planInfo.ObjId);
|
|
|
|
|
|
|
|
if (isTaskFlag)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int backPalnelAnswer = obj_backPanel.plc.ReadInt16("D4021");
|
|
|
|
int backPalnelAnswer = obj_backPanel.plc.ReadInt16("D4021");
|
|
|
|
Console.WriteLine($"【{DateTime.Now.ToString("HH:m:s")}】===>应答信号:{backPalnelAnswer}");
|
|
|
|
Console.WriteLine($"【{DateTime.Now.ToString("HH:m:s")}】===>应答信号:{backPalnelAnswer}");
|
|
|
|
if (backPalnelAnswer == 2)
|
|
|
|
if (backPalnelAnswer == 2)
|
|
|
@ -611,6 +631,8 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
Thread.Sleep(2000);
|
|
|
|
} while (isFlag);
|
|
|
|
} while (isFlag);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isTaskFlag) return;
|
|
|
|
|
|
|
|
|
|
|
|
//更新计划状态为2执行中
|
|
|
|
//更新计划状态为2执行中
|
|
|
|
planInfo.ExecuteStatus = 2;
|
|
|
|
planInfo.ExecuteStatus = 2;
|
|
|
|
bool result = _executePlanInfoServices.UpdateSheetMetalExecutePlanInfo(planInfo.ObjId, planInfo.ExecuteStatus, startTime).Result;
|
|
|
|
bool result = _executePlanInfoServices.UpdateSheetMetalExecutePlanInfo(planInfo.ObjId, planInfo.ExecuteStatus, startTime).Result;
|
|
|
@ -1495,7 +1517,7 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
complatePlanFlag = false;
|
|
|
|
complatePlanFlag = false;
|
|
|
|
try
|
|
|
|
try
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var planInfoList = _executePlanInfoServices.QueryAsync(d => d.ProductLineCode.Contains(stationCode) && d.PlanAmount != d.CompleteAmount).Result;
|
|
|
|
var planInfoList = _executePlanInfoServices.QueryAsync(d => d.ProductLineCode.Contains(stationCode) && d.PlanAmount > d.CompleteAmount).Result;
|
|
|
|
if (planInfoList == null || planInfoList.Count == 0) return;
|
|
|
|
if (planInfoList == null || planInfoList.Count == 0) return;
|
|
|
|
|
|
|
|
|
|
|
|
var list = from d in planInfoList
|
|
|
|
var list = from d in planInfoList
|
|
|
@ -1999,5 +2021,16 @@ namespace Aucma.Core.SheetMetalTasks
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public bool GetNewTask(int Id)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
List<SheetMetaSendPlanInfoView> planInfoList = _executePlanInfoServices.QuerySheetMetalSendPlanData("1001").Result;
|
|
|
|
|
|
|
|
if (planInfoList == null || planInfoList.Count == 0) return false;
|
|
|
|
|
|
|
|
var task= planInfoList.FirstOrDefault(d=>d.ExecuteStatus==2&& d.ObjId!= Id);
|
|
|
|
|
|
|
|
if (task == null) return false;
|
|
|
|
|
|
|
|
else return true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|