diff --git a/DosingSystem/ExcuteControl .cs b/DosingSystem/ExcuteControl .cs index 50f81a33..0474788c 100644 --- a/DosingSystem/ExcuteControl .cs +++ b/DosingSystem/ExcuteControl .cs @@ -1377,7 +1377,6 @@ namespace BPASmartClient.DosingSystem { recipeProcesses.Clear(); - TaskManage.GetInstance.StartLong(() => { SimensSend.GetInstance.SendSimens.Write("M0.0", true); @@ -1391,7 +1390,7 @@ namespace BPASmartClient.DosingSystem { if (DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.RunStatus == 1) { - if (DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.MaxPassPail == DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.PassPail && DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.PailArrive == 0) + if (DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.MaxPassPail <= DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.PassPail && DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.PailArrive == 0) { if (!doDeviceCount.ContainsKey(DeviceInquire.GetInstance.devices[i].IpAddress)) { @@ -1401,20 +1400,12 @@ namespace BPASmartClient.DosingSystem { int index = 0; int recipeNameNum = doDeviceCount[DeviceInquire.GetInstance.devices[i].IpAddress]; - if (doDeviceCount[DeviceInquire.GetInstance.devices[i].IpAddress] == DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.DoRecipeCount && DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.DoRecipeCount< recipeProcesses.Count) + if (doDeviceCount[DeviceInquire.GetInstance.devices[i].IpAddress] == DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.DoRecipeCount&& doDeviceCount[DeviceInquire.GetInstance.devices[i].IpAddress]< RecipeNames.Count) { index = Array.FindIndex(Recipes.ToArray(), p => p.RecipeName == RecipeNames.ElementAt(recipeNameNum)); - - if (index > 0 && index < Recipes.Count) + if (index >= 0 && index < Recipes.Count) { - App.Current.Dispatcher.Invoke(new Action(() => - { - if (UserTreeWait.Count > 0) - { - recipeProcesses.Insert(0, UserTreeWait?.ToList().Find(a => a.RecipeName == RecipeNames.ElementAt(recipeNameNum))); - UserTreeWait.RemoveAt(UserTreeWait.ToList().FindIndex(a => a.RecipeName == RecipeNames.ElementAt(recipeNameNum))); - } - })); + int maxPail = 0; foreach (var rawMaterial in Recipes.ElementAt(index).RawMaterials) { @@ -1426,6 +1417,14 @@ namespace BPASmartClient.DosingSystem DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.DeletePassPail.ToAdd(), 1); DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.MaxPail.ToAdd(), (ushort)maxPail); doDeviceCount.TryUpdate(DeviceInquire.GetInstance.devices[i].IpAddress, doDeviceCount[DeviceInquire.GetInstance.devices[i].IpAddress] + 1, doDeviceCount[DeviceInquire.GetInstance.devices[i].IpAddress]); + App.Current.Dispatcher.Invoke(new Action(() => + { + if (doDeviceCount.ContainsKey("192.168.2.10")&&UserTreeWait.Count > 0 && doDeviceCount["192.168.2.10"] > recipeProcesses.Count) + { + recipeProcesses.Insert(0, UserTreeWait?.ToList().Find(a => a.RecipeName == RecipeNames.ElementAt(recipeNameNum))); + UserTreeWait.RemoveAt(UserTreeWait.ToList().FindIndex(a => a.RecipeName == RecipeNames.ElementAt(recipeNameNum))); + } + })); } } @@ -1463,7 +1462,7 @@ namespace BPASmartClient.DosingSystem { if (DeviceInquire.GetInstance.DeviceLists.ContainsKey(DeviceInquire.GetInstance.devices[i].IpAddress) && doDeviceCount.ContainsKey(DeviceInquire.GetInstance.devices[i].IpAddress)) { - if (DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.PailArrive == 1 && DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.RunStatus == 1 && doDecipeCount > 0) + if (DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.PailArrive == 1 && DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.RunStatus == 1 && DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.DoRecipeCount > 0) { int doCount = Array.FindIndex(Recipes.ToArray(), p => p.RecipeName == RecipeNames.ElementAt(DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.DoRecipeCount - 1)); if (doCount >= 0 && doCount < Recipes.Count) @@ -1476,8 +1475,6 @@ namespace BPASmartClient.DosingSystem DeviceParModel deviceSet = Json.Data.deviceParModels?.ToList().Find(a => a.MaterialName == DeviceInquire.GetInstance.devices[i].DeviceName); if (deviceSet != null && DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].IsConnected == true) { - //开始配料信号 - DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.Start.ToAdd(), (ushort)1); //传送带停止 DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), 0); //设置下料重量 @@ -1494,6 +1491,8 @@ namespace BPASmartClient.DosingSystem //设置料仓上下限重量 DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.SiloUpperLimitWeight.ToAdd(), deviceSet.SiloUpperLimitWeight); DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.LowerLimitWeightOfSilo.ToAdd(), deviceSet.LowerLimitWeightOfSilo); + //开始配料信号 + DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.Start.ToAdd(), (ushort)1); ////设置搅拌速度 //DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.StirringSpeed.ToAdd(), deviceSet.StirringSpeed); } @@ -1514,12 +1513,24 @@ namespace BPASmartClient.DosingSystem DeviceStatus nextDevice = new DeviceStatus(); TaskManage.GetInstance.StartLong(() => { - + for (int i = 0; i < DeviceInquire.GetInstance.devices.Count; i++) { if (DeviceInquire.GetInstance.DeviceLists.ContainsKey(DeviceInquire.GetInstance.devices[i].IpAddress)) { - if (DeviceInquire.GetInstance.devices[i].IpAddress != $"192.168.2.{Json.Data.BaseParModel.StockCount * 10}") + if (DeviceInquire.GetInstance.devices[i].IpAddress == "192.168.2.90") + { + if (DeviceInquire.GetInstance.DeviceLists[ DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.PailArrive == 1) + { + SimensSend.GetInstance.SendSimens.Write("DB1.DBX702.0", 0); + } + else + { + SimensSend.GetInstance.SendSimens.Write("DB1.DBW104", (ushort)600); + SimensSend.GetInstance.SendSimens.Write("DB1.DBX702.0", 1); + } + } + if (DeviceInquire.GetInstance.devices[i].IpAddress != $"192.168.2.{Json.Data.BaseParModel.StockCount * 10}"&& DeviceInquire.GetInstance.devices[i].IpAddress != $"192.168.2.{(Json.Data.BaseParModel.StockCount-1) * 10}") { ushort deviceNum = DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.DeviceNum; @@ -1536,13 +1547,13 @@ namespace BPASmartClient.DosingSystem if (DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.PailArrive == 1 && DeviceInquire.GetInstance.DeviceLists[nextIp].deviceStatus.PailArrive == 1) { - DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), 0); + DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(),(ushort)0); } else { DeviceParModel deviceSet = Json.Data.deviceParModels?.ToList().Find(a => a.MaterialName == DeviceInquire.GetInstance.devices[i].DeviceName); - DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSp.ToAdd(), 500); - DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), 1); + DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSp.ToAdd(), 600); + DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), (ushort)1); } } else @@ -1552,28 +1563,57 @@ namespace BPASmartClient.DosingSystem } } + else + { + DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), 0); + } } else { - if (SimensSend.GetInstance.sendCtrlModel.SendInfo) - { - DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), (ushort)0); - - } - else + string x = $"192.168.2.{(Json.Data.BaseParModel.StockCount - 1) * 10}"; + if (DeviceInquire.GetInstance.DeviceLists.ContainsKey($"192.168.2.{ Json.Data.BaseParModel.StockCount * 10}") && DeviceInquire.GetInstance.DeviceLists.ContainsKey($"192.168.2.{(Json.Data.BaseParModel.StockCount - 1) * 10}")) { - DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSp.ToAdd(), 500); - DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), (ushort)1); + if (SimensSend.GetInstance.sendCtrlModel.SendInfo) + { + DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{Json.Data.BaseParModel.StockCount * 10}"].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), (ushort)0); + if (DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{(Json.Data.BaseParModel.StockCount - 1) * 10}"].deviceStatus.PailArrive == 1) + { + DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{(Json.Data.BaseParModel.StockCount - 1) * 10}"].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), (ushort)0); + } + else + { + DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{(Json.Data.BaseParModel.StockCount - 1) * 10}"].modbusTcp.Write(DeviceAddress.TranspportSp.ToAdd(), 600); + DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{(Json.Data.BaseParModel.StockCount - 1) * 10}"].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), (ushort)1); + } + + } + else + { + if (DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{ Json.Data.BaseParModel.StockCount * 10}"].deviceStatus.RunStatus != 2) + { + DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{ Json.Data.BaseParModel.StockCount * 10}"].modbusTcp.Write(DeviceAddress.TranspportSp.ToAdd(), 600); + DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{ Json.Data.BaseParModel.StockCount * 10}"].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), (ushort)1); + } + else + { + DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{ Json.Data.BaseParModel.StockCount * 10}"].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), (ushort)0); + } + if (DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{(Json.Data.BaseParModel.StockCount) * 10}"].deviceStatus.PailArrive == 1|| DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{(Json.Data.BaseParModel.StockCount - 1) * 10}"].deviceStatus.RunStatus == 2) + { + DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{(Json.Data.BaseParModel.StockCount - 1) * 10}"].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), (ushort)0); + } + else + { + DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{(Json.Data.BaseParModel.StockCount - 1) * 10}"].modbusTcp.Write(DeviceAddress.TranspportSp.ToAdd(), 600); + DeviceInquire.GetInstance.DeviceLists[$"192.168.2.{(Json.Data.BaseParModel.StockCount - 1) * 10}"].modbusTcp.Write(DeviceAddress.TranspportSwitch.ToAdd(), (ushort)1); + } + } } + } - - if (DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.MaxPassPail != 0 && (DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.RunStatus == 1 && DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.MaxPassPail == DeviceInquire.GetInstance.DeviceLists[DeviceInquire.GetInstance.devices[i].IpAddress].deviceStatus.PassPail)) - { - - } } } diff --git a/DosingSystem/Model/DeviceInquire.cs b/DosingSystem/Model/DeviceInquire.cs index 51da7d30..388a035a 100644 --- a/DosingSystem/Model/DeviceInquire.cs +++ b/DosingSystem/Model/DeviceInquire.cs @@ -453,7 +453,6 @@ namespace BPASmartClient.DosingSystem Thread.Sleep(1000); if (ExcuteControl.GetInstance.mqttCollection.ContainsKey($"Stock{IpAddress.Split(".")[3].Substring(0, 1)}") && ExcuteControl.GetInstance.mqttCollection[$"Stock{IpAddress.Split(".")[3].Substring(0, 1)}"]._mqttClient.IsConnected) { - StockPropertyReport(); StockEventReport(); }