From c5b22535d46037befa33e1b8918a492dd49f5558 Mon Sep 17 00:00:00 2001 From: liuwf Date: Sun, 31 Dec 2023 16:41:21 +0800 Subject: [PATCH] change. --- .../Business/CollectionFoamLine.cs | 123 +++++++++++------- .../Business/CollectionFoamMachine.cs | 120 ++++++++--------- 2 files changed, 136 insertions(+), 107 deletions(-) diff --git a/Aucma.Core.BoxFoam/Business/CollectionFoamLine.cs b/Aucma.Core.BoxFoam/Business/CollectionFoamLine.cs index 54557acd..ffa37c64 100644 --- a/Aucma.Core.BoxFoam/Business/CollectionFoamLine.cs +++ b/Aucma.Core.BoxFoam/Business/CollectionFoamLine.cs @@ -60,6 +60,7 @@ namespace Aucma.Core.BoxFoam.Business SolidifyTimeList.Clear(); ActualTimeList.Clear(); listFixtureStatus.Clear(); + ReadMoldTemperature(obj,MoldTemperatureList); ReadBoxType(obj, BoxTypeList); // ok ReadFixtureStatus(obj, HolderStatusList); //ok ReadFixtureProduction(obj, HolderOutPutList); //ok @@ -105,6 +106,15 @@ namespace Aucma.Core.BoxFoam.Business { model.PlanCuringTime = 0; } + if (MoldTemperatureList.Count > 0 && MoldTemperatureList != null) + { + model.InternalTemperature = MoldTemperatureList[i].ToString(); + model.OutsideTemperature = MoldTemperatureList[i+12].ToString(); + } + else + { + model.PlanCuringTime = 0; + } listFixtureStatus.Add(model); } RefreshBoxFoamDataDelegateEvent?.Invoke(listFixtureStatus); @@ -334,44 +344,65 @@ namespace Aucma.Core.BoxFoam.Business if (obj == null) return; if (obj.plc.IsConnected) { - byte[] result = obj.plc.Read("DB8.294", 96); - byte[] info = result; - - // float temp1 = BitConverter.ToSingle(BitConverter.GetBytes(Convert.ToInt32(StringChange.bytesToHexStr(info.Skip(0).Take(4).ToArray(), 16)), 0); - - //if (BitConverter.IsLittleEndian) - //{ - // Array.Reverse(info.Skip(0).Take(4).ToArray()); // 如果系统是小端字节序,则反转字节数组的顺序 - //} - - float temp1 = float.Parse(StringChange.bytesToHexStr(info.Skip(0).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp2 = int.Parse(StringChange.bytesToHexStr(info.Skip(4).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp3 = int.Parse(StringChange.bytesToHexStr(info.Skip(8).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp4 = int.Parse(StringChange.bytesToHexStr(info.Skip(12).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp5 = int.Parse(StringChange.bytesToHexStr(info.Skip(16).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp6 = int.Parse(StringChange.bytesToHexStr(info.Skip(20).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp7 = int.Parse(StringChange.bytesToHexStr(info.Skip(24).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp8 = int.Parse(StringChange.bytesToHexStr(info.Skip(28).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp9 = int.Parse(StringChange.bytesToHexStr(info.Skip(32).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp10 = int.Parse(StringChange.bytesToHexStr(info.Skip(36).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp11 = int.Parse(StringChange.bytesToHexStr(info.Skip(40).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - int temp12 = int.Parse(StringChange.bytesToHexStr(info.Skip(44).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber); - - MoldTemperatureList.Add(temp1); - MoldTemperatureList.Add(temp2); + byte[] info = obj.plc.Read("DB8.294", 284); + float temp1 = byteToFloat(info.Skip(0).Take(4).ToArray()); + float temp2 = byteToFloat(info.Skip(6).Take(4).ToArray()); + float temp3 = byteToFloat(info.Skip(24).Take(4).ToArray()); + float temp4 = byteToFloat(info.Skip(40).Take(4).ToArray()); + float temp5 = byteToFloat(info.Skip(48).Take(4).ToArray()); + float temp6 = byteToFloat(info.Skip(64).Take(4).ToArray()); + float temp7 = byteToFloat(info.Skip(72).Take(4).ToArray()); + float temp8 = byteToFloat(info.Skip(88).Take(4).ToArray()); + + float temp9 = byteToFloat(info.Skip(96).Take(4).ToArray()); + float temp10 = byteToFloat(info.Skip(112).Take(4).ToArray()); + float temp11 = byteToFloat(info.Skip(120).Take(4).ToArray()); + float temp12 = byteToFloat(info.Skip(136).Take(4).ToArray()); + float temp13 = byteToFloat(info.Skip(144).Take(4).ToArray()); + float temp14 = byteToFloat(info.Skip(160).Take(4).ToArray()); + + float temp15 = byteToFloat(info.Skip(168).Take(4).ToArray()); + float temp16 = byteToFloat(info.Skip(184).Take(4).ToArray()); + + float temp17 = byteToFloat(info.Skip(192).Take(4).ToArray()); + float temp18 = byteToFloat(info.Skip(208).Take(4).ToArray()); + + float temp19 = byteToFloat(info.Skip(216).Take(4).ToArray()); + float temp20 = byteToFloat(info.Skip(232).Take(4).ToArray()); + + float temp21 = byteToFloat(info.Skip(240).Take(4).ToArray()); + float temp22 = byteToFloat(info.Skip(256).Take(4).ToArray()); + float temp23 = byteToFloat(info.Skip(264).Take(4).ToArray()); + float temp24 = byteToFloat(info.Skip(280).Take(4).ToArray()); + + + + MoldTemperatureList.Add(temp1); MoldTemperatureList.Add(temp3); + MoldTemperatureList.Add(temp5); + MoldTemperatureList.Add(temp7); + MoldTemperatureList.Add(temp9); + MoldTemperatureList.Add(temp11); + MoldTemperatureList.Add(temp13); + MoldTemperatureList.Add(temp15); + MoldTemperatureList.Add(temp17); + MoldTemperatureList.Add(temp19); + MoldTemperatureList.Add(temp21); + MoldTemperatureList.Add(temp23); + MoldTemperatureList.Add(temp2); MoldTemperatureList.Add(temp4); - MoldTemperatureList.Add(temp5); MoldTemperatureList.Add(temp6); - MoldTemperatureList.Add(temp7); MoldTemperatureList.Add(temp8); - MoldTemperatureList.Add(temp9); MoldTemperatureList.Add(temp10); - MoldTemperatureList.Add(temp11); MoldTemperatureList.Add(temp12); + MoldTemperatureList.Add(temp14); + MoldTemperatureList.Add(temp16); + MoldTemperatureList.Add(temp18); + MoldTemperatureList.Add(temp20); + MoldTemperatureList.Add(temp22); + MoldTemperatureList.Add(temp24); + - Console.WriteLine($"读取固化时间显示值,1#:{temp1};2#:{temp2};3#:{temp3};4#:{temp4};5#:{temp5};6#:{temp6}"); - Console.WriteLine($"读取固化时间显示值,7#:{temp7};8#:{temp8};9#:{temp9};10#:{temp10};11#:{temp11};12#:{temp12}"); } } @@ -396,24 +427,22 @@ namespace Aucma.Core.BoxFoam.Business #region 字符工具转换方法 - /// byte[]转十进制ascii码 + /// + /// byte数组转换为float + /// + static float byteToFloat(byte[] list) + { + float result = 0.00f; + Array.Reverse(list); + result = BitConverter.ToSingle(list, 0); + return result; + + } + /// + /// byte[]转二进制 /// /// - static string ByteArrayToString(byte[] bytes) - { - string result = string.Empty; - foreach (byte b in bytes) - { - int decimalValue = Convert.ToInt32(b); // 将字节转换为十进制值 - result += decimalValue; - } - return result; - } - /// - /// byte[]转二进制 - /// - /// - static string ByteArrayToBinary(byte[] bytes) + static string ByteArrayToBinary(byte[] bytes) { StringBuilder binaryString = new StringBuilder(); diff --git a/Aucma.Core.BoxFoam/Business/CollectionFoamMachine.cs b/Aucma.Core.BoxFoam/Business/CollectionFoamMachine.cs index 1e624859..6ee25639 100644 --- a/Aucma.Core.BoxFoam/Business/CollectionFoamMachine.cs +++ b/Aucma.Core.BoxFoam/Business/CollectionFoamMachine.cs @@ -37,9 +37,9 @@ namespace Aucma.Core.BoxFoam.Business // ReadEquipSystem(obj, "DB50.388"); //采集1系统 // ReadEquipSystem(obj, "DB50.642"); //采集2系统 // ReadGunData(obj, "DB50.896"); //A1枪数据 - ReadGunData(obj, "DB50.1084"); //A1枪数据 - ReadGunData(obj, "DB50.1272"); //A1枪数据 - ReadGunData(obj, "DB50.1460"); //A1枪数据 + // ReadGunData(obj, "DB50.1084"); //A1枪数据 + // ReadGunData(obj, "DB50.1272"); //A1枪数据 + // ReadGunData(obj, "DB50.1460"); //A1枪数据 }); } @@ -120,63 +120,63 @@ namespace Aucma.Core.BoxFoam.Business } } - /// - /// 采集最后一枪数据 - /// - /// - public async Task CollectLast() - { - var obj = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("Plc1")); - if (obj != null && obj.plc.IsConnected) - { - BoxLastShotRecord lastShotRecord = new BoxLastShotRecord(); - byte[] info = obj.plc.ReadBytes("DB50.896", (ushort)88); - IByteTransform byteTransform = new RegularByteTransform(); - - lastShotRecord.System = "1"; - lastShotRecord.GunCode = "A1"; - lastShotRecord.GunCode = "A1"; - #region 赋值 - lastShotRecord.PolTemp = Encoding.ASCII.GetString(info.Skip(0).Take(4).ToArray()); - lastShotRecord.PolHp = StringChange.bytesToHexStr(info.Skip(4).Take(4).ToArray(), 4); - lastShotRecord.PolVol = StringChange.bytesToHexStr(info.Skip(8).Take(4).ToArray(), 4); - lastShotRecord.PolUsage = StringChange.bytesToHexStr(info.Skip(12).Take(4).ToArray(), 4); - lastShotRecord.IsoTemp = StringChange.bytesToHexStr(info.Skip(16).Take(4).ToArray(), 4); - lastShotRecord.IsoHp = StringChange.bytesToHexStr(info.Skip(20).Take(4).ToArray(), 4); - lastShotRecord.IsoVol = StringChange.bytesToHexStr(info.Skip(24).Take(4).ToArray(), 4); - lastShotRecord.IsoUsage = StringChange.bytesToHexStr(info.Skip(28).Take(4).ToArray(), 4); - lastShotRecord.PourNu = StringChange.bytesToHexStr(info.Skip(36).Take(2).ToArray(), 2); - lastShotRecord.SetTime = StringChange.bytesToHexStr(info.Skip(38).Take(4).ToArray(), 4); - lastShotRecord.SetWeight = StringChange.bytesToHexStr(info.Skip(42).Take(4).ToArray(), 4); - lastShotRecord.SetRatio = StringChange.bytesToHexStr(info.Skip(46).Take(4).ToArray(), 4); - lastShotRecord.PourWeight = StringChange.bytesToHexStr(info.Skip(50).Take(4).ToArray(), 4); - lastShotRecord.PourRatio = StringChange.bytesToHexStr(info.Skip(54).Take(4).ToArray(), 4); - lastShotRecord.MpTime = StringChange.bytesToHexStr(info.Skip(58).Take(4).ToArray(), 4); - lastShotRecord.HpTime = StringChange.bytesToHexStr(info.Skip(62).Take(4).ToArray(), 4); - lastShotRecord.HydrPress = StringChange.bytesToHexStr(info.Skip(66).Take(4).ToArray(), 4); - lastShotRecord.HydrTemp = StringChange.bytesToHexStr(info.Skip(70).Take(4).ToArray(), 4); - lastShotRecord.MixpistOn = StringChange.bytesToHexStr(info.Skip(74).Take(4).ToArray(), 4); - lastShotRecord.MixpistOff = StringChange.bytesToHexStr(info.Skip(78).Take(4).ToArray(), 4); - lastShotRecord.TotalYield = StringChange.bytesToHexStr(info.Skip(82).Take(4).ToArray(), 4); - lastShotRecord.PourEnd = StringChange.bytesToHexStr(info.Skip(87).Take(1).ToArray(), 1); - lastShotRecord.CreateTime = DateTime.Now; - #endregion - - //if (tempLastRecord == null) - //{ - // //数据库查 - // tempLastRecord = _lastShotRecordServices.Query(x => x.System == lastShotRecord.System && x.ProductLineCode == lastShotRecord.ProductLineCode && x.GunCode == lastShotRecord.GunCode).OrderByDescending(x => x.CreateTime).FirstOrDefault(); - //} - //if (tempLastRecord == null || !tempLastRecord.MixpistOff.Equals(lastShotRecord.MixpistOff)) - //{ - // // 刷新页面 - // RefreshLastShotDataDelegateEvent?.Invoke(lastShotRecord); - // //保存 - // _lastShotRecordServices.AddAsync(lastShotRecord); - // tempLastRecord = lastShotRecord; - //} - } - } + ///// + ///// 采集最后一枪数据 + ///// + ///// + //public async Task CollectLast() + //{ + // var obj = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("Plc1")); + // if (obj != null && obj.plc.IsConnected) + // { + // BoxLastShotRecord lastShotRecord = new BoxLastShotRecord(); + // byte[] info = obj.plc.ReadBytes("DB50.896", (ushort)88); + // IByteTransform byteTransform = new RegularByteTransform(); + + // lastShotRecord.System = "1"; + // lastShotRecord.GunCode = "A1"; + // lastShotRecord.GunCode = "A1"; + // #region 赋值 + // lastShotRecord.PolTemp = Encoding.ASCII.GetString(info.Skip(0).Take(4).ToArray()); + // lastShotRecord.PolHp = StringChange.bytesToHexStr(info.Skip(4).Take(4).ToArray(), 4); + // lastShotRecord.PolVol = StringChange.bytesToHexStr(info.Skip(8).Take(4).ToArray(), 4); + // lastShotRecord.PolUsage = StringChange.bytesToHexStr(info.Skip(12).Take(4).ToArray(), 4); + // lastShotRecord.IsoTemp = StringChange.bytesToHexStr(info.Skip(16).Take(4).ToArray(), 4); + // lastShotRecord.IsoHp = StringChange.bytesToHexStr(info.Skip(20).Take(4).ToArray(), 4); + // lastShotRecord.IsoVol = StringChange.bytesToHexStr(info.Skip(24).Take(4).ToArray(), 4); + // lastShotRecord.IsoUsage = StringChange.bytesToHexStr(info.Skip(28).Take(4).ToArray(), 4); + // lastShotRecord.PourNu = StringChange.bytesToHexStr(info.Skip(36).Take(2).ToArray(), 2); + // lastShotRecord.SetTime = StringChange.bytesToHexStr(info.Skip(38).Take(4).ToArray(), 4); + // lastShotRecord.SetWeight = StringChange.bytesToHexStr(info.Skip(42).Take(4).ToArray(), 4); + // lastShotRecord.SetRatio = StringChange.bytesToHexStr(info.Skip(46).Take(4).ToArray(), 4); + // lastShotRecord.PourWeight = StringChange.bytesToHexStr(info.Skip(50).Take(4).ToArray(), 4); + // lastShotRecord.PourRatio = StringChange.bytesToHexStr(info.Skip(54).Take(4).ToArray(), 4); + // lastShotRecord.MpTime = StringChange.bytesToHexStr(info.Skip(58).Take(4).ToArray(), 4); + // lastShotRecord.HpTime = StringChange.bytesToHexStr(info.Skip(62).Take(4).ToArray(), 4); + // lastShotRecord.HydrPress = StringChange.bytesToHexStr(info.Skip(66).Take(4).ToArray(), 4); + // lastShotRecord.HydrTemp = StringChange.bytesToHexStr(info.Skip(70).Take(4).ToArray(), 4); + // lastShotRecord.MixpistOn = StringChange.bytesToHexStr(info.Skip(74).Take(4).ToArray(), 4); + // lastShotRecord.MixpistOff = StringChange.bytesToHexStr(info.Skip(78).Take(4).ToArray(), 4); + // lastShotRecord.TotalYield = StringChange.bytesToHexStr(info.Skip(82).Take(4).ToArray(), 4); + // lastShotRecord.PourEnd = StringChange.bytesToHexStr(info.Skip(87).Take(1).ToArray(), 1); + // lastShotRecord.CreateTime = DateTime.Now; + // #endregion + + // //if (tempLastRecord == null) + // //{ + // // //数据库查 + // // tempLastRecord = _lastShotRecordServices.Query(x => x.System == lastShotRecord.System && x.ProductLineCode == lastShotRecord.ProductLineCode && x.GunCode == lastShotRecord.GunCode).OrderByDescending(x => x.CreateTime).FirstOrDefault(); + // //} + // //if (tempLastRecord == null || !tempLastRecord.MixpistOff.Equals(lastShotRecord.MixpistOff)) + // //{ + // // // 刷新页面 + // // RefreshLastShotDataDelegateEvent?.Invoke(lastShotRecord); + // // //保存 + // // _lastShotRecordServices.AddAsync(lastShotRecord); + // // tempLastRecord = lastShotRecord; + // //} + // } + //} #region 字符工具转换方法 /// byte[]转十进制ascii码