using Admin.Core.Common;
using Admin.Core.Common.Helper;
using Admin.Core.IService;
using Admin.Core.Model;
using Aucma.Core.HwPLc;
using Microsoft.Extensions.DependencyInjection;
using NetTaste;
using NPOI.SS.Formula.Functions;
using NPOI.Util;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.DirectoryServices.Protocols;
using System.Linq;
using System.Security.RightsManagement;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Documents;
namespace Aucma.Core.DoorFoam.Business
{
///
/// 采集发泡线数据
///
public class DoorCollection
{
private static System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
private IDoorFoamMachineServices _doorFoamMachineServices;
///
/// 刷新门体发泡数据
///
///
public delegate void RefreshDoorFoamMachine(List doorFoams);
public event RefreshDoorFoamMachine RefreshDoorFoamMachineEvent;
public DoorCollection()
{
_doorFoamMachineServices = App.ServiceProvider.GetService();
}
public void startCollect()
{
while (true)
{
//semaphore.WaitOne();
try
{
Thread.Sleep(5000);
var obj = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("DoorPlc"));
if (obj != null)
{
//读取所有模具状态
List moldStatusList = ReadModeStatus(obj);
//读取所有模具型号
List moldTypeList = ReadModeType(obj);
//读取所有模具产量
List aDoorMoldOutPutList = ReadADoorModeProduct(obj);
List bDoorMoldOutPutList = ReadBDoorModeProduct(obj);
#region 读取设备状态(1运行 2停机 3故障)、生产节拍、节拍、设备报警
byte[] info = obj.plc.Read("DB490.646", 10);
int deviceStatus = 0;
float productTakt = 0;
float taktNum = 0;
if (info != null)
{
//设备状态1运行 2停机 3故障
deviceStatus = judgeStatus(ByteArrayToBinary(info.Skip(0).Take(1).ToArray()));
// 台车节拍
productTakt = int.Parse(StringChange.bytesToHexStr(info.Skip(2).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber);
//整圈节拍
taktNum = int.Parse(StringChange.bytesToHexStr(info.Skip(6).Take(4).ToArray(), 4), System.Globalization.NumberStyles.HexNumber);
}
int deviceAlarm = obj.plc.ReadInt32("DB490.2136");
#endregion
List result = new List();
var mergedCollection = from moldStatus in moldStatusList
join moldType in moldTypeList on new { moldStatus.StationTrolleyNumber } equals new { moldType.StationTrolleyNumber }
join moldOutPut_A in aDoorMoldOutPutList on new { moldStatus.StationTrolleyNumber } equals new { moldOutPut_A.StationTrolleyNumber }
join moldOutPut_B in bDoorMoldOutPutList on new { moldStatus.StationTrolleyNumber } equals new { moldOutPut_B.StationTrolleyNumber }
select new DoorFoamMachine
{
StationTrolleyNumber = moldStatus.StationTrolleyNumber,
GunNumber = moldStatus.GunNumber,
MoldStatus = moldStatus.MoldStatus,
MainId = moldStatus.MainId,
MoldType = moldType.MoldType.Replace("\b","").Replace("\u0001", "").Replace("\0", "").Trim(),
MoldProdutionA = moldOutPut_A.MoldProdutionA,
MoldProdutionB = moldOutPut_B.MoldProdutionB,
DeviceStatus = deviceStatus,
DeviceAlarm = deviceAlarm,
ProductTakt = productTakt,
Takt = taktNum,
CreateTime = DateTime.Now
};
result = mergedCollection.ToList();
if(result != null)
{
RefreshDoorFoamMachineEvent?.Invoke(result);
var addFlag = _doorFoamMachineServices.AddAsync(result).Result;
}
}
}
catch (Exception ex)
{
Console.WriteLine($"门体发泡数据采集异常:{ex.Message}");
}
}
}
///
/// 读取模位状态
///
static List ReadModeStatus(HwPLc.PlcModel obj)
{
if (obj == null) return null;
else
{
List doorFoams = new List();
if (obj.plc.IsConnected)
{
byte[] info = obj.plc.Read("DB490.0", 142);
if(info != null)
{
///出模工位台车号,上料工位台车号,注料工位台车号
short tempNo1 = short.Parse(StringChange.bytesToHexStr(info.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short tempNo2 = short.Parse(StringChange.bytesToHexStr(info.Skip(2).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short tempNo3 = short.Parse(StringChange.bytesToHexStr(info.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
//模位状态,台车1#枪模式:0,不工作;1,A门工作;2,B门工作;3,AB门工作
#region 读取模具状态
short temp1 = short.Parse(StringChange.bytesToHexStr(info.Skip(6).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =1,
MoldStatus = temp1.ToString(),
});
short temp2 = short.Parse(StringChange.bytesToHexStr(info.Skip(8).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =2,
MoldStatus = temp2.ToString(),
});
short temp3 = short.Parse(StringChange.bytesToHexStr(info.Skip(10).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =3,
MoldStatus = temp3.ToString(),
});
short temp4 = short.Parse(StringChange.bytesToHexStr(info.Skip(12).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =4,
MoldStatus = temp4.ToString(),
});
short temp5 = short.Parse(StringChange.bytesToHexStr(info.Skip(14).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =5,
MoldStatus = temp5.ToString(),
});
short temp6 = short.Parse(StringChange.bytesToHexStr(info.Skip(16).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =6,
MoldStatus = temp6.ToString(),
});
short temp7 = short.Parse(StringChange.bytesToHexStr(info.Skip(18).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =7,
MoldStatus = temp7.ToString(),
});
short temp8 = short.Parse(StringChange.bytesToHexStr(info.Skip(20).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =8,
MoldStatus = temp8.ToString(),
});
short temp9 = short.Parse(StringChange.bytesToHexStr(info.Skip(22).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =9,
MoldStatus = temp9.ToString(),
});
short temp10 = short.Parse(StringChange.bytesToHexStr(info.Skip(24).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =10,
MoldStatus = temp10.ToString(),
});
short temp11 = short.Parse(StringChange.bytesToHexStr(info.Skip(26).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =11,
MoldStatus = temp11.ToString(),
});
short temp12 = short.Parse(StringChange.bytesToHexStr(info.Skip(28).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =12,
MoldStatus = temp12.ToString(),
});
short temp13 = short.Parse(StringChange.bytesToHexStr(info.Skip(30).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =13,
MoldStatus = temp13.ToString(),
});
short temp14 = short.Parse(StringChange.bytesToHexStr(info.Skip(32).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =14,
MoldStatus = temp14.ToString(),
});
short temp15 = short.Parse(StringChange.bytesToHexStr(info.Skip(34).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =15,
MoldStatus = temp15.ToString(),
});
short temp16 = short.Parse(StringChange.bytesToHexStr(info.Skip(36).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =16,
MoldStatus = temp16.ToString(),
});
short temp17 = short.Parse(StringChange.bytesToHexStr(info.Skip(38).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =17,
MoldStatus = temp17.ToString(),
});
short temp18 = short.Parse(StringChange.bytesToHexStr(info.Skip(40).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =18,
MoldStatus = temp18.ToString(),
});
short temp19 = short.Parse(StringChange.bytesToHexStr(info.Skip(42).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =19,
MoldStatus = temp19.ToString(),
});
short temp20 = short.Parse(StringChange.bytesToHexStr(info.Skip(44).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =20,
MoldStatus = temp20.ToString(),
});
short temp21 = short.Parse(StringChange.bytesToHexStr(info.Skip(46).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =21,
MoldStatus = temp21.ToString(),
});
short temp22 = short.Parse(StringChange.bytesToHexStr(info.Skip(48).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =22,
MoldStatus = temp22.ToString(),
});
short temp23 = short.Parse(StringChange.bytesToHexStr(info.Skip(50).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =23,
MoldStatus = temp23.ToString(),
});
short temp24 = short.Parse(StringChange.bytesToHexStr(info.Skip(52).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =24,
MoldStatus = temp24.ToString(),
});
short temp25 = short.Parse(StringChange.bytesToHexStr(info.Skip(54).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =25,
MoldStatus = temp25.ToString(),
});
short temp26 = short.Parse(StringChange.bytesToHexStr(info.Skip(56).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =26,
MoldStatus = temp26.ToString(),
});
short temp27 = short.Parse(StringChange.bytesToHexStr(info.Skip(58).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =27,
MoldStatus = temp27.ToString(),
});
short temp28 = short.Parse(StringChange.bytesToHexStr(info.Skip(60).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =28,
MoldStatus = temp28.ToString(),
});
short temp29 = short.Parse(StringChange.bytesToHexStr(info.Skip(62).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =29,
MoldStatus = temp29.ToString(),
});
short temp30 = short.Parse(StringChange.bytesToHexStr(info.Skip(64).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =30,
MoldStatus = temp30.ToString(),
});
short temp31 = short.Parse(StringChange.bytesToHexStr(info.Skip(66).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =31,
MoldStatus = temp31.ToString(),
});
short temp32 = short.Parse(StringChange.bytesToHexStr(info.Skip(68).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =32,
MoldStatus = temp32.ToString(),
});
short temp33 = short.Parse(StringChange.bytesToHexStr(info.Skip(70).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =33,
MoldStatus = temp33.ToString(),
});
short temp34 = short.Parse(StringChange.bytesToHexStr(info.Skip(72).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =34,
MoldStatus = temp34.ToString(),
});
short temp35 = short.Parse(StringChange.bytesToHexStr(info.Skip(74).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =35,
MoldStatus = temp35.ToString(),
});
short temp36 = short.Parse(StringChange.bytesToHexStr(info.Skip(76).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =36,
MoldStatus = temp36.ToString(),
});
short temp37 = short.Parse(StringChange.bytesToHexStr(info.Skip(78).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =37,
MoldStatus = temp37.ToString(),
});
short temp38 = short.Parse(StringChange.bytesToHexStr(info.Skip(80).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =38,
MoldStatus = temp38.ToString(),
});
short temp39 = short.Parse(StringChange.bytesToHexStr(info.Skip(82).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber =39,
MoldStatus = temp39.ToString(),
});
short temp40 = short.Parse(StringChange.bytesToHexStr(info.Skip(84).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 40,
MoldStatus = temp40.ToString(),
});
#endregion
doorFoams.ForEach(x =>
{
if (x.StationTrolleyNumber == tempNo1)
{
x.MainId = 1;
}
else if (x.StationTrolleyNumber == tempNo2)
{
x.MainId = 2;
}
else if (x.StationTrolleyNumber == tempNo3)
{
x.MainId = 3;
}
else
{
x.MainId = 0;
}
});
}
}
return doorFoams;
}
}
///
/// 读取模位型号,读5台,1-5,6-10...
///
static List ReadModeType(HwPLc.PlcModel obj)
{
if (obj == null) return null;
else
{
List doorFoams = new List();
if (obj.plc.IsConnected)
{
byte[] info1 = obj.plc.Read("DB490.86", 200);
//1#台车1#枪A门,1#台车1#枪B门,1#台车2#枪A门,1#台车2#枪B门
#region 1-20台车
if (info1 != null)
{
string item1 = asciiEncoding.GetString(info1.Skip(2).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 1,
MoldType = item1
});
string item2 = asciiEncoding.GetString(info1.Skip(12).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 2,
MoldType = item2
});
string item3 = asciiEncoding.GetString(info1.Skip(22).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 3,
MoldType = item3
});
string item4 = asciiEncoding.GetString(info1.Skip(32).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 4,
MoldType = item4
});
string item5 = asciiEncoding.GetString(info1.Skip(42).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 5,
MoldType = item5
});
string item6 = asciiEncoding.GetString(info1.Skip(52).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 6,
MoldType = item6
});
string item7 = asciiEncoding.GetString(info1.Skip(62).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 7,
MoldType = item7
});
string item8 = asciiEncoding.GetString(info1.Skip(72).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 8,
MoldType = item8
});
string item9 = asciiEncoding.GetString(info1.Skip(82).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 9,
MoldType = item9
});
string item10 = asciiEncoding.GetString(info1.Skip(92).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 10,
MoldType = item10
});
string item11 = asciiEncoding.GetString(info1.Skip(102).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 11,
MoldType = item11
});
string item12 = asciiEncoding.GetString(info1.Skip(112).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 12,
MoldType = item12
});
string item13 = asciiEncoding.GetString(info1.Skip(122).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 13,
MoldType = item13
});
string item14 = asciiEncoding.GetString(info1.Skip(132).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 14,
MoldType = item14
});
string item15 = asciiEncoding.GetString(info1.Skip(142).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 15,
MoldType = item15
});
string item16 = asciiEncoding.GetString(info1.Skip(152).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 16,
MoldType = item16
});
string item17 = asciiEncoding.GetString(info1.Skip(162).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 17,
MoldType = item17
});
string item18 = asciiEncoding.GetString(info1.Skip(172).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 18,
MoldType = item18
});
string item19 = asciiEncoding.GetString(info1.Skip(182).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 19,
MoldType = item19
});
string item20 = asciiEncoding.GetString(info1.Skip(192).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 20,
MoldType = item20
});
}
#endregion
byte[] info2 = obj.plc.Read("DB490.286", 200);
#region 20-40车
if(info2 != null)
{
string item1 = asciiEncoding.GetString(info2.Skip(2).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 21,
MoldType = item1
});
string item2 = asciiEncoding.GetString(info2.Skip(12).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 22,
MoldType = item2
});
string item3 = asciiEncoding.GetString(info2.Skip(22).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 23,
MoldType = item3
});
string item4 = asciiEncoding.GetString(info2.Skip(32).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 24,
MoldType = item4
});
string item5 = asciiEncoding.GetString(info2.Skip(42).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 25,
MoldType = item5
});
string item6 = asciiEncoding.GetString(info2.Skip(52).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 26,
MoldType = item6
});
string item7 = asciiEncoding.GetString(info2.Skip(62).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 27,
MoldType = item7
});
string item8 = asciiEncoding.GetString(info2.Skip(72).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 28,
MoldType = item8
});
string item9 = asciiEncoding.GetString(info2.Skip(82).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 29,
MoldType = item9
});
string item10 = asciiEncoding.GetString(info2.Skip(92).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 30,
MoldType = item10
});
string item11 = asciiEncoding.GetString(info2.Skip(102).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 31,
MoldType = item11
});
string item12 = asciiEncoding.GetString(info2.Skip(112).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 32,
MoldType = item12
});
string item13 = asciiEncoding.GetString(info2.Skip(122).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 33,
MoldType = item13
});
string item14 = asciiEncoding.GetString(info2.Skip(132).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 34,
MoldType = item14
});
string item15 = asciiEncoding.GetString(info2.Skip(142).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 35,
MoldType = item15
});
string item16 = asciiEncoding.GetString(info2.Skip(152).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 36,
MoldType = item16
});
string item17 = asciiEncoding.GetString(info2.Skip(162).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 37,
MoldType = item17
});
string item18 = asciiEncoding.GetString(info2.Skip(172).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 38,
MoldType = item18
});
string item19 = asciiEncoding.GetString(info2.Skip(182).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 39,
MoldType = item19
});
string item20 = asciiEncoding.GetString(info2.Skip(192).Take(8).ToArray()).Replace("\0", "").Trim('\n');
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 40,
MoldType = item20
});
}
#endregion
}
return doorFoams;
}
}
///
/// 读取A门模位产量
///
private List ReadADoorModeProduct(HwPLc.PlcModel obj)
{
if (obj == null) return null;
else
{
List doorFoams = new List();
if (obj.plc.IsConnected)
{
byte[] info = obj.plc.Read("DB490.486", 160);
#region A门产量
if (info != null)
{
//1#台车1#枪A门,1#台车1#枪B门,1#台车2#枪A门,1#台车2#枪B门
int temp1 = int.Parse(StringChange.bytesToHexStr(info.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 1,
MoldProdutionA = temp1.ToString()
});
int temp2 = int.Parse(StringChange.bytesToHexStr(info.Skip(2).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 2,
MoldProdutionA = temp2.ToString()
});
int temp3 = int.Parse(StringChange.bytesToHexStr(info.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 3,
MoldProdutionA = temp3.ToString()
});
int temp4 = int.Parse(StringChange.bytesToHexStr(info.Skip(6).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 4,
MoldProdutionA = temp4.ToString()
});
int temp5 = int.Parse(StringChange.bytesToHexStr(info.Skip(8).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 5,
MoldProdutionA = temp5.ToString()
});
int temp6 = int.Parse(StringChange.bytesToHexStr(info.Skip(10).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 6,
MoldProdutionA = temp6.ToString()
});
int temp7 = int.Parse(StringChange.bytesToHexStr(info.Skip(12).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 7,
MoldProdutionA = temp7.ToString()
});
int temp8 = int.Parse(StringChange.bytesToHexStr(info.Skip(14).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 8,
MoldProdutionA = temp8.ToString()
});
int temp9 = int.Parse(StringChange.bytesToHexStr(info.Skip(16).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 9,
MoldProdutionA = temp9.ToString()
});
int temp10 = int.Parse(StringChange.bytesToHexStr(info.Skip(18).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 10,
MoldProdutionA = temp10.ToString()
});
int temp11 = int.Parse(StringChange.bytesToHexStr(info.Skip(20).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 11,
MoldProdutionA = temp11.ToString()
});
int temp12 = int.Parse(StringChange.bytesToHexStr(info.Skip(22).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 12,
MoldProdutionA = temp12.ToString()
});
int temp13 = int.Parse(StringChange.bytesToHexStr(info.Skip(24).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 13,
MoldProdutionA = temp13.ToString()
});
int temp14 = int.Parse(StringChange.bytesToHexStr(info.Skip(26).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 14,
MoldProdutionA = temp14.ToString()
});
int temp15 = int.Parse(StringChange.bytesToHexStr(info.Skip(28).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 15,
MoldProdutionA = temp15.ToString()
});
int temp16 = int.Parse(StringChange.bytesToHexStr(info.Skip(30).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 16,
MoldProdutionA = temp16.ToString()
});
int temp17 = int.Parse(StringChange.bytesToHexStr(info.Skip(32).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 17,
MoldProdutionA = temp17.ToString()
});
int temp18 = int.Parse(StringChange.bytesToHexStr(info.Skip(34).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 18,
MoldProdutionA = temp18.ToString()
});
int temp19 = int.Parse(StringChange.bytesToHexStr(info.Skip(36).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 19,
MoldProdutionA = temp19.ToString()
});
int temp20 = int.Parse(StringChange.bytesToHexStr(info.Skip(38).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 20,
MoldProdutionA = temp20.ToString()
});
int temp21 = int.Parse(StringChange.bytesToHexStr(info.Skip(40).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 21,
MoldProdutionA = temp21.ToString()
});
int temp22 = int.Parse(StringChange.bytesToHexStr(info.Skip(42).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 22,
MoldProdutionA = temp22.ToString()
});
int temp23 = int.Parse(StringChange.bytesToHexStr(info.Skip(44).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 23,
MoldProdutionA = temp23.ToString()
});
int temp24 = int.Parse(StringChange.bytesToHexStr(info.Skip(46).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 24,
MoldProdutionA = temp24.ToString()
});
int temp25 = int.Parse(StringChange.bytesToHexStr(info.Skip(48).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 25,
MoldProdutionA = temp25.ToString()
});
int temp26 = int.Parse(StringChange.bytesToHexStr(info.Skip(50).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 26,
MoldProdutionA = temp26.ToString()
});
int temp27 = int.Parse(StringChange.bytesToHexStr(info.Skip(52).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 27,
MoldProdutionA = temp27.ToString()
});
int temp28 = int.Parse(StringChange.bytesToHexStr(info.Skip(54).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 28,
MoldProdutionA = temp28.ToString()
});
int temp29 = int.Parse(StringChange.bytesToHexStr(info.Skip(56).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 29,
MoldProdutionA = temp29.ToString()
});
int temp30 = int.Parse(StringChange.bytesToHexStr(info.Skip(58).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 30,
MoldProdutionA = temp30.ToString()
});
int temp31 = int.Parse(StringChange.bytesToHexStr(info.Skip(60).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 31,
MoldProdutionA = temp31.ToString()
});
int temp32 = int.Parse(StringChange.bytesToHexStr(info.Skip(62).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 32,
MoldProdutionA = temp32.ToString()
});
int temp33 = int.Parse(StringChange.bytesToHexStr(info.Skip(64).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 33,
MoldProdutionA = temp33.ToString()
});
int temp34 = int.Parse(StringChange.bytesToHexStr(info.Skip(66).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 34,
MoldProdutionA = temp34.ToString()
});
int temp35 = int.Parse(StringChange.bytesToHexStr(info.Skip(68).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 35,
MoldProdutionA = temp35.ToString()
});
int temp36 = int.Parse(StringChange.bytesToHexStr(info.Skip(70).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 36,
MoldProdutionA = temp36.ToString()
});
int temp37 = int.Parse(StringChange.bytesToHexStr(info.Skip(72).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 37,
MoldProdutionA = temp37.ToString()
});
int temp38 = int.Parse(StringChange.bytesToHexStr(info.Skip(74).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 38,
MoldProdutionA = temp38.ToString()
});
int temp39 = int.Parse(StringChange.bytesToHexStr(info.Skip(76).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 39,
MoldProdutionA = temp39.ToString()
});
int temp40 = int.Parse(StringChange.bytesToHexStr(info.Skip(78).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 40,
MoldProdutionA = temp40.ToString()
});
}
#endregion
}
return doorFoams;
}
}
///
/// 读取B门模位产量
///
private List ReadBDoorModeProduct(HwPLc.PlcModel obj)
{
if (obj == null) return null;
else
{
List doorFoams = new List();
if (obj.plc.IsConnected)
{
byte[] info = obj.plc.Read("DB490.566", 160);
#region B门产量
if (info != null)
{
//1#台车1#枪A门,1#台车1#枪B门,1#台车2#枪A门,1#台车2#枪B门
int temp1 = int.Parse(StringChange.bytesToHexStr(info.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 1,
MoldProdutionB = temp1.ToString()
});
int temp2 = int.Parse(StringChange.bytesToHexStr(info.Skip(2).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 2,
MoldProdutionB = temp2.ToString()
});
int temp3 = int.Parse(StringChange.bytesToHexStr(info.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 3,
MoldProdutionB = temp3.ToString()
});
int temp4 = int.Parse(StringChange.bytesToHexStr(info.Skip(6).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 4,
MoldProdutionB = temp4.ToString()
});
int temp5 = int.Parse(StringChange.bytesToHexStr(info.Skip(8).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 5,
MoldProdutionB = temp5.ToString()
});
int temp6 = int.Parse(StringChange.bytesToHexStr(info.Skip(10).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 6,
MoldProdutionB = temp6.ToString()
});
int temp7 = int.Parse(StringChange.bytesToHexStr(info.Skip(12).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 7,
MoldProdutionB = temp7.ToString()
});
int temp8 = int.Parse(StringChange.bytesToHexStr(info.Skip(14).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 8,
MoldProdutionB = temp8.ToString()
});
int temp9 = int.Parse(StringChange.bytesToHexStr(info.Skip(16).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 9,
MoldProdutionB = temp9.ToString()
});
int temp10 = int.Parse(StringChange.bytesToHexStr(info.Skip(18).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 10,
MoldProdutionB = temp10.ToString()
});
int temp11 = int.Parse(StringChange.bytesToHexStr(info.Skip(20).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 11,
MoldProdutionB = temp11.ToString()
});
int temp12 = int.Parse(StringChange.bytesToHexStr(info.Skip(22).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 12,
MoldProdutionB = temp12.ToString()
});
int temp13 = int.Parse(StringChange.bytesToHexStr(info.Skip(24).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 13,
MoldProdutionB = temp13.ToString()
});
int temp14 = int.Parse(StringChange.bytesToHexStr(info.Skip(26).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 14,
MoldProdutionB = temp14.ToString()
});
int temp15 = int.Parse(StringChange.bytesToHexStr(info.Skip(28).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 15,
MoldProdutionB = temp15.ToString()
});
int temp16 = int.Parse(StringChange.bytesToHexStr(info.Skip(30).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 16,
MoldProdutionB = temp16.ToString()
});
int temp17 = int.Parse(StringChange.bytesToHexStr(info.Skip(32).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 17,
MoldProdutionB = temp17.ToString()
});
int temp18 = int.Parse(StringChange.bytesToHexStr(info.Skip(34).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 18,
MoldProdutionB = temp18.ToString()
});
int temp19 = int.Parse(StringChange.bytesToHexStr(info.Skip(36).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 19,
MoldProdutionB = temp19.ToString()
});
int temp20 = int.Parse(StringChange.bytesToHexStr(info.Skip(38).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 20,
MoldProdutionB = temp20.ToString()
});
int temp21 = int.Parse(StringChange.bytesToHexStr(info.Skip(40).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 21,
MoldProdutionB = temp21.ToString()
});
int temp22 = int.Parse(StringChange.bytesToHexStr(info.Skip(42).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 22,
MoldProdutionB = temp22.ToString()
});
int temp23 = int.Parse(StringChange.bytesToHexStr(info.Skip(44).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 23,
MoldProdutionB = temp23.ToString()
});
int temp24 = int.Parse(StringChange.bytesToHexStr(info.Skip(46).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 24,
MoldProdutionB = temp24.ToString()
});
int temp25 = int.Parse(StringChange.bytesToHexStr(info.Skip(48).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 25,
MoldProdutionB = temp25.ToString()
});
int temp26 = int.Parse(StringChange.bytesToHexStr(info.Skip(50).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 26,
MoldProdutionB = temp26.ToString()
});
int temp27 = int.Parse(StringChange.bytesToHexStr(info.Skip(52).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 27,
MoldProdutionB = temp27.ToString()
});
int temp28 = int.Parse(StringChange.bytesToHexStr(info.Skip(54).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 28,
MoldProdutionB = temp28.ToString()
});
int temp29 = int.Parse(StringChange.bytesToHexStr(info.Skip(56).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 29,
MoldProdutionB = temp29.ToString()
});
int temp30 = int.Parse(StringChange.bytesToHexStr(info.Skip(58).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 30,
MoldProdutionB = temp30.ToString()
});
int temp31 = int.Parse(StringChange.bytesToHexStr(info.Skip(60).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 31,
MoldProdutionB = temp31.ToString()
});
int temp32 = int.Parse(StringChange.bytesToHexStr(info.Skip(62).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 32,
MoldProdutionB = temp32.ToString()
});
int temp33 = int.Parse(StringChange.bytesToHexStr(info.Skip(64).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 33,
MoldProdutionB = temp33.ToString()
});
int temp34 = int.Parse(StringChange.bytesToHexStr(info.Skip(66).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 34,
MoldProdutionB = temp34.ToString()
});
int temp35 = int.Parse(StringChange.bytesToHexStr(info.Skip(68).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 35,
MoldProdutionB = temp35.ToString()
});
int temp36 = int.Parse(StringChange.bytesToHexStr(info.Skip(70).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 36,
MoldProdutionB = temp36.ToString()
});
int temp37 = int.Parse(StringChange.bytesToHexStr(info.Skip(72).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 37,
MoldProdutionB = temp37.ToString()
});
int temp38 = int.Parse(StringChange.bytesToHexStr(info.Skip(74).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 38,
MoldProdutionB = temp38.ToString()
});
int temp39 = int.Parse(StringChange.bytesToHexStr(info.Skip(76).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 39,
MoldProdutionB = temp39.ToString()
});
int temp40 = int.Parse(StringChange.bytesToHexStr(info.Skip(78).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
doorFoams.Add(new DoorFoamMachine()
{
StationTrolleyNumber = 40,
MoldProdutionB = temp40.ToString()
});
}
#endregion
}
return doorFoams;
}
}
///
/// 读取设备报警信息
///
static void ReadWarnInfo(HwPLc.PlcModel obj, List boxTypeList)
{
if (obj == null) return;
else
{
if (obj.plc.IsConnected)
{
byte[] info = obj.plc.Read("DB490.2136", 4);
if (info == null) return;
//1-主驱动报警 2-枪1X轴伺服异常 3-枪2X轴伺服异常 4-换模位门打开 5-枪1急停被激活 6-枪2急停被激活 7-枪1发泡机报警 8-枪2发泡机报警
int temp1 = judgeStatus(ByteArrayToBinary(info.Skip(0).Take(1).ToArray()));
Console.WriteLine(temp1);
}
}
}
#region 字符工具转换方法
///
/// byte数组转换为float
///
static float byteToFloat(byte[] list)
{
float result = 0.00f;
Array.Reverse(list);
result = BitConverter.ToSingle(list, 0);
return result;
}
///
/// byte[]转二进制,读两字节,截取1字节 00000000 (00100000)
///
///
static string ByteArrayToBinary(byte[] bytes)
{
StringBuilder binaryString = new StringBuilder();
foreach (byte b in bytes)
{
binaryString.Append(Convert.ToString(b, 2).PadLeft(8, '0'));
}
// Console.WriteLine(binaryString);
string reversedStr = new string(binaryString.ToString().Reverse().ToArray());
// Console.WriteLine(reversedStr);
return reversedStr;
}
///
/// 根据二进制字符串确定夹具状态 1正常生产 2暂停生产
///
static int judgeStatus(string str1)
{
int item1 = 0;
if (str1.Substring(0, 1) == "1")
{
item1 = 1; //
}
else if (str1.Substring(1, 1) =="1")
{
item1 = 2; //
}
else if (str1.Substring(2, 1) =="1")
{
item1 = 3; //
}
else if (str1.Substring(3, 1) =="1")
{
item1 = 4; //
}
else if (str1.Substring(4, 1) =="1")
{
item1 = 5; //
}
else if (str1.Substring(5, 1) =="1")
{
item1 = 6; //
}
else if (str1.Substring(6, 1) =="1")
{
item1 = 7; //
}
else if (str1.Substring(7, 1) =="1")
{
item1 = 8; //
}
return item1;
}
}
#endregion
}