dev
liuwf 1 year ago
parent eaf3f789b4
commit c5b22535d4

@ -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码
/// <summary>
/// byte数组转换为float
/// </summary>
static float byteToFloat(byte[] list)
{
float result = 0.00f;
Array.Reverse(list);
result = BitConverter.ToSingle(list, 0);
return result;
}
/// <summary>
/// byte[]转二进制
/// </summary>
/// <param name="bytes"></param>
static string ByteArrayToString(byte[] bytes)
{
string result = string.Empty;
foreach (byte b in bytes)
{
int decimalValue = Convert.ToInt32(b); // 将字节转换为十进制值
result += decimalValue;
}
return result;
}
/// <summary>
/// byte[]转二进制
/// </summary>
/// <param name="bytes"></param>
static string ByteArrayToBinary(byte[] bytes)
static string ByteArrayToBinary(byte[] bytes)
{
StringBuilder binaryString = new StringBuilder();

@ -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
}
}
/// <summary>
/// 采集最后一枪数据
/// </summary>
/// <returns></returns>
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;
//}
}
}
///// <summary>
///// 采集最后一枪数据
///// </summary>
///// <returns></returns>
//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码

Loading…
Cancel
Save