From e01ef4482da7f8bc0b3dcf09897a0f8adad809d0 Mon Sep 17 00:00:00 2001 From: taoye Date: Tue, 14 Jun 2022 11:12:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=82=92MQTT/API=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BPASmartClient.Business.csproj | 2 +- BPASmartClient.Business/Plugin/DeviceMgr.cs | 10 + BPASmartClient.Business/Plugin/OrderProxy.cs | 15 ++ .../BPASmartClient.CustomResource.csproj | 2 +- .../BPASmartClient.Device.csproj | 2 +- .../BPASmartClient.Model.csproj | 2 +- .../小炒机/StirFryGoodsEvent.cs | 18 ++ .../BPASmartClient.MorkF.csproj | 4 - BPASmartClient.MorkF/Control_MorkF.cs | 222 +++++++++--------- BPASmartClient.MorkF/GVL_MorkF.cs | 1 + BPASmartClient.MorkF/Model/General_Config.cs | 13 + BPASmartClient.MorkF/OrderLocInfo.cs | 2 +- BPASmartClient.MorkF/View/DebugView.xaml | 1 + BPASmartClient.MorkF/View/DebugView.xaml.cs | 1 + .../ViewModel/DebugViewModel.cs | 5 +- BPASmartClient.MorkM/Control_MORKM.cs | 4 +- BPASmartClient.MorkS/Control_Morks.cs | 6 +- BPASmartClient/App.config | 8 +- DosingSystem/DosingSystem.csproj | 2 +- 19 files changed, 196 insertions(+), 124 deletions(-) create mode 100644 BPASmartClient.Model/小炒机/StirFryGoodsEvent.cs create mode 100644 BPASmartClient.MorkF/Model/General_Config.cs diff --git a/BPASmartClient.Business/BPASmartClient.Business.csproj b/BPASmartClient.Business/BPASmartClient.Business.csproj index 88631d12..517190e1 100644 --- a/BPASmartClient.Business/BPASmartClient.Business.csproj +++ b/BPASmartClient.Business/BPASmartClient.Business.csproj @@ -8,7 +8,7 @@ - + diff --git a/BPASmartClient.Business/Plugin/DeviceMgr.cs b/BPASmartClient.Business/Plugin/DeviceMgr.cs index cc2245e9..3a81e207 100644 --- a/BPASmartClient.Business/Plugin/DeviceMgr.cs +++ b/BPASmartClient.Business/Plugin/DeviceMgr.cs @@ -5,6 +5,7 @@ using BPASmartClient.Helper; using BPASmartClient.Http; using BPASmartClient.Message; using BPASmartClient.Model; +using BPASmartClient.Model.小炒机; using BPASmartClient.Peripheral; using Newtonsoft.Json; using System; @@ -128,6 +129,15 @@ namespace BPASmartClient.Business MessageLog.GetInstance.Show($"物料ID:=[{x.BatchingId}],{x.BatchingLoc}号位置:{x.BatchingCount}"); }); } + else if (PushType == 2)//小炒API流程获取,待定 + { + new StirFryGoodsEvent() + { + DeviceId = device.DeviceId, + stirFrymessage = JsonConvert.DeserializeObject(result) + }.Publish(); + MessageLog.GetInstance.Show("接收到【 API 】获取的小炒流程信息"); + } } catch (Exception ex) { diff --git a/BPASmartClient.Business/Plugin/OrderProxy.cs b/BPASmartClient.Business/Plugin/OrderProxy.cs index 04903d74..7e3b4e34 100644 --- a/BPASmartClient.Business/Plugin/OrderProxy.cs +++ b/BPASmartClient.Business/Plugin/OrderProxy.cs @@ -1,11 +1,14 @@ //#define test using BPA.Message; using BPA.Message.Enum; +using BPA.Models; +using BPASmartClient.Device; using BPASmartClient.EventBus; using BPASmartClient.Helper; using BPASmartClient.Http; using BPASmartClient.Message; using BPASmartClient.Model; +using BPASmartClient.Model.小炒机; using Newtonsoft.Json; using System; using System.Collections.Concurrent; @@ -99,6 +102,18 @@ namespace BPASmartClient.Business MessageLog.GetInstance.Show($"物料ID:=[{x.BatchingId}],{x.BatchingLoc}号位置:{x.BatchingCount}"); }); } + //小炒流程信息 + else if (message is StirFryPushMessage frybom) + { + IDevice device = deviceMgr.GetDevices().FirstOrDefault(x => x.DeviceId == 28); + new StirFryGoodsEvent() { + DeviceId = device.DeviceId, + stirFrymessage =frybom + }.Publish(); + MessageLog.GetInstance.Show("接受到【MQTT】的小炒流程信息"); + + + } }); EventBus.EventBus.GetInstance().Subscribe(0, OrderStatusChangedHandle); diff --git a/BPASmartClient.CustomResource/BPASmartClient.CustomResource.csproj b/BPASmartClient.CustomResource/BPASmartClient.CustomResource.csproj index 28267f47..fb8cb381 100644 --- a/BPASmartClient.CustomResource/BPASmartClient.CustomResource.csproj +++ b/BPASmartClient.CustomResource/BPASmartClient.CustomResource.csproj @@ -229,7 +229,7 @@ - + diff --git a/BPASmartClient.Device/BPASmartClient.Device.csproj b/BPASmartClient.Device/BPASmartClient.Device.csproj index 5e442528..5d81ef80 100644 --- a/BPASmartClient.Device/BPASmartClient.Device.csproj +++ b/BPASmartClient.Device/BPASmartClient.Device.csproj @@ -7,7 +7,7 @@ - + diff --git a/BPASmartClient.Model/BPASmartClient.Model.csproj b/BPASmartClient.Model/BPASmartClient.Model.csproj index 9a94b652..a939251d 100644 --- a/BPASmartClient.Model/BPASmartClient.Model.csproj +++ b/BPASmartClient.Model/BPASmartClient.Model.csproj @@ -17,7 +17,7 @@ - + diff --git a/BPASmartClient.Model/小炒机/StirFryGoodsEvent.cs b/BPASmartClient.Model/小炒机/StirFryGoodsEvent.cs new file mode 100644 index 00000000..cfabd6df --- /dev/null +++ b/BPASmartClient.Model/小炒机/StirFryGoodsEvent.cs @@ -0,0 +1,18 @@ +using BPA.Message; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BPASmartClient.Model.小炒机 +{ + public class StirFryGoodsEvent : BaseEvent + { + + /// + /// 小炒信息 + /// + public StirFryPushMessage stirFrymessage { get; set; } = new StirFryPushMessage(); + } +} diff --git a/BPASmartClient.MorkF/BPASmartClient.MorkF.csproj b/BPASmartClient.MorkF/BPASmartClient.MorkF.csproj index 79c30eda..9e968e28 100644 --- a/BPASmartClient.MorkF/BPASmartClient.MorkF.csproj +++ b/BPASmartClient.MorkF/BPASmartClient.MorkF.csproj @@ -18,8 +18,4 @@ - - - - diff --git a/BPASmartClient.MorkF/Control_MorkF.cs b/BPASmartClient.MorkF/Control_MorkF.cs index 936678a5..9326ba6c 100644 --- a/BPASmartClient.MorkF/Control_MorkF.cs +++ b/BPASmartClient.MorkF/Control_MorkF.cs @@ -8,18 +8,19 @@ using BPASmartClient.Model; using BPASmartClient.Model.PLC; using BPA.Models; using static BPASmartClient.EventBus.EventBus; - +using BPASmartClient.Model.小炒机; +using BPASmartClient.MorkF.Model; namespace BPASmartClient.MorkF { public class Control_MorkF : BaseDevice { - public override DeviceClientType DeviceType => DeviceClientType.MORKSF; + public override DeviceClientType DeviceType => DeviceClientType.MORKCS; public AutoResetEvent minorReset = new AutoResetEvent(false); public AutoResetEvent mainReset = new AutoResetEvent(false); GVL_MorkF morkF = new GVL_MorkF();//全局对象声明 public StirFryBom stirFryBom = new StirFryBom();//创建获取流程的对象 - StirFryGoods stirFryGoods = new StirFryGoods();//创建商品对象 + List stirFryGoods = new List();//创建商品对象 List resultorder = new List();//调试变量 /// /// 入口 @@ -321,9 +322,9 @@ namespace BPASmartClient.MorkF { //队列 string subId = Guid.NewGuid().ToString(); - morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = 1 });//A料 - morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = 2 });//B料 - morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = 3 });//C料 + morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = new List() { 1 } });//A料 + morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = new List() { 2 } });//B料 + morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = subId, MaterialLoc = new List() { 3 } });//C料 morkF.TakePlateQueue.Enqueue(new OrderLocInfo() { SuborderId = subId }); resultorder.AddRange(new int[] { 1, 2, 3 }); morkF.listStirBom.Add(stirFryBom); @@ -388,6 +389,7 @@ namespace BPASmartClient.MorkF if (@event is MaterialDeliveryEvent material) { orderMaterialDelivery = material.orderMaterialDelivery; + } }); @@ -401,6 +403,17 @@ namespace BPASmartClient.MorkF WriteRecipeBoms(); } }); + //小炒流程信息 + EventBus.EventBus.GetInstance().Subscribe(DeviceId, delegate (IEvent @event, EventCallBackHandle callback) + { + if (@event == null) return; + if (@event is StirFryGoodsEvent stirFry) + { + stirFryGoods = stirFry.stirFrymessage.stirFryGoods; + MessageLog.GetInstance.Show("接收到小炒流程信息"); + } + }); + } private void OrderChange(string subid, ORDER_STATUS oRDER_STATUS) @@ -423,41 +436,34 @@ namespace BPASmartClient.MorkF if (order.MorkOrder.GoodBatchings == null) return; OrderCount++; DeviceProcessLogShow($"接收到{OrderCount}次订单"); - foreach (var item in order.MorkOrder.GoodBatchings) + + var res = stirFryGoods?.FirstOrDefault(p => p.GoodsKey == order.MorkOrder.RecipeId);//匹配订单对应制作流程 + if (res != null) { - var res = orderMaterialDelivery?.BatchingInfo?.FirstOrDefault(p => p.BatchingId == item.BatchingId); - if (res != null) + morkF.listStirBom.Add(res.StirFryBomInfo);//添加订单制作流程 + if (morkF.TakeMaterialQueue.FirstOrDefault(p => p.SuborderId == order.MorkOrder.SuborderId) == null) { - if (ushort.TryParse(res.BatchingLoc, out ushort loc)) - { - - //if (morkF.TakeMaterialQueue.FirstOrDefault(p => p.SuborderId == order.MorkOrder.SuborderId) == null) - //将一个商品的ABC料位置存入队列 - morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = order.MorkOrder.SuborderId, BatchingId = res.BatchingId, MaterialLoc = ushort.Parse(res.BatchingLoc) }); - } - + morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = order.MorkOrder.SuborderId, MaterialLoc = res.StirFryBomInfo.ALoc }); + morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = order.MorkOrder.SuborderId, MaterialLoc = res.StirFryBomInfo.BLoc }); + morkF.TakeMaterialQueue.Enqueue(new OrderLocInfo() { SuborderId = order.MorkOrder.SuborderId, MaterialLoc = res.StirFryBomInfo.CLoc }); + } - //int index = 0; - //if (recipeBoms != null) - //{ - // index = Array.FindIndex(recipeBoms.RecipeIds?.ToArray(), p => p.RecipeId == order.MorkOrder.RecipeId); - // index++; - //} - if (morkF.TakePlateQueue.FirstOrDefault(p => p.SuborderId == order.MorkOrder.SuborderId) == null) - morkF.TakePlateQueue.Enqueue(new OrderLocInfo() - { - SuborderId = order.MorkOrder.SuborderId, - BatchingId = res.BatchingId - //RecipeNumber = (index >= 1 && index <= 10) ? (ushort)index : (ushort)0 - }); + //foreach (var item in order.MorkOrder.GoodBatchings) + //{ + if (morkF.TakePlateQueue.FirstOrDefault(p => p.SuborderId == order.MorkOrder.SuborderId) == null) + { + morkF.TakePlateQueue.Enqueue(new OrderLocInfo() + { + SuborderId = order.MorkOrder.SuborderId, + }); } + //} } - //根据ID 查找对应制作流程, - } + }); } //} @@ -572,7 +578,7 @@ namespace BPASmartClient.MorkF if (morkF.MainProcessWait) { if (morkF.MinorHasTakeMaterial) - { + { } else { @@ -582,7 +588,7 @@ namespace BPASmartClient.MorkF //阻塞辅流程 minorReset.WaitOne(); } - + } morkF.MinorProessStatus = true; morkF.MainProcessStatus = false; @@ -624,13 +630,13 @@ namespace BPASmartClient.MorkF case StirFryRobotAction.清洗槽取锅: TakePotTask();//执行取锅操作 break; - case StirFryRobotAction.加入A料: + case StirFryRobotAction.取A料: TakeBurdenATask();//执行取A料操作 break; - case StirFryRobotAction.加入B料: + case StirFryRobotAction.取B料: TakeBurdenATask();//执行取B料操作 break; - case StirFryRobotAction.加入C料: + case StirFryRobotAction.取C料: TakeBurdenCTask();//执行取C料操作 break; case StirFryRobotAction.灶取锅: @@ -708,7 +714,7 @@ namespace BPASmartClient.MorkF //阻塞主流程 mainReset.WaitOne(); } - + } morkF.MinorProessStatus = false; morkF.MainProcessStatus = true; @@ -771,27 +777,10 @@ namespace BPASmartClient.MorkF /// private void TurntableControl() { - //正常轮询 - //if (morkF.TakeMaterialQueue.Count > 0 && !morkF.TurnTableLock) - //{ - // var result = orderMaterialDelivery.BatchingInfo.Where(p => p.BatchingId == morkF.TakeMaterialQueue.ElementAt(0).BatchingId).ToList(); - - // if (result != null) - // { - // if (ushort.TryParse(result[0].BatchingLoc, out ushort loc)) - // { - // TurnMaterialStore(loc); - // DeviceProcessLogShow($"转台转到【{loc}】位置"); - // morkF.TurnTableLock = true; //取料完成后置false - // } - // } - // elseDeviceProcessLogShow("未找到可用的物料信息"); - //} - - //调试代码 - if (morkF.TakeMaterialQueue.Count > 0 && !morkF.TurnTableLock) + //模拟订单 + if (morkF.TakeMaterialQueue.Count > 0 && !morkF.TurnTableLock && General_Config.SimOrderAllow) { - // var result = orderMaterialDelivery.BatchingInfo.Where(p => p.BatchingId == morkF.TakeMaterialQueue.ElementAt(0).BatchingId).ToList(); + if (resultorder != null) { @@ -807,6 +796,25 @@ namespace BPASmartClient.MorkF } } + //正式订单 + if (morkF.TakeMaterialQueue.Count > 0 && !morkF.TurnTableLock) + { + //var result = orderMaterialDelivery.BatchingInfo.Where(p => p.BatchingId == morkF.TakeMaterialQueue.ElementAt(0).BatchingId).ToList(); + var materialLoc = morkF.TakeMaterialQueue.ElementAt(0).MaterialLoc; + if (materialLoc.Count != 0) + { + TurnMaterialStore(materialLoc[0]); + DeviceProcessLogShow($"转台转到【{materialLoc[0]}】位置"); + morkF.TurnTableLock = true; //取料完成后置false + + } + else + { + DeviceProcessLogShow("未找到可用的物料信息"); + } + + } + } @@ -885,12 +893,12 @@ namespace BPASmartClient.MorkF if (morkF.MainProcessStatus) { morkF.MainProcessPotLoc = morkF.CurrentPutPotLoc; - DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】执行取锅到灶台控制"); + DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】执行取锅到灶台控制"); } if (morkF.MinorProessStatus) { morkF.MinorProcessPotLoc = morkF.CurrentPutPotLoc; - DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】执行取锅到灶台控制"); + DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】执行取锅到灶台控制"); } if (morkF.CurrentPutPotLoc == 1) { @@ -983,11 +991,11 @@ namespace BPASmartClient.MorkF } if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order)) { - loc = order.MaterialLoc; - TakeBurden(loc); + loc = order.MaterialLoc[0]; + TakeBurden(); TurnReset(loc);//转台复位 - DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料"); + DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料"); } //等待取料完成 while (!morkF.TakeMaterialComplete) @@ -1016,11 +1024,11 @@ namespace BPASmartClient.MorkF } if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order)) { - loc = order.MaterialLoc; - TakeBurden(loc); + loc = order.MaterialLoc[0]; + TakeBurden(); TurnReset(loc);//转台复位 - DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料"); + DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料"); } //等待取料完成 while (!morkF.TakeMaterialComplete) @@ -1064,11 +1072,11 @@ namespace BPASmartClient.MorkF } if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order)) { - loc = order.MaterialLoc; - TakeBurden(loc); + loc = order.MaterialLoc[0]; + TakeBurden(); TurnReset(loc);//转台复位 - DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料"); + DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料"); } //等待取料完成 while (!morkF.TakeMaterialComplete) @@ -1097,11 +1105,11 @@ namespace BPASmartClient.MorkF } if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order)) { - loc = order.MaterialLoc; - TakeBurden(loc); + loc = order.MaterialLoc[0]; + TakeBurden(); TurnReset(loc);//转台复位 - DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料"); + DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料"); } //等待取料完成 while (!morkF.TakeMaterialComplete) @@ -1174,11 +1182,11 @@ namespace BPASmartClient.MorkF } if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order)) { - loc = order.MaterialLoc; - TakeBurden(loc); + loc = order.MaterialLoc[0]; + TakeBurden(); TurnReset(loc);//转台复位 - DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料"); + DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料"); } //等待取料完成 while (!morkF.TakeMaterialComplete) @@ -1207,11 +1215,11 @@ namespace BPASmartClient.MorkF } if (morkF.TakeMaterialQueue.TryDequeue(out OrderLocInfo order)) { - loc = order.MaterialLoc; - TakeBurden(loc); + loc = order.MaterialLoc[0]; + TakeBurden(); TurnReset(loc);//转台复位 - DeviceProcessLogShow($"订单【{ order.SuborderId}】,执行到转台{loc}位置取料"); + DeviceProcessLogShow($"订单【{order.SuborderId}】,执行到转台{loc}位置取料"); } //等待取料完成 while (!morkF.TakeMaterialComplete) @@ -1245,9 +1253,9 @@ namespace BPASmartClient.MorkF RobotOutMeal(); WriteData("M1.2", false);//供盘复位 if (morkF.MainProcessStatus) - DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】执行取锅到清洗台控制"); + DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】执行取锅到清洗台控制"); if (morkF.MinorProessStatus) - DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】执行取锅到清洗台控制"); + DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】执行取锅到清洗台控制"); } @@ -1271,7 +1279,7 @@ namespace BPASmartClient.MorkF { CleanModuleControl("Start", 2); } - DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】执行清洗操作"); + DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】执行清洗操作"); morkF.MainProcessFlag = false; minorReset.Set(); } @@ -1286,7 +1294,7 @@ namespace BPASmartClient.MorkF { CleanModuleControl("Start", 2); } - DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】执行清洗操作"); + DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】执行清洗操作"); morkF.MinorProcessFlag = false; mainReset.Set(); } @@ -1325,9 +1333,9 @@ namespace BPASmartClient.MorkF /// public void TurnDownStatusDetect() { - int potLoc= TurnMachineOrientControl("Down"); + int potLoc = TurnMachineOrientControl("Down"); - if (potLoc==1) + if (potLoc == 1) { while (!morkF.TurnMachineDownComplete)//等待翻转机下降完成 { @@ -1335,7 +1343,7 @@ namespace BPASmartClient.MorkF } WriteData("M8.3", false);//下降完成复位 } - if (potLoc==2) + if (potLoc == 2) { while (!morkF.SecondTurnMachineDownComplete)//等待翻转机下降完成 { @@ -1354,7 +1362,7 @@ namespace BPASmartClient.MorkF //} } - + /// /// 翻转机上升及状态检测 /// @@ -1367,7 +1375,7 @@ namespace BPASmartClient.MorkF TurnMachineOrientControl("Top");//翻转机上升 if (morkF.MainProcessStatus) { - if (morkF.MainProcessPotLoc==1) + if (morkF.MainProcessPotLoc == 1) { while (!morkF.TurnMachineUpComplete)//等待翻转机上升完成以及取料完成 { @@ -1392,14 +1400,14 @@ namespace BPASmartClient.MorkF } morkF.MainOrderMaterialCom = true; morkF.MainHasTakeMaterial = false; - DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】,配料倒料完成"); + DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】,配料倒料完成"); } else //辅程准备阻塞 { morkF.MainProcessWait = true; } } - if (morkF.MainProcessPotLoc==2) + if (morkF.MainProcessPotLoc == 2) { while (!morkF.SecondTurnMachineUpComplete)//等待翻转机上升完成以及取料完成 { @@ -1424,12 +1432,12 @@ namespace BPASmartClient.MorkF } morkF.MainOrderMaterialCom = true; morkF.MainHasTakeMaterial = false; - DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】,配料倒料完成"); + DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】,配料倒料完成"); } else //辅流程准备阻塞 { morkF.MainProcessWait = true; - } + } } } if (morkF.MinorProessStatus) @@ -1459,14 +1467,14 @@ namespace BPASmartClient.MorkF } morkF.MinorOrderMaterialCom = true; morkF.MinorHasTakeMaterial = false; - DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】,配料倒料完成"); + DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】,配料倒料完成"); } else //主程准备阻塞 { morkF.MinorProcessWait = true; } } - if (morkF.MinorProcessPotLoc==2) + if (morkF.MinorProcessPotLoc == 2) { while (!morkF.SecondTurnMachineUpComplete)//等待翻转机上升完成以及取料完成 { @@ -1491,12 +1499,12 @@ namespace BPASmartClient.MorkF } morkF.MinorOrderMaterialCom = true; morkF.MinorHasTakeMaterial = false; - DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】,配料倒料完成"); + DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】,配料倒料完成"); } else //主流程准备阻塞 { morkF.MinorProcessWait = true; - } + } } } //if (morkF.MainProcessStatus)//代表主流程执行的操作 @@ -1702,7 +1710,7 @@ namespace BPASmartClient.MorkF } FirstPotGears(number); } - if (morkF.MinorProcessPotLoc==2) + if (morkF.MinorProcessPotLoc == 2) { while (!morkF.SecondPotInPlace) { @@ -1712,9 +1720,9 @@ namespace BPASmartClient.MorkF } } if (morkF.MainProcessStatus) - DeviceProcessLogShow($"订单【{ morkF.MainCurrentOrderId}】执行取锅到灶台控制"); + DeviceProcessLogShow($"订单【{morkF.MainCurrentOrderId}】执行取锅到灶台控制"); if (morkF.MinorProessStatus) - DeviceProcessLogShow($"订单【{ morkF.MinorCurrentOrderId}】执行取锅到灶台控制"); + DeviceProcessLogShow($"订单【{morkF.MinorCurrentOrderId}】执行取锅到灶台控制"); } /// /// PLC转台控制 @@ -1818,7 +1826,7 @@ namespace BPASmartClient.MorkF Task.Delay(5).Wait(); } } - if (morkF.MainProcessPotLoc==2) + if (morkF.MainProcessPotLoc == 2) { while (!morkF.SecondPotInPlace) { @@ -1832,7 +1840,7 @@ namespace BPASmartClient.MorkF Task.Delay(5).Wait(); } } - + } if (morkF.MinorProessStatus) { @@ -1876,8 +1884,8 @@ namespace BPASmartClient.MorkF { switch (orientation) { - case "Top": WriteData("M8.0", true); break; - case "Down": WriteData("M8.2", true); break; + case "Top": WriteData("M8.0", true); break; + case "Down": WriteData("M8.2", true); break; } } public void SecondPotTurnMachine(string orientation) @@ -1895,7 +1903,7 @@ namespace BPASmartClient.MorkF /// public int TurnMachineOrientControl(string orientation) { - int potLoc=0; ; + int potLoc = 0; ; //switch (orientation) //{ // case "Top": if (morkF.MainProcessStatus) WriteData("M8.0", true); if (morkF.MinorProessStatus) WriteData("M8.4", true); break; @@ -1911,7 +1919,7 @@ namespace BPASmartClient.MorkF if (morkF.MainProcessPotLoc == 2) { SecondPotTurnMachine(orientation); - potLoc=2; + potLoc = 2; } } if (morkF.MinorProessStatus) @@ -1971,7 +1979,7 @@ namespace BPASmartClient.MorkF //} if (morkF.MainProcessStatus) { - if (morkF.MainProcessPotLoc==1) + if (morkF.MainProcessPotLoc == 1) { FirstPotTurnMachine(gear); } @@ -1982,7 +1990,7 @@ namespace BPASmartClient.MorkF } if (morkF.MinorProessStatus) { - if (morkF.MinorProcessPotLoc==1) + if (morkF.MinorProcessPotLoc == 1) { FirstPotTurnMachine(gear); } @@ -1996,7 +2004,7 @@ namespace BPASmartClient.MorkF /// /// 取A,B,C料 /// - public void TakeBurden(int loc) + public void TakeBurden() { if (morkF.MainProcessStatus && morkF.PotInPlace) WriteData("M14.1", true);//机器人倒料至1号锅 diff --git a/BPASmartClient.MorkF/GVL_MorkF.cs b/BPASmartClient.MorkF/GVL_MorkF.cs index a74c25d0..f9229946 100644 --- a/BPASmartClient.MorkF/GVL_MorkF.cs +++ b/BPASmartClient.MorkF/GVL_MorkF.cs @@ -10,6 +10,7 @@ namespace BPASmartClient.MorkF { internal class GVL_MorkF { + /// /// 初始化完成状态 /// diff --git a/BPASmartClient.MorkF/Model/General_Config.cs b/BPASmartClient.MorkF/Model/General_Config.cs new file mode 100644 index 00000000..39e2eb74 --- /dev/null +++ b/BPASmartClient.MorkF/Model/General_Config.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BPASmartClient.MorkF.Model +{ + internal class General_Config + { + public static bool SimOrderAllow { get; set; } + } +} diff --git a/BPASmartClient.MorkF/OrderLocInfo.cs b/BPASmartClient.MorkF/OrderLocInfo.cs index d39a8a4e..4d171aa3 100644 --- a/BPASmartClient.MorkF/OrderLocInfo.cs +++ b/BPASmartClient.MorkF/OrderLocInfo.cs @@ -9,7 +9,7 @@ namespace BPASmartClient.MorkF internal class OrderLocInfo { public string SuborderId { get; set; } - public ushort MaterialLoc { get; set; }//物料位置 + public List MaterialLoc { get; set; } = new List();//物料A位置 public ushort RecipeNumber { get; set; } public int BatchingId { get; set; } } diff --git a/BPASmartClient.MorkF/View/DebugView.xaml b/BPASmartClient.MorkF/View/DebugView.xaml index 5ec519b6..9bac5ef9 100644 --- a/BPASmartClient.MorkF/View/DebugView.xaml +++ b/BPASmartClient.MorkF/View/DebugView.xaml @@ -36,6 +36,7 @@ + diff --git a/BPASmartClient.MorkF/View/DebugView.xaml.cs b/BPASmartClient.MorkF/View/DebugView.xaml.cs index 2812751f..397537de 100644 --- a/BPASmartClient.MorkF/View/DebugView.xaml.cs +++ b/BPASmartClient.MorkF/View/DebugView.xaml.cs @@ -25,6 +25,7 @@ namespace BPASmartClient.MorkF.View { InitializeComponent(); this.DataContext = new DebugViewModel(); + } } } diff --git a/BPASmartClient.MorkF/ViewModel/DebugViewModel.cs b/BPASmartClient.MorkF/ViewModel/DebugViewModel.cs index d7bf15cf..3ddf16ab 100644 --- a/BPASmartClient.MorkF/ViewModel/DebugViewModel.cs +++ b/BPASmartClient.MorkF/ViewModel/DebugViewModel.cs @@ -1,4 +1,5 @@ using BPASmartClient.Helper; +using BPASmartClient.MorkF.Model; using Microsoft.Toolkit.Mvvm.ComponentModel; using Microsoft.Toolkit.Mvvm.Input; using System; @@ -11,6 +12,7 @@ namespace BPASmartClient.MorkF.ViewModel { internal class DebugViewModel : ObservableObject { + public bool SimOrderEnable { get { return General_Config.SimOrderAllow; } set { General_Config.SimOrderAllow = value; OnPropertyChanged(); } } public RelayCommand PlcInite { get; set; } public RelayCommand SimulateOrder { get; set; } @@ -64,7 +66,8 @@ namespace BPASmartClient.MorkF.ViewModel public DebugViewModel() { PlcInite = new RelayCommand(() => { ActionManage.GetInstance.Send("InitCommand"); }); - SimulateOrder = new RelayCommand(() => { ActionManage.GetInstance.Send("SimultaorOrder"); }); + + SimulateOrder = new RelayCommand(() => {ActionManage.GetInstance.Send("SimultaorOrder"); }); MaterialOne= new RelayCommand(() => { ActionManage.GetInstance.Send("MaterialOne"); }); MaterialTwo = new RelayCommand(() => { ActionManage.GetInstance.Send("MaterialTwo"); }); MaterialThree = new RelayCommand(() => { ActionManage.GetInstance.Send("MaterialThree"); }); diff --git a/BPASmartClient.MorkM/Control_MORKM.cs b/BPASmartClient.MorkM/Control_MORKM.cs index 73ad82f5..89a9b841 100644 --- a/BPASmartClient.MorkM/Control_MORKM.cs +++ b/BPASmartClient.MorkM/Control_MORKM.cs @@ -15,6 +15,7 @@ using BPASmartClient.MorkM.Model; using System.Collections.ObjectModel; using BPASmartClient.Model.PLC; using BPASmartClient.MorkM.ViewModel; +using BPA.Message; namespace BPASmartClient.MorkM { @@ -800,6 +801,7 @@ namespace BPASmartClient.MorkM } }); + //配方数据信息 EventBus.EventBus.GetInstance().Subscribe(DeviceId, delegate (IEvent @event, EventCallBackHandle callBack) { @@ -811,7 +813,7 @@ namespace BPASmartClient.MorkM } }); } - + public override void DoMain() { MonitorViewModel.DeviceId = DeviceId; diff --git a/BPASmartClient.MorkS/Control_Morks.cs b/BPASmartClient.MorkS/Control_Morks.cs index 0e080003..e190d06d 100644 --- a/BPASmartClient.MorkS/Control_Morks.cs +++ b/BPASmartClient.MorkS/Control_Morks.cs @@ -18,6 +18,8 @@ using BPASmartClient.MorkS.Model; using System.Collections.ObjectModel; using BPASmartClient.MorkS.ViewModel; using BPASmartClient.Business; +using BPASmartClient.Model.小炒机; +using BPA.Models; namespace BPASmartClient.MorkS { @@ -113,8 +115,10 @@ namespace BPASmartClient.MorkS WriteRecipeBoms(); } }); + + } - + private void OrderChange(string subid, ORDER_STATUS oRDER_STATUS) { var res = mORKS.doOrderEvents.FirstOrDefault(p => p.MorkOrder.SuborderId == subid); diff --git a/BPASmartClient/App.config b/BPASmartClient/App.config index 4e21d83c..fc532a83 100644 --- a/BPASmartClient/App.config +++ b/BPASmartClient/App.config @@ -7,14 +7,14 @@ - + - + diff --git a/DosingSystem/DosingSystem.csproj b/DosingSystem/DosingSystem.csproj index 7dff77c7..ea23d1a5 100644 --- a/DosingSystem/DosingSystem.csproj +++ b/DosingSystem/DosingSystem.csproj @@ -14,7 +14,7 @@ - +