using Admin.Core.Common.Helper;
using Admin.Core.IService.IService_New;
using Admin.Core.Model.Model_New;
using Aucma.Core.BoxFoam.Models;
using Aucma.Core.HwPLc;
using Aucma.Core.Tasks.Models;
using Microsoft.Extensions.DependencyInjection;
using NetTaste;
using NPOI.HPSF;
using NPOI.Util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.RightsManagement;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Documents;
using Array = System.Array;
namespace Aucma.Core.BoxFoam.Business
{
///
/// 采集发泡线数据
///
public class CollectionFoamLine
{
public delegate Task RefreshBoxFoamDataDelegate(List list);
public static event RefreshBoxFoamDataDelegate RefreshBoxFoamDataDelegateEvent;
private static System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
public static List spaceDetailModel = new List();
public static List listFixtureStatus = new List();
private readonly IRecordBoxFoamFixtureComplateServices _fixtureComplateServices;
Semaphore semaphore = new Semaphore(1, 1);
public CollectionFoamLine()
{
_fixtureComplateServices = App.ServiceProvider.GetService();
startCollect();
}
public void startCollect()
{
Task.Run(() =>
{
Thread.Sleep(3000);
while (true)
{
try
{
// 1-6夹具
var plc1 = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("foamLine1Plc"));
//7-12夹具
var plc2 = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("foamLine2Plc"));
// 泡前库箱型和数量
var plc3 = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("泡前库Plc"));
spaceDetailModel = ReadStoreTypeAndCount(plc3);
//RefreshSpaceEvent?.Invoke(spaceDetailModel);
List boxTypeList = ReadBoxType(plc1, plc2);
List holderStatusList = ReadFixtureStatus(plc1, plc2);
List holderOutPutList = ReadFixtureProduction(plc1, plc2);
List planCuringTimeList = ReadPlanCuringTime(plc1, plc2);
var mergedCollection = from boxType in boxTypeList
join holderStatus in holderStatusList on new { boxType.ObjId } equals new { holderStatus.ObjId }
join holderOutPut in holderOutPutList on new { boxType.ObjId } equals new { holderOutPut.ObjId }
join planCuringTime in planCuringTimeList on new { boxType.ObjId } equals new { planCuringTime.ObjId }
select new FixtureStatus
{
ObjId = boxType.ObjId,
FixtureBoxType = boxType.FixtureBoxType,
Status = holderStatus.Status,
Yield = holderOutPut.Yield,
PlanCuringTime = planCuringTime.PlanCuringTime
};
listFixtureStatus = mergedCollection.ToList();
if (listFixtureStatus != null)
{
RefreshBoxFoamDataDelegateEvent?.Invoke(listFixtureStatus);
List fixtureComplates = new List();
listFixtureStatus.ForEach(x =>
{
fixtureComplates.Add(new RecordBoxFoamFixtureComplate()
{
ProductionLine = "CX_02",
StationCode = "1005",
FixtureCode = x.ObjId,
FixtureBoxType = x.FixtureBoxType,
FixtureStatus = x.Status,
FixtureOutPut = x.Yield,
PlanCuringTime = x.PlanCuringTime,
RealCuringTime = x.RealCuringTime,
RecordTime = DateTime.Now,
});
});
var info = _fixtureComplateServices.SaveFixtureComplate(fixtureComplates, "CX_02", "1005");
}
}
catch (Exception ex)
{
Console.WriteLine($"箱体发泡线数据采集异常:{ex.Message}");
}
Thread.Sleep(2000);
}
});
}
///
/// 读取泡前库箱型和数量
///
static List ReadStoreTypeAndCount(HwPLc.PlcModel obj)
{
List spaceDetailModels = new List();
if (obj != null && obj.plc.IsConnected)
{
byte[] info = obj.plc.Read("DB200.0", 100);
string str1 = asciiEncoding.GetString(info.Skip(6).Take(10).ToArray()).Replace("\0","").Trim('\n');
string str2 = asciiEncoding.GetString(info.Skip(18).Take(10).ToArray()).Replace("\0", "").Trim('\n');
string str3 = asciiEncoding.GetString(info.Skip(30).Take(10).ToArray()).Replace("\0", "").Trim('\n');
string str4 = asciiEncoding.GetString(info.Skip(42).Take(10).ToArray()).Replace("\0", "").Trim('\n');
string str5 = asciiEncoding.GetString(info.Skip(54).Take(10).ToArray()).Replace("\0", "").Trim('\n');
string str6 = asciiEncoding.GetString(info.Skip(66).Take(10).ToArray()).Replace("\0", "").Trim('\n');
Console.WriteLine($"读取泡前库箱型,1#:{str1};2#{str2};3#:{str3};4#:{str4};5#:{str5};6#:{str6}");
short temp1 = short.Parse(StringChange.bytesToHexStr(info.Skip(88).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp2 = short.Parse(StringChange.bytesToHexStr(info.Skip(90).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp3 = short.Parse(StringChange.bytesToHexStr(info.Skip(92).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp4 = short.Parse(StringChange.bytesToHexStr(info.Skip(94).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp5 = short.Parse(StringChange.bytesToHexStr(info.Skip(96).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp6 = short.Parse(StringChange.bytesToHexStr(info.Skip(98).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
Console.WriteLine($"读取泡前库数量,1#:{temp1};2#{temp2};3#:{temp3};4#:{temp4};5#:{temp5};6#:{temp6}");
spaceDetailModels.Add(new SpaceDetailModel()
{
ObjId = 1,
StoreType = str1.ToString(),
StoreAmount = temp1
});
spaceDetailModels.Add(new SpaceDetailModel()
{
ObjId = 2,
StoreType = str2.ToString(),
StoreAmount = temp2
});
spaceDetailModels.Add(new SpaceDetailModel()
{
ObjId = 3,
StoreType = str3.ToString(),
StoreAmount = temp3
});
spaceDetailModels.Add(new SpaceDetailModel()
{
ObjId = 4,
StoreType = str4.ToString(),
StoreAmount = temp4
});
spaceDetailModels.Add(new SpaceDetailModel()
{
ObjId = 5,
StoreType = str5.ToString(),
StoreAmount = temp5
});
spaceDetailModels.Add(new SpaceDetailModel()
{
ObjId = 6,
StoreType = str6.ToString(),
StoreAmount = temp6
});
}
return spaceDetailModels;
}
///
/// 读取夹具箱型
///
static List ReadBoxType(HwPLc.PlcModel obj, HwPLc.PlcModel obj2)
{
List fixtureStatuses = new List();
#region 1-6夹具
if (obj != null && obj.plc.IsConnected)
{
byte[] result = obj.plc.Read("DB8.0", 12);
if (result != null)
{
short str1 = short.Parse(StringChange.bytesToHexStr(result.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 1,
FixtureBoxType = str1.ToString()
});
short str2 = short.Parse(StringChange.bytesToHexStr(result.Skip(2).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 2,
FixtureBoxType = str2.ToString()
});
short str3 = short.Parse(StringChange.bytesToHexStr(result.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 3,
FixtureBoxType = str3.ToString()
});
short str4 = short.Parse(StringChange.bytesToHexStr(result.Skip(6).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 4,
FixtureBoxType = str4.ToString()
});
short str5 = short.Parse(StringChange.bytesToHexStr(result.Skip(8).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 5,
FixtureBoxType = str5.ToString()
});
short str6= short.Parse(StringChange.bytesToHexStr(result.Skip(10).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 6,
FixtureBoxType = str6.ToString()
});
Console.WriteLine($"读取夹具箱型,1#:{str1};2#{str2};3#:{str3};4#:{str4};5#:{str5};6#:{str6}");
}
}
#endregion
#region 7-12夹具
if (obj2 != null && obj2.plc.IsConnected)
{
byte[] result = obj2.plc.Read("DB8.0",12 );
if (result != null)
{
short str1 = short.Parse(StringChange.bytesToHexStr(result.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 7,
FixtureBoxType = str1.ToString()
});
short str2 = short.Parse(StringChange.bytesToHexStr(result.Skip(2).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 8,
FixtureBoxType = str2.ToString()
});
short str3 = short.Parse(StringChange.bytesToHexStr(result.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId =9,
FixtureBoxType = str3.ToString()
});
short str4 = short.Parse(StringChange.bytesToHexStr(result.Skip(6).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 10,
FixtureBoxType = str4.ToString()
});
short str5 = short.Parse(StringChange.bytesToHexStr(result.Skip(8).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 11,
FixtureBoxType = str5.ToString()
});
short str6 = short.Parse(StringChange.bytesToHexStr(result.Skip(10).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 12,
FixtureBoxType = str6.ToString()
});
Console.WriteLine($"读取夹具箱型,1#:{str1};2#{str2};3#:{str3};4#:{str4};5#:{str5};6#:{str6}");
}
}
#endregion
return fixtureStatuses;
}
///
/// 读取夹具状态
///
static List ReadFixtureStatus(HwPLc.PlcModel obj, HwPLc.PlcModel obj2)
{
List fixtureStatuses = new List();
#region 1-6夹具
if (obj != null && obj.plc.IsConnected)
{
byte[] info = obj.plc.Read("DB8.12", 13);
if (info != null)
{
int temp1 = judgeStatus(ByteArrayToBinary(info.Skip(0).Take(1).ToArray()));
int temp2 = judgeStatus(ByteArrayToBinary(info.Skip(2).Take(1).ToArray()));
int temp3 = judgeStatus(ByteArrayToBinary(info.Skip(4).Take(1).ToArray()));
int temp4 = judgeStatus(ByteArrayToBinary(info.Skip(6).Take(1).ToArray()));
int temp5 = judgeStatus(ByteArrayToBinary(info.Skip(8).Take(1).ToArray()));
int temp6 = judgeStatus(ByteArrayToBinary(info.Skip(10).Take(1).ToArray()));
Console.WriteLine($"读取夹具状态,1#:{temp1};2#:{temp2};3#:{temp3};4#:{temp4};5#:{temp5};6#:{temp6}");
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 1,
Status = temp1,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 2,
Status = temp2,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 3,
Status = temp3,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 4,
Status = temp4,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 5,
Status = temp5,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 6,
Status = temp6,
});
}
}
#endregion
#region 7-12夹具
if (obj2 != null && obj2.plc.IsConnected)
{
byte[] info2 = obj2.plc.Read("DB8.12", 13);
if (info2 != null)
{
int temp7 = judgeStatus(ByteArrayToBinary(info2.Skip(0).Take(1).ToArray()));
int temp8 = judgeStatus(ByteArrayToBinary(info2.Skip(2).Take(1).ToArray()));
int temp9 = judgeStatus(ByteArrayToBinary(info2.Skip(4).Take(1).ToArray()));
int temp10 = judgeStatus(ByteArrayToBinary(info2.Skip(6).Take(1).ToArray()));
int temp11 = judgeStatus(ByteArrayToBinary(info2.Skip(8).Take(1).ToArray()));
int temp12 = judgeStatus(ByteArrayToBinary(info2.Skip(10).Take(1).ToArray()));
Console.WriteLine($"读取夹具状态,7#:{temp7};8#:{temp8};9#:{temp9};10#:{temp10};11#:{temp11};12#:{temp12}");
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 7,
Status = temp7,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 8,
Status = temp8,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 9,
Status = temp9,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 10,
Status = temp10,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 11,
Status = temp11,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 12,
Status = temp12,
});
}
}
#endregion
return fixtureStatuses;
}
///
/// 读取夹具产量
///
static List ReadFixtureProduction(HwPLc.PlcModel obj, HwPLc.PlcModel obj2)
{
List fixtureStatuses = new List();
#region 1-6夹具产量
if (obj != null && obj.plc.IsConnected)
{
byte[] info = obj.plc.Read("DB8.24", 48);
if (info != null)
{
int temp1 = int.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);
Console.WriteLine($"读取夹具产量,1#:{temp1};2#:{temp2};3#:{temp3};4#:{temp4};5#:{temp5};6#:{temp6}");
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 1,
Yield = temp1,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 2,
Yield = temp2,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 3,
Yield = temp3,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 4,
Yield = temp4,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 5,
Yield = temp5,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 6,
Yield = temp6,
});
}
}
#endregion
#region 7-12夹具产量
if (obj2 != null && obj2.plc.IsConnected)
{
byte[] info = obj2.plc.Read("DB8.24", 48);
if (info != null)
{
int temp1 = int.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);
Console.WriteLine($"读取夹具产量,1#:{temp1};2#:{temp2};3#:{temp3};4#:{temp4};5#:{temp5};6#:{temp6}");
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 7,
Yield = temp1,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 8,
Yield = temp2,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 9,
Yield = temp3,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 10,
Yield = temp4,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 11,
Yield = temp5,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 12,
Yield = temp6,
});
}
}
#endregion
return fixtureStatuses;
}
///
/// 固化时间设定值
///
static List ReadPlanCuringTime(HwPLc.PlcModel obj, HwPLc.PlcModel obj2)
{
List fixtureStatuses = new List();
#region 1-6夹具
if (obj != null && obj.plc.IsConnected)
{
byte[] info = obj.plc.Read("DB8.48", 12);
if (info != null)
{
short temp1 = short.Parse(StringChange.bytesToHexStr(info.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp2 = short.Parse(StringChange.bytesToHexStr(info.Skip(2).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp3 = short.Parse(StringChange.bytesToHexStr(info.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp4 = short.Parse(StringChange.bytesToHexStr(info.Skip(6).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp5 = short.Parse(StringChange.bytesToHexStr(info.Skip(8).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp6 = short.Parse(StringChange.bytesToHexStr(info.Skip(10).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
Console.WriteLine($"读取固化时间,1#:{temp1};2#{temp2};3#:{temp3};4#:{temp4};5#:{temp5};6#:{temp6}");
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 1,
PlanCuringTime = temp1,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 2,
PlanCuringTime = temp2,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 3,
PlanCuringTime = temp3,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 4,
PlanCuringTime = temp4,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 5,
PlanCuringTime = temp5,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 6,
PlanCuringTime = temp6,
});
}
}
#endregion
#region 7-12夹具
if (obj2 != null && obj2.plc.IsConnected)
{
byte[] info = obj2.plc.Read("DB8.48", 12);
if (info != null)
{
short temp1 = short.Parse(StringChange.bytesToHexStr(info.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp2 = short.Parse(StringChange.bytesToHexStr(info.Skip(2).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp3 = short.Parse(StringChange.bytesToHexStr(info.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp4 = short.Parse(StringChange.bytesToHexStr(info.Skip(6).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp5 = short.Parse(StringChange.bytesToHexStr(info.Skip(8).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
short temp6 = short.Parse(StringChange.bytesToHexStr(info.Skip(10).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
Console.WriteLine($"读取固化时间,1#:{temp1};2#{temp2};3#:{temp3};4#:{temp4};5#:{temp5};6#:{temp6}");
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 7,
PlanCuringTime = temp1,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 8,
PlanCuringTime = temp2,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 9,
PlanCuringTime = temp3,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 10,
PlanCuringTime = temp4,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 11,
PlanCuringTime = temp5,
});
fixtureStatuses.Add(new FixtureStatus()
{
ObjId = 12,
PlanCuringTime = temp6,
});
}
}
#endregion
return fixtureStatuses;
}
///
/// 发泡线状态
///
static void ReadLineStatus(HwPLc.PlcModel obj)
{
byte[] result = obj.plc.Read("DB8.630", 1);
byte[] info = result;
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[]转二进制
///
///
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; //
}
return item1;
}
}
#endregion
#region 注释方法
/////
///// 固化时间显示值
/////
//static void ReadDisplayCuringTime(HwPLc.PlcModel obj, List ActualTimeList)
//{
// if (obj == null) return;
// if (obj.plc.IsConnected)
// {
// byte[] result = obj.plc.Read("DB8.242", 48);
// byte[] info = result;
// int temp1 = int.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);
// ActualTimeList.Add(temp1);
// ActualTimeList.Add(temp2);
// ActualTimeList.Add(temp3);
// ActualTimeList.Add(temp4);
// ActualTimeList.Add(temp5);
// ActualTimeList.Add(temp6);
// ActualTimeList.Add(temp7);
// ActualTimeList.Add(temp8);
// ActualTimeList.Add(temp9);
// ActualTimeList.Add(temp10);
// ActualTimeList.Add(temp11);
// ActualTimeList.Add(temp12);
// 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}");
// }
//}
/////
///// 模具内外温度
/////
//static void ReadMoldTemperature(HwPLc.PlcModel obj, List MoldTemperatureList)
//{
// if (obj == null) return;
// if (obj.plc.IsConnected)
// {
// byte[] info = obj.plc.Read("DB8.294", 284);
// float temp1 = byteToFloat(info.Skip(0).Take(4).ToArray());
// float temp2 = byteToFloat(info.Skip(16).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(temp6);
// MoldTemperatureList.Add(temp8);
// MoldTemperatureList.Add(temp10);
// MoldTemperatureList.Add(temp12);
// MoldTemperatureList.Add(temp14);
// MoldTemperatureList.Add(temp16);
// MoldTemperatureList.Add(temp18);
// MoldTemperatureList.Add(temp20);
// MoldTemperatureList.Add(temp22);
// MoldTemperatureList.Add(temp24);
// }
//}
/////
///// 生产节拍
/////
//static void ReadProductionCycle(HwPLc.PlcModel obj, List ProductionCycleList)
//{
// if (obj == null) return;
// if (obj.plc.IsConnected)
// {
// byte[] info = obj.plc.Read("DB8.578", 52);
// float temp1 = byteToFloat(info.Skip(0).Take(4).ToArray());
// float temp2 = byteToFloat(info.Skip(4).Take(4).ToArray());
// float temp3 = byteToFloat(info.Skip(8).Take(4).ToArray());
// float temp4 = byteToFloat(info.Skip(12).Take(4).ToArray());
// float temp5 = byteToFloat(info.Skip(16).Take(4).ToArray());
// float temp6 = byteToFloat(info.Skip(20).Take(4).ToArray());
// float temp7 = byteToFloat(info.Skip(24).Take(4).ToArray());
// float temp8 = byteToFloat(info.Skip(28).Take(4).ToArray());
// float temp9 = byteToFloat(info.Skip(32).Take(4).ToArray());
// float temp10 = byteToFloat(info.Skip(36).Take(4).ToArray());
// float temp11 = byteToFloat(info.Skip(40).Take(4).ToArray());
// float temp12 = byteToFloat(info.Skip(44).Take(4).ToArray());
// // 平均节拍
// float temp13 = byteToFloat(info.Skip(48).Take(4).ToArray());
// ProductionCycleList.Add(temp1);
// ProductionCycleList.Add(temp2);
// ProductionCycleList.Add(temp3);
// ProductionCycleList.Add(temp4);
// ProductionCycleList.Add(temp5);
// ProductionCycleList.Add(temp6);
// ProductionCycleList.Add(temp7);
// ProductionCycleList.Add(temp8);
// ProductionCycleList.Add(temp9);
// ProductionCycleList.Add(temp10);
// ProductionCycleList.Add(temp11);
// ProductionCycleList.Add(temp12);
// }
//}
#endregion
}