@@ -12,45 +12,48 @@ namespace BPASmartClient.CustomResource.Pages.Model | |||
{ | |||
} | |||
/// <summary> | |||
/// 1 号滚筒线故障 | |||
/// </summary> | |||
[Alarm("【1】号滚筒线运行故障", AlarmTriggerType.Rising, AlarmLevel.一般报警)] | |||
[Alarm("【1】号滚筒线运行故障", AlarmTriggerType.Rising, AlarmLevel.严重报警)] | |||
public ushort LOneRollerTrouble { get; set; } | |||
/// <summary> | |||
/// 2 号滚筒线故障 | |||
/// </summary> | |||
[Alarm("【2】号滚筒线运行故障", AlarmTriggerType.Rising, AlarmLevel.一般报警)] | |||
[Alarm("【2】号滚筒线运行故障", AlarmTriggerType.Rising, AlarmLevel.严重报警)] | |||
public ushort LTwoRollerTrouble { get; set; } | |||
/// <summary> | |||
/// 3 号滚筒线故障 | |||
/// </summary> | |||
[Alarm("【3】号滚筒线运行故障", AlarmTriggerType.Rising, AlarmLevel.一般报警)] | |||
[Alarm("【3】号滚筒线运行故障", AlarmTriggerType.Rising, AlarmLevel.严重报警)] | |||
public ushort LThreeRollerTrouble { get; set; } | |||
/// <summary> | |||
/// 1 号炒锅滚筒运行故障 | |||
/// </summary> | |||
[Alarm("【1】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.一般报警)] | |||
[Alarm("【1】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.严重报警)] | |||
public ushort FryPotOneRollerTrouble { get; set; } | |||
/// <summary> | |||
/// 2 号炒锅滚筒运行故障 | |||
/// </summary> | |||
[Alarm("【2】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.一般报警)] | |||
[Alarm("【2】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.严重报警)] | |||
public ushort FryPotTwoRollerTrouble { get; set; } | |||
/// <summary> | |||
/// 3 号炒锅滚筒运行故障 | |||
/// </summary> | |||
[Alarm("【3】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.一般报警)] | |||
[Alarm("【3】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.严重报警)] | |||
public ushort FryPotThreeRollerTrouble { get; set; } | |||
/// <summary> | |||
/// 4 号炒锅滚筒运行故障 | |||
/// </summary> | |||
[Alarm("【4】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.一般报警)] | |||
[Alarm("【4】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.严重报警)] | |||
public ushort FryPotFourRollerTrouble { get; set; } | |||
/// <summary> | |||
/// 5 号炒锅滚筒运行故障 | |||
/// </summary> | |||
[Alarm("【5】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.一般报警)] | |||
[Alarm("【5】号炒锅滚筒运行故障", AlarmTriggerType.Rising, AlarmLevel.严重报警)] | |||
public ushort FryPotFiveRollerTrouble { get; set; } | |||
} | |||
} |
@@ -39,7 +39,7 @@ namespace FryPot_DosingSystem | |||
mv.Show(); | |||
DeviceOperate deviceOperate = DeviceOperate.GetInstance;//开启实时PLC数据读取 | |||
DosingLogicControl logigControl = DosingLogicControl.GetInstance;//开启逻辑控制任务程序 | |||
HubHelper.GetInstance.Connect("192.168.1.14", 8089); | |||
HubHelper.GetInstance.Connect("192.168.1.40", 8089); | |||
AlarmHelper<AlarmInfo>.Init(); | |||
} | |||
else | |||
@@ -217,6 +217,39 @@ namespace FryPot_DosingSystem.Control | |||
MessageLog.GetInstance.ShowRunLog($"提示:AGV任务下发失败,错误码:{errorCode}"); | |||
} | |||
}), "AgvDebug"); | |||
ActionManage.GetInstance.Register(() => | |||
{ | |||
MessageLog.GetInstance.ShowRunLog("清洗台卸桶完成"); | |||
}, "AgvArriveCleanPlateLocCom"); | |||
ActionManage.GetInstance.Register(() => | |||
{ | |||
MessageLog.GetInstance.ShowRunLog("4号线卸桶完成"); | |||
}, "AgvArriveLineFourLocCom"); | |||
ActionManage.GetInstance.Register(() => | |||
{ | |||
MessageLog.GetInstance.ShowRunLog("清洗台空桶装载完成"); | |||
}, "AgvArriveCleanPlateLocLoadCom"); | |||
ActionManage.GetInstance.Register(() => | |||
{ | |||
globalVar.rollerLineOne.RecipeCompleteSingle = 1; | |||
}, "LineOneRecipeComSignal"); | |||
ActionManage.GetInstance.Register(() => | |||
{ | |||
globalVar.rollerLineTwo.RecipeCompleteSingle = 1; | |||
}, "LineTwoRecipeComSignal"); | |||
ActionManage.GetInstance.Register(() => | |||
{ | |||
globalVar.rollerLineThree.RecipeCompleteSingle = 1; | |||
}, "LineThreeRecipeComSignal"); | |||
ActionManage.GetInstance.Register(new Action(() => | |||
{ | |||
globalVar.agvArriveLineOneLoadCom = true; | |||
@@ -641,7 +674,6 @@ namespace FryPot_DosingSystem.Control | |||
Upstreamrequest objData = JsonConvert.DeserializeObject<Upstreamrequest>(obj.ToString()); | |||
if (objData != null) | |||
{ | |||
#region 线体到炒锅 | |||
//线体1请求上下料 | |||
if (objData.robotJobId == LOnerobotJobId && objData.command == "LOAD")//同一任务号且处于上料阶段,AGV请求上料 | |||
@@ -1027,24 +1059,28 @@ namespace FryPot_DosingSystem.Control | |||
if (objData.state == "DONE" && objData.robotJobId == LSevenrobotJobId && objData.jobData.startPointCode == "" && objData.jobData.targetPointCode == "")//指定下料位置下料完成,指从线体1到清戏台空桶下料 | |||
{ | |||
MessageLog.GetInstance.ShowRunLog("清洗台卸桶完成"); | |||
AgvViewModel.GetInstance().Set小车运动(4, AgvViewModel.GetInstance().GetCommandValue("hj")); | |||
AgvViewModel.GetInstance().Set小车停止(4); | |||
AgvViewModel.GetInstance().Set停车桩(4, IsBool.Yes); | |||
} | |||
if (objData.state == "DONE" && objData.robotJobId == LEightrobotJobId && objData.jobData.startPointCode == "" && objData.jobData.targetPointCode == "")//指定下料位置下料完成,指从线体2到清戏台空桶下料 | |||
{ | |||
MessageLog.GetInstance.ShowRunLog("清洗台卸桶完成"); | |||
AgvViewModel.GetInstance().Set小车运动(4, AgvViewModel.GetInstance().GetCommandValue("hj")); | |||
AgvViewModel.GetInstance().Set小车停止(4); | |||
AgvViewModel.GetInstance().Set停车桩(4, IsBool.Yes); | |||
} | |||
if (objData.state == "DONE" && objData.robotJobId == LNinerobotJobId && objData.jobData.startPointCode == "" && objData.jobData.targetPointCode == "")//指定下料位置下料完成,指从线体3到清戏台空桶下料 | |||
{ | |||
MessageLog.GetInstance.ShowRunLog("清洗台卸桶完成"); | |||
AgvViewModel.GetInstance().Set小车运动(4, AgvViewModel.GetInstance().GetCommandValue("hj")); | |||
AgvViewModel.GetInstance().Set小车停止(4); | |||
AgvViewModel.GetInstance().Set停车桩(4, IsBool.Yes); | |||
} | |||
if (objData.state == "ROLLER_LOAD_FINISH" && objData.robotJobId == LTenrobotJobId && objData.jobData.startPointCode == "" && objData.jobData.targetPointCode == "")//指定上料位置上料完成,指清戏台空桶到上料 | |||
{ | |||
MessageLog.GetInstance.ShowRunLog("清洗台空桶装载完成"); | |||
AgvViewModel.GetInstance().Set小车是否承载物品(4, IsBool.OnllYes); | |||
AgvViewModel.GetInstance().Set小车运动(4, CartMotionTrajectory.hs_4);//去四号空桶线 | |||
@@ -1065,6 +1101,7 @@ namespace FryPot_DosingSystem.Control | |||
if (objData.state == "DONE" && objData.robotJobId == LTenrobotJobId && objData.jobData.startPointCode == "" && objData.jobData.targetPointCode == "")//指定下料位置下料完成,指清戏台空桶到线体4下料 | |||
{ | |||
MessageLog.GetInstance.ShowRunLog("【4】号线空桶回桶完成"); | |||
AgvViewModel.GetInstance().Set小车运动(4, AgvViewModel.GetInstance().GetCommandValue("hj")); | |||
AgvViewModel.GetInstance().Set小车停止(4); | |||
AgvViewModel.GetInstance().Set停车桩(4, IsBool.Yes); | |||
@@ -1355,6 +1392,11 @@ namespace FryPot_DosingSystem.Control | |||
globalVar.CleadBarrelEnterSingle = data[0]; | |||
})); | |||
GetAddressData("2076", new Action<ushort[]>(data => | |||
{ | |||
globalVar.CleanComplete = data[0];//洗桶出桶agv呼叫信号 | |||
})); | |||
GetAddressData("D2077", new Action<ushort[]>(data => | |||
{ | |||
@@ -1959,10 +2001,11 @@ namespace FryPot_DosingSystem.Control | |||
if (globalVar.agvArriveCleanLoad) | |||
{ | |||
globalVar.agvArriveCleanLoad = false; | |||
WritePlcData("D1066", 1);//AGV空桶出桶就位信号下发PlC | |||
MessageLog.GetInstance.ShowRunLog("AGV到达清洗台空桶上料位置"); | |||
MessageLog.GetInstance.ShowRunLog("清洗台空桶装载完成"); | |||
// MessageLog.GetInstance.ShowRunLog("清洗台空桶装载完成"); | |||
AgvViewModel.GetInstance().SetCleanRollerNum(--CleanNum); | |||
AgvViewModel.GetInstance().Set小车是否承载物品(4,IsBool.OnllYes); | |||
AgvViewModel.GetInstance().Set小车是否承载物品(4, IsBool.OnllYes); | |||
AgvViewModel.GetInstance().Set小车运动(4, CartMotionTrajectory.qxt_4); | |||
} | |||
} | |||
@@ -2055,7 +2098,7 @@ namespace FryPot_DosingSystem.Control | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// AGV到达清洗台下料位置 | |||
/// </summary> | |||
@@ -2065,12 +2108,13 @@ namespace FryPot_DosingSystem.Control | |||
{ | |||
globalVar.agvArriveCleanUnLoad = false; | |||
MessageLog.GetInstance.ShowRunLog("空桶到达清洗位置,准备卸桶"); | |||
MessageLog.GetInstance.ShowRunLog("卸桶完成"); | |||
AgvViewModel.GetInstance().Set小车是否承载物品(4, IsBool.No); | |||
AgvViewModel.GetInstance().Set小车运动(4, CartMotionTrajectory.qxt_hj); | |||
AgvViewModel.GetInstance().Set停车桩(4, IsBool.Yes); | |||
AgvViewModel.GetInstance().SetCleanRollerNum(++CleanNum); | |||
//plc交互 | |||
WritePlcData("D1065", 1);//AGV空桶洗桶就位信号下发PLC | |||
// MessageLog.GetInstance.ShowRunLog("卸桶完成"); | |||
} | |||
} | |||
@@ -2100,8 +2144,9 @@ namespace FryPot_DosingSystem.Control | |||
/// <exception cref="NotImplementedException"></exception> | |||
private void LThreeRecipeDataToPlc() | |||
{ | |||
if (LThreeOutputMaterialQuene.Count == 0 && LThreeInputMaterialQuene.Count == 0 && !LThreeErrorRecipe) | |||
if (LThreeOutputMaterialQuene.Count == 0 && LThreeInputMaterialQuene.Count == 0 && !LThreeErrorRecipe&&globalVar.rollerLineThree.RecipeCompleteSingle==1) | |||
{ | |||
globalVar.rollerLineThree.RecipeComMidSingle = 1; | |||
if (globalVar.LThreeCurrentRecipeName != string.Empty) | |||
{ | |||
MessageLog.GetInstance.ShowUserLog($"【3】号滚筒线【{globalVar.LThreeCurrentRecipeName}】 配方制作完成"); | |||
@@ -2120,7 +2165,7 @@ namespace FryPot_DosingSystem.Control | |||
Task.Run(() => { Thread.Sleep(1500); fryThreeRecipe = string.Empty; }); | |||
} | |||
} | |||
if (LThreeRecipeQuene.Count > 0 && LThreeOutputMaterialQuene.Count == 0 && LThreeInputMaterialQuene.Count == 0)//后续添加其它限制条件 | |||
if (LThreeRecipeQuene.Count > 0 && LThreeOutputMaterialQuene.Count == 0 && LThreeInputMaterialQuene.Count == 0&&globalVar.rollerLineThree.RecipeComMidSingle==1)//后续添加其它限制条件 | |||
{ | |||
Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_3.goodsName = string.Empty; })); | |||
Application.Current.Dispatcher.Invoke(new Action(() => { AgvViewModel.GetInstance().wokModel_3.workflows = new ObservableCollection<WorkflowModel>(); })); | |||
@@ -2161,7 +2206,7 @@ namespace FryPot_DosingSystem.Control | |||
} | |||
} | |||
DeviceOperate.GetInstance.WritePlcData("D1043", (ushort)result.materialCollection.Count);//发送3号滚筒线工序数据 | |||
//AgvViewModel.GetInstance().Set启动或停止炒锅(globalVar.LThreeFryPotSerial, IsRun.Stop); | |||
globalVar.rollerLineThree.RecipeComMidSingle = 0; | |||
} | |||
} | |||
@@ -2174,8 +2219,9 @@ namespace FryPot_DosingSystem.Control | |||
/// <exception cref="NotImplementedException"></exception> | |||
private void LTwoRecipeDataToPlc() | |||
{ | |||
if (LTwoOutputMaterialQuene.Count == 0 && LTwoInputMaterialQuene.Count == 0 && !LTwoErrorRecipe) | |||
if (LTwoOutputMaterialQuene.Count == 0 && LTwoInputMaterialQuene.Count == 0 && !LTwoErrorRecipe&&globalVar.rollerLineTwo.RecipeCompleteSingle == 1) | |||
{ | |||
globalVar.rollerLineTwo.RecipeComMidSingle = 1; | |||
if (globalVar.LTwoCurrentRecipeName != string.Empty) | |||
{ | |||
MessageLog.GetInstance.ShowUserLog($"【2】号滚筒线【{globalVar.LTwoCurrentRecipeName}】 配方制作完成"); | |||
@@ -2206,7 +2252,7 @@ namespace FryPot_DosingSystem.Control | |||
} | |||
} | |||
if (LTwoRecipeQuene.Count > 0 && LTwoOutputMaterialQuene.Count == 0 && LTwoInputMaterialQuene.Count == 0)//后续添加其它限制条件 | |||
if (LTwoRecipeQuene.Count > 0 && LTwoOutputMaterialQuene.Count == 0 && LTwoInputMaterialQuene.Count == 0 && globalVar.rollerLineTwo.RecipeComMidSingle== 1)//后续添加其它限制条件 | |||
{ | |||
if (globalVar.LTwoFryPotSerial == 2) | |||
{ | |||
@@ -2263,7 +2309,7 @@ namespace FryPot_DosingSystem.Control | |||
} | |||
} | |||
DeviceOperate.GetInstance.WritePlcData("D1026", (ushort)result.materialCollection.Count);//发送2号滚筒线工序数据 | |||
globalVar.rollerLineTwo.RecipeComMidSingle = 0; | |||
} | |||
} | |||
@@ -2276,8 +2322,9 @@ namespace FryPot_DosingSystem.Control | |||
/// </summary> | |||
private void LOneRecipeDataToPlc() | |||
{ | |||
if (OutputMaterialQuene.Count == 0 && InputMaterialQuene.Count == 0 && !ErrorRecipe) | |||
if (OutputMaterialQuene.Count == 0 && InputMaterialQuene.Count == 0 && !ErrorRecipe&&globalVar.rollerLineOne.RecipeCompleteSingle==1) | |||
{ | |||
globalVar.rollerLineOne.RecipeComMidSingle = 1; | |||
if (globalVar.LOneCurrentRecipeName != string.Empty) | |||
{ | |||
MessageLog.GetInstance.ShowUserLog($"【1】号滚筒线【{globalVar.LOneCurrentRecipeName}】 配方制作完成"); | |||
@@ -2307,7 +2354,7 @@ namespace FryPot_DosingSystem.Control | |||
Task.Run(() => { Thread.Sleep(1500); fryOneRecipe = string.Empty; fryFourRecipe = string.Empty; }); | |||
} | |||
} | |||
if (RecipeQuene.Count > 0 && OutputMaterialQuene.Count == 0 && InputMaterialQuene.Count == 0)//后续添加其它限制条件 | |||
if (RecipeQuene.Count > 0 && OutputMaterialQuene.Count == 0 && InputMaterialQuene.Count == 0&&globalVar.rollerLineOne.RecipeComMidSingle==1)//后续添加其它限制条件 | |||
{ | |||
if (globalVar.LOneFryPotSerial == 1) | |||
{ | |||
@@ -2362,7 +2409,7 @@ namespace FryPot_DosingSystem.Control | |||
} | |||
} | |||
DeviceOperate.GetInstance.WritePlcData("D1009", (ushort)result.materialCollection.Count);//发送1号滚筒线工序数据 | |||
globalVar.rollerLineOne.RecipeComMidSingle = 0;//配方完成的中转信号置0 | |||
} | |||
} | |||
@@ -2569,11 +2616,13 @@ namespace FryPot_DosingSystem.Control | |||
AgvArriveFryPotOneOrFourSingleSetDown(); | |||
globalVar.agvArriveUnLoad = false; | |||
globalVar.PotOneInputMaterialArrive = true; | |||
FryPotOneRollerTroubleCheck(); | |||
} | |||
} | |||
public void LOneFallMaterial() | |||
{ | |||
if (!globalVar.InOrOutputLock && (globalVar.fryPotOne.InputMaterialArrivedSingle == 1 || globalVar.fryPotFour.InputMaterialArrivedSingle == 1) && globalVar.PotOneInputMaterialArrive && OutputMaterialQuene.Count > 0 && !globalVar.PotOneOutputRollerArrive) | |||
{ | |||
//if (globalVar.LOneFryPotSerial == 1) | |||
@@ -2586,7 +2635,7 @@ namespace FryPot_DosingSystem.Control | |||
// Sqlite<PotFourStatus>.GetInstance.Base.Add(new PotFourStatus { Temperature = FryPotMonitorManage.GetInstance.fryFour.Temperature, HotPower = FryPotMonitorManage.GetInstance.fryFour.HotPower, Speed = FryPotMonitorManage.GetInstance.fryFour.Speed, FryPotWeight = FryPotMonitorManage.GetInstance.fryFour.FryPotWeight, OilCapacity = FryPotMonitorManage.GetInstance.fryFour.OilCapacity, TotalOilCapactiy = FryPotMonitorManage.GetInstance.fryFour.TotalOilCapactiy, TotalProduct = FryPotMonitorManage.GetInstance.fryFour.TotalProduct, Time = DateTime.Now.ToShortDateString() });//向表中新增数据 | |||
// Sqlite<PotFourStatus>.GetInstance.Save();//保存数据 | |||
//} | |||
FryPotOneRollerTroubleCheck(); | |||
//FryPotOneRollerTroubleCheck(); | |||
if (FryPotAlarm == 1 || FryPotFourAlarm == 1)//炒锅滚筒无故障 | |||
{ | |||
if (globalVar.LOneFryPotSerial == 1) | |||
@@ -2607,6 +2656,7 @@ namespace FryPot_DosingSystem.Control | |||
globalVar.PotOneOutputRollerArrive = true; | |||
} | |||
} | |||
} | |||
/// <summary> | |||
/// 线体2的AGV从炒锅送料位置到倒料过程处理 | |||
@@ -2751,14 +2801,16 @@ namespace FryPot_DosingSystem.Control | |||
AgvArriveFryPotOneOrFourOutEmptyRollerSingleSetDown();//暂时考虑agv送完料后原地等待,不加条件,直接发送到位信号 | |||
globalVar.agvArriveUpLoad = false; | |||
globalVar.AgvArrivePot = true; | |||
FryPotOneRollerTroubleCheck(); | |||
} | |||
} | |||
public void LOneEmptyOperate() | |||
{ | |||
if ((globalVar.fryPotOne.EmptyBarrelArrivedSingle == 1 || globalVar.fryPotFour.EmptyBarrelArrivedSingle == 1) && OutputMaterialQuene.Count > 0 && globalVar.AgvArrivePot) | |||
{ | |||
FryPotOneRollerTroubleCheck(); | |||
// FryPotOneRollerTroubleCheck(); | |||
if (FryPotAlarm == 1 || FryPotFourAlarm == 1)//无故障 | |||
{ | |||
if (globalVar.agvFryPotEmptyRollerArrive) | |||
@@ -2792,6 +2844,7 @@ namespace FryPot_DosingSystem.Control | |||
} | |||
} | |||
} | |||
/// <summary> | |||
@@ -2903,12 +2956,13 @@ namespace FryPot_DosingSystem.Control | |||
{ | |||
globalVar.agvArriveLineFour = false; | |||
//线体四信号交互 | |||
WritePlcData("D1067", 1);//AGV空桶回桶就位信号下发PLC | |||
MessageLog.GetInstance.ShowRunLog("AGV到达【4】号回收线体,准备卸桶"); | |||
MessageLog.GetInstance.ShowRunLog("卸桶完成"); | |||
AgvViewModel.GetInstance().Set滚筒线状态(4,IsRun.Start); | |||
// MessageLog.GetInstance.ShowRunLog("卸桶完成"); | |||
AgvViewModel.GetInstance().Set滚筒线状态(4, IsRun.Start); | |||
AgvViewModel.GetInstance().Set滚筒线上数量(4, (++globalVar.LFourRollerNum).ToString()); | |||
AgvViewModel.GetInstance().Set小车是否承载物品(4,IsBool.No); | |||
AgvViewModel.GetInstance().Set小车运动(4,CartMotionTrajectory.hj); | |||
AgvViewModel.GetInstance().Set小车是否承载物品(4, IsBool.No); | |||
AgvViewModel.GetInstance().Set小车运动(4, CartMotionTrajectory.hj); | |||
AgvViewModel.GetInstance().Set停车桩(4, IsBool.Yes); | |||
} | |||
} | |||
@@ -4086,7 +4140,16 @@ namespace FryPot_DosingSystem.Control | |||
switch (OutputMaterialQuene.ElementAt(0).materialType.MaterialLoc / 100) | |||
{ | |||
case 1: | |||
if (AlarmHelper<AlarmInfo>.Alarm.FryPotOneRollerTrouble == 1) { FryPotAlarm = -1; MessageLog.GetInstance.ShowRunLog("警告:炒锅【1】输送滚筒发生故障"); } else { FryPotAlarm = 1; return; } while (AlarmHelper<AlarmInfo>.Alarm.FryPotOneRollerTrouble == 1) | |||
if (AlarmHelper<AlarmInfo>.Alarm.FryPotOneRollerTrouble == 1) | |||
{ | |||
FryPotAlarm = -1; MessageLog.GetInstance.ShowRunLog("警告:炒锅【1】输送滚筒发生故障"); | |||
} | |||
else | |||
{ | |||
FryPotAlarm = 1; return; | |||
} | |||
while (AlarmHelper<AlarmInfo>.Alarm.FryPotOneRollerTrouble == 1) | |||
{ | |||
Thread.Sleep(5); if (globalVar.ExitLineOneTask) | |||
return; | |||
@@ -58,7 +58,7 @@ namespace FryPot_DosingSystem.Control | |||
/// </summary> | |||
public ushort PlcInite { get; set; } | |||
/// <summary> | |||
/// 清洗台清洗完成信号 | |||
/// 清洗台清洗完成信号/洗桶出桶AGV呼叫信号 | |||
/// </summary> | |||
public ushort CleanComplete { get; set; } | |||
#region 上位机内部逻辑条件 | |||
@@ -250,6 +250,10 @@ namespace FryPot_DosingSystem.Control | |||
/// </summary> | |||
public ushort RecipeCompleteSingle { get; set; } | |||
/// <summary> | |||
/// 当前配方完成的中转信号 | |||
/// </summary> | |||
public ushort RecipeComMidSingle { get; set; } = 1; | |||
/// <summary> | |||
/// 线体1上空桶确认信号 | |||
/// </summary> | |||
public ushort EmptyRollerConfirmSingle { get; set; } | |||
@@ -318,7 +322,10 @@ namespace FryPot_DosingSystem.Control | |||
/// 当前线体配方完成信号 | |||
/// </summary> | |||
public ushort RecipeCompleteSingle { get; set; } | |||
/// <summary> | |||
/// 当前配方完成的中转信号 | |||
/// </summary> | |||
public ushort RecipeComMidSingle { get; set; } = 1; | |||
/// <summary> | |||
/// 线体1上空桶确认信号 | |||
/// </summary> | |||
@@ -387,7 +394,10 @@ namespace FryPot_DosingSystem.Control | |||
/// 当前线体配方完成信号 | |||
/// </summary> | |||
public ushort RecipeCompleteSingle { get; set; } | |||
/// <summary> | |||
/// 当前配方完成的中转信号 | |||
/// </summary> | |||
public ushort RecipeComMidSingle { get; set; } = 1; | |||
/// <summary> | |||
/// 线体1上空桶确认信号 | |||
/// </summary> | |||
@@ -457,8 +467,11 @@ namespace FryPot_DosingSystem.Control | |||
/// 当前线体配方完成信号 | |||
/// </summary> | |||
public ushort RecipeCompleteSingle { get; set; } | |||
/// <summary> | |||
/// 当前配方完成的中转信号 | |||
/// </summary> | |||
public ushort RecipeComMidSingle { get; set; } = 1; | |||
} | |||
/// <summary> | |||
/// 炒锅1相关变量 | |||
@@ -39,6 +39,7 @@ | |||
<ComboBox SelectionChanged="ComboBox_SelectionChanged" ItemsSource="{Binding LineOneRollerCode}" Background="Transparent" Width="100" Height="34" Margin="3,3"/> | |||
<Button Content="炒锅进料就位" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding FryPotInputArrive}"/> | |||
<Button Content="炒锅空桶就位" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding FryPotEmptyRollerArrive}"/> | |||
<Button Content="配方完成信号" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding LineOneRecipeComSignal}"/> | |||
<Line Stroke="Aqua" StrokeThickness="2" X1="0" X2="860" Y1="0" Y2="0"/> | |||
<Button Content="线体1任务重置" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding LineOneTaskExit}"></Button> | |||
<Button Content="AGV接口调试" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvDebug}"/> | |||
@@ -65,9 +66,11 @@ | |||
<Button Content="AGV线体1空桶上料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveLineOneEmptyRollerLoc}"/> | |||
<Button Content="AGV线体1空桶上料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvLineOneLoadEmptyCom}"/> | |||
<Button Content="AGV空桶清洗下料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLoc}"/> | |||
<Button Content="AGV空桶清洗下料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLocCom}"/> | |||
<Button Content="AGV空桶清洗上料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLocLoad}"/> | |||
<Button Content="AGV空桶清洗上料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLocLoadCom}"/> | |||
<Button Content="AGV线体4空桶下料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveLineFourLoc}"/> | |||
<Button Content="AGV线体4空桶下料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveLineFourLocCom}"/> | |||
</WrapPanel> | |||
</WrapPanel> | |||
@@ -82,6 +85,7 @@ | |||
<ComboBox SelectionChanged="ComboBox_SelectionChanged_1" ItemsSource="{Binding LineTwoRollerCode}" Background="Transparent" Width="100" Height="34" Margin="3,3"/> | |||
<Button Content="炒锅进料就位" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding FryPotTwoInputArrive}"/> | |||
<Button Content="炒锅空桶就位" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding FryPotTwoEmptyRollerArrive}"/> | |||
<Button Content="配方完成信号" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding LineTwoRecipeComSignal}"/> | |||
<Line Stroke="Aqua" StrokeThickness="2" X1="0" X2="860" Y1="0" Y2="0"/> | |||
<Button Content="线体2任务重置" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding LineTwoTaskExit}"></Button> | |||
<Line Stroke="Aqua" StrokeThickness="2" X1="0" X2="860" Y1="0" Y2="0"/> | |||
@@ -103,9 +107,11 @@ | |||
<Button Content="AGV线体2空桶上料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveLineTwoEmptyRollerLoc}"/> | |||
<Button Content="AGV线体2空桶上完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvLineTwoLoadEmptyCom}"/> | |||
<Button Content="AGV空桶清洗下料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLoc}"/> | |||
<Button Content="AGV空桶清洗下料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLocCom}"/> | |||
<Button Content="AGV空桶清洗上料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLocLoad}"/> | |||
<Button Content="AGV空桶清洗上料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLocLoadCom}"/> | |||
<Button Content="AGV线体4空桶下料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveLineFourLoc}"/> | |||
<Button Content="AGV线体4空桶下料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveLineFourLocCom}"/> | |||
</WrapPanel> | |||
</WrapPanel> | |||
</GroupBox> | |||
@@ -118,6 +124,7 @@ | |||
<ComboBox SelectionChanged="ComboBox_SelectionChanged_2" ItemsSource="{Binding LineThreeRollerCode}" Background="Transparent" Width="100" Height="34" Margin="3,3"/> | |||
<Button Content="炒锅进料就位" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding FryPotThreeInputArrive}"/> | |||
<Button Content="炒锅空桶就位" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding FryPotThreeEmptyRollerArrive}"/> | |||
<Button Content="配方完成信号" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding LineThreeRecipeComSignal}"/> | |||
<Line Stroke="Aqua" StrokeThickness="2" X1="0" X2="860" Y1="0" Y2="0"/> | |||
<Button Content="线体3任务重置" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding LineThreeTaskExit}"></Button> | |||
<Line Stroke="Aqua" StrokeThickness="2" X1="0" X2="860" Y1="0" Y2="0"/> | |||
@@ -139,9 +146,11 @@ | |||
<Button Content="AGV线体3空桶上料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveLineThreeEmptyRollerLoc}"/> | |||
<Button Content="AGV线体3空桶上料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvLineThreeLoadEmptyCom}"/> | |||
<Button Content="AGV空桶清洗下料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLoc}"/> | |||
<Button Content="AGV空桶清洗下料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLocCom}"/> | |||
<Button Content="AGV空桶清洗上料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLocLoad}"/> | |||
<Button Content="AGV空桶清洗上料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveCleanPlateLocLoadCom}"/> | |||
<Button Content="AGV线体4空桶下料就位" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveLineFourLoc}"/> | |||
<Button Content="AGV线体4空桶下料完成" Width="145" Style="{StaticResource buttonStyle}" VerticalAlignment="Top" Command="{Binding AgvArriveLineFourLocCom}"/> | |||
</WrapPanel> | |||
</WrapPanel> | |||
</GroupBox> | |||
@@ -40,7 +40,7 @@ namespace FryPot_DosingSystem.View | |||
var res = JsonConvert.DeserializeObject<Upstreamrequest>(o.ToString()); | |||
}); | |||
HubHelper.GetInstance.Connect("192.168.1.56", 8089); | |||
HubHelper.GetInstance.Connect("192.168.1.40", 8089); | |||
} | |||
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) | |||
@@ -22,7 +22,7 @@ namespace FryPot_DosingSystem.ViewModel | |||
public RelayCommand FryPotInputArrive { get; set; } | |||
public RelayCommand FryPotEmptyRollerArrive { get; set; } | |||
public RelayCommand LineOneTaskExit { get; set; } | |||
public RelayCommand LineOneRecipeComSignal { get; set; } | |||
public RelayCommand AGVLOneArrive { get; set; } | |||
public RelayCommand AGVFryPotDownArrive { get; set; } | |||
@@ -36,7 +36,7 @@ namespace FryPot_DosingSystem.ViewModel | |||
public RelayCommand FryPotTwoInputArrive { get; set; } | |||
public RelayCommand FryPotTwoEmptyRollerArrive { get; set; } | |||
public RelayCommand LineTwoTaskExit { get; set; } | |||
public RelayCommand LineTwoRecipeComSignal { get; set; } | |||
public RelayCommand AGVLTwoArrive { get; set; } | |||
public RelayCommand AGVFryPotTwoDownArrive { get; set; } | |||
@@ -49,6 +49,7 @@ namespace FryPot_DosingSystem.ViewModel | |||
public RelayCommand FryPotThreeInputArrive { get; set; } | |||
public RelayCommand FryPotThreeEmptyRollerArrive { get; set; } | |||
public RelayCommand LineThreeTaskExit { get; set; } | |||
public RelayCommand LineThreeRecipeComSignal { get; set; } | |||
public RelayCommand AGVLThreeArrive { get; set; } | |||
public RelayCommand AGVFryPotThreeDownArrive { get; set; } | |||
@@ -69,10 +70,11 @@ namespace FryPot_DosingSystem.ViewModel | |||
public RelayCommand AgvLineThreeLoadEmptyCom { get; set; } | |||
public RelayCommand CleanPlateCallAgv { get; set; } | |||
public RelayCommand AgvArriveCleanPlateLoc { get; set; }//下料 | |||
public RelayCommand AgvArriveLineFourLoc { get; set; } | |||
public RelayCommand AgvArriveCleanPlateLocCom { get; set; }//下料完成 | |||
public RelayCommand AgvArriveLineFourLoc { get; set; }//下料 | |||
public RelayCommand AgvArriveLineFourLocCom { get; set; }//4号线空桶下料完成 | |||
public RelayCommand AgvArriveCleanPlateLocLoad { get; set; }//上料 | |||
public RelayCommand AgvArriveCleanPlateLocLoadCom { get; set; }//上料完成 | |||
public RelayCommand EmptyRollerCleanTaskRestart { get; set; } | |||
public DebugViewModel() | |||
{ | |||
@@ -80,7 +82,31 @@ namespace FryPot_DosingSystem.ViewModel | |||
{ | |||
ActionManage.GetInstance.Send("AgvDebug"); | |||
})); | |||
AgvArriveCleanPlateLocCom = new RelayCommand(() => | |||
{ | |||
ActionManage.GetInstance.Send("AgvArriveCleanPlateLocCom"); | |||
}); | |||
AgvArriveLineFourLocCom = new RelayCommand(() => | |||
{ | |||
ActionManage.GetInstance.Send("AgvArriveLineFourLocCom"); | |||
}); | |||
AgvArriveCleanPlateLocLoadCom = new RelayCommand(() => | |||
{ | |||
ActionManage.GetInstance.Send("AgvArriveCleanPlateLocLoadCom"); | |||
}); | |||
LineOneRecipeComSignal = new RelayCommand(() => | |||
{ | |||
ActionManage.GetInstance.Send("LineOneRecipeComSignal"); | |||
}); | |||
LineTwoRecipeComSignal = new RelayCommand(() => | |||
{ | |||
ActionManage.GetInstance.Send("LineTwoRecipeComSignal"); | |||
}); | |||
LineThreeRecipeComSignal = new RelayCommand(() => | |||
{ | |||
ActionManage.GetInstance.Send("LineThreeRecipeComSignal"); | |||
}); | |||
EmptyRollerCleanTaskRestart = new RelayCommand(() => | |||
{ | |||
@@ -27,7 +27,7 @@ namespace FryPot_DosingSystem.ViewModel | |||
{ | |||
currnetRecipeName = recipeName.ToString(); | |||
var res = Json<RecipeManage>.Data.Recipes.FirstOrDefault(p => p.FlowProcess.RecipeName == recipeName.ToString()); | |||
if (res != null && res is NewRecipeModel recipe) //编辑已有工艺 | |||
if (res != null && res is NewRecipeModel recipe&&res.FlowProcess.fpModels.Count==res.materialCollection.Count+1) //编辑已有工艺 | |||
{ | |||
//flowProcessModels = recipe.FlowProcess.fpModels; | |||
foreach (var item in recipe.FlowProcess.fpModels) | |||
@@ -40,6 +40,10 @@ namespace FryPot_DosingSystem.ViewModel | |||
var name = Json<RecipeManage>.Data.Recipes.FirstOrDefault(p=>p.RecipeName==recipeName.ToString()); | |||
if (name != null) | |||
{ | |||
if (name.FlowProcess.fpModels.Count > 0) | |||
{ | |||
name.FlowProcess.fpModels.Clear(); | |||
} | |||
name.FlowProcess.RecipeName = recipeName.ToString(); | |||
flowProcessModels.Add(new FlowProcessModel { Id = Id + 1, FryMaterialNum = "油" }); | |||
Id++; | |||
@@ -11,24 +11,23 @@ namespace TestDemo | |||
public Form1() | |||
{ | |||
InitializeComponent(); | |||
HubHelper.GetInstance.Connect("192.168.1.14", 8089); | |||
} | |||
private void button1_Click(object sender, EventArgs e) | |||
{ | |||
AGVToUpSystem aGVToUpSystem = new AGVToUpSystem(); | |||
string value = JsonConvert.SerializeObject(aGVToUpSystem); | |||
string url = $"http://192.168.1.14:8089/apicallback/quicktron/robotjob/report?sign={value}"; | |||
string url = $"http://192.168.1.40:8089/apicallback/quicktron/robotjob/report?sign={value}"; | |||
var res = APIHelper.GetInstance.HttpRequest(url, "", aGVToUpSystem, RequestType.POST); | |||
} | |||
private void button2_Click(object sender, EventArgs e) | |||
{ | |||
Upstreamrequest aGVToUpSystem = new Upstreamrequest(); | |||
string value = JsonConvert.SerializeObject(aGVToUpSystem); | |||
string url = $"http://192.168.1.14:8089/apicallback/quicktron/robotjob/upstreamrequest?sign={value}"; | |||
string url = $"http://192.168.1.40:8089/apicallback/quicktron/robotjob/upstreamrequest?sign={value}"; | |||
var res = APIHelper.GetInstance.HttpRequest(url, "", aGVToUpSystem, RequestType.POST); | |||
} | |||
} | |||
} |