using Admin.Core.Common;
using Admin.Core.IService;
using Admin.Core.Model;
using Admin.Core.Model.Model_New;
using Aucma.Core.HwPLc;
using log4net;
using System.Timers;
namespace Aucma.Core.Tasks
{
///
/// 钣金任务列表
///
public class AucamTaskService : IAucamTaskService
{
///
/// 老发泡线更新事件
///
///
public delegate Task RefreshOldBoxFoamDataDelegate(List list);
public static event RefreshOldBoxFoamDataDelegate RefreshOldBoxFoamDataDelegateEvent;
private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(AucamTaskService));
private readonly IOldBoxFoamTypeServices _oldBoxFoamTypeServices;
private readonly IBoxFoamDataServices _oldBoxFoamDataServices;
private readonly ISysUserInfoServices _sysUserInfoServices;
private readonly ICurrentTeamTimeServices _currentTeamTimeServices;
private readonly IBoxFoamDataRecordServices _boxFoamDataRecordServices;
private readonly IBoxFoamPlanServices _boxFoamPlanServices;
private readonly IBoxDeviceInfoServices _boxDeviceInfoServices;
public AucamTaskService(IOldBoxFoamTypeServices oldBoxFoamTypeServices, IBoxFoamDataServices oldBoxFoamDataServices,
ISysUserInfoServices sysUserInfoServices, ICurrentTeamTimeServices currentTeamTimeServices,
IBoxFoamDataRecordServices boxFoamDataRecordServices, IBoxDeviceInfoServices boxDeviceInfoServices
)
{
_oldBoxFoamTypeServices = oldBoxFoamTypeServices;
_oldBoxFoamDataServices = oldBoxFoamDataServices;
_sysUserInfoServices = sysUserInfoServices;
_currentTeamTimeServices = currentTeamTimeServices;
_boxFoamDataRecordServices = boxFoamDataRecordServices;
_boxDeviceInfoServices = boxDeviceInfoServices;
}
System.Timers.Timer timer1 = new System.Timers.Timer(1000);
System.Timers.Timer timer2 = new System.Timers.Timer(1000);
System.Timers.Timer timer3 = new System.Timers.Timer(1000);
System.Timers.Timer timer4 = new System.Timers.Timer(1000);
bool qFlay=true;//前板标识
bool hFlay = true;//后板标识
public void AucamTaskAsync()
{
//timer1.Elapsed += new System.Timers.ElapsedEventHandler(Run1); //到达时间的时候执行事件;
//timer1.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
//timer1.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它,
//timer1.Start();//timer.Start()的内部原理还是设置timer.Enabled = true;
//timer2.Elapsed += new System.Timers.ElapsedEventHandler(Run2); //到达时间的时候执行事件;
//timer2.AutoReset = true;
//timer2.Enabled = true;
//timer2.Start();
//timer3.Elapsed += new System.Timers.ElapsedEventHandler(Run3);
//timer3.AutoReset = true;
//timer3.Enabled = true;
//timer3.Start();
//timer4.Elapsed += new System.Timers.ElapsedEventHandler(Run4);
//timer4.AutoReset = true;
//timer4.Enabled = true;
//timer4.Start();
}
#region 钣金——前板
///
/// 钣金——前板
///
///
///
private void Run1(object? sender, ElapsedEventArgs e)
{
if (qFlay)
{
qFlay = false;
try
{
GetData();
qFlay = true;
}
catch (Exception)
{
throw;
}
finally
{
//List old = _oldBoxFoamDataServices.QueryAsync().Result;
//RefreshOldBoxFoamDataDelegateEvent?.Invoke(old);
}
}
}
#endregion
#region 钣金——前板
///
/// 钣金——前板
///
///
///
private void Run2(object? sender, ElapsedEventArgs e)
{
if (qFlay)
{
qFlay = false;
try
{
GetData2();
qFlay = true;
}
catch (Exception)
{
qFlay = true;
throw;
}
finally
{
//List old = _oldBoxFoamDataServices.QueryAsync().Result;
//RefreshOldBoxFoamDataDelegateEvent?.Invoke(old);
}
}
}
#endregion
#region 钣金——前板
///
/// 钣金——前板
///
///
///
private void Run3(object? sender, ElapsedEventArgs e)
{
if (qFlay)
{
qFlay = false;
try
{
GetData3();
qFlay = true;
}
catch (Exception)
{
qFlay = true;
throw;
}
finally
{
//List old = _oldBoxFoamDataServices.QueryAsync().Result;
//RefreshOldBoxFoamDataDelegateEvent?.Invoke(old);
}
}
}
#endregion
#region 钣金——前板
///
/// 钣金——前板
///
///
///
private void Run4(object? sender, ElapsedEventArgs e)
{
if (qFlay)
{
qFlay = false;
try
{
GetData4();
qFlay = true;
}
catch (Exception)
{
qFlay = true;
throw;
}
finally
{
List old = _oldBoxFoamDataServices.QueryAsync().Result;
RefreshOldBoxFoamDataDelegateEvent?.Invoke(old);
}
}
}
#endregion
public async void GetData()
{
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
try
{
List bfList = new List();
List addList = new List();
//var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2"));
//if (obj2 == null) { return; }
var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1"));
if (obj == null) { return; }
byte[] arr1 = obj.plc.ReadByte("D3140", (ushort)48);
if (arr1 == null) return;
//var arr1 = ArrReverse(bt);
byte[] arr3 = obj.plc.ReadByte("D182", (ushort)24);
if (arr3 == null) return;
//var arr3 = ArrReverse(bt3);
byte[] arr4 = obj.plc.ReadByte("D910", (ushort)24);
if (arr4 == null) return;
//var arr4 = ArrReverse(bt4);
byte[] arr5 = obj.plc.ReadByte("T3", (ushort)24);
if (arr5 == null) return;
//var arr5 = ArrReverse(bt5);
string productLineCode = Appsettings.app("StationInfo", "ProductLineCode");
List fdList = _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == productLineCode).Result;
var fixtureboxtype1 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList1 = fdList.SingleOrDefault(d => d.Fixtureboxtype == fixtureboxtype1 && d.MainId == 1);
if (oldList1 != null)
{
//只更新小时数量
oldList1.Fixtureboxtype = fixtureboxtype1;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F0", 1);
//byte[] result2 = obj.plc.Read("Y0F1", 1);
//byte[] result3 = obj.plc.Read("Y110", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr(result1, result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr(result2, result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr(result3, result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F0");
bool status2 = obj.plc.ReadBool("Y0F1");
bool status3 = obj.plc.ReadBool("Y110");
if (status2)
{
oldList1.Fixturestatus = 1;
}
else
{
oldList1.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D182"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList1.AnHour = num - oldList1.AnHour;
break;
case 2:
oldList1.TwoHour = num - oldList1.TwoHour;
break;
case 3:
oldList1.ThreeHour = num - oldList1.ThreeHour;
break;
case 4:
oldList1.FourHour = num - oldList1.FourHour;
break;
case 5:
oldList1.FiveHour = num - oldList1.FiveHour;
break;
case 6:
oldList1.SixHour = num - oldList1.SixHour;
break;
case 7:
oldList1.SevenHour = num - oldList1.SevenHour;
break;
case 8:
oldList1.EightHour = num - oldList1.EightHour; ;
break;
case 9:
oldList1.NineHour = num - oldList1.NineHour;
break;
case 10:
oldList1.TenHour = num - oldList1.TenHour;
break;
case 11:
oldList1.ElevenHour = num - oldList1.ElevenHour;
break;
case 12:
oldList1.TwelveHour = num - oldList1.TwelveHour;
break;
default:
break;
}
#endregion
oldList1.Production = obj.plc.ReadInt16("D182");//short.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
oldList1.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList1.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList1.UpdatedTime = DateTime.Now;
oldList1.ProductLineCode = "CX_01";
oldList1.MainId = 1;
bfList.Add(oldList1);
//await _oldBoxFoamDataServices.UpdateAsync(oldList1);
}
else
{
BoxFoamData boxfoam1 = new BoxFoamData();
//新增
boxfoam1.Fixtureboxtype = fixtureboxtype1;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F0", 1);
//byte[] result2 = obj.plc.Read("Y0F1", 1);
//byte[] result3 = obj.plc.Read("Y110", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F0");
bool status2 = obj.plc.ReadBool("Y0F1");
bool status3 = obj.plc.ReadBool("Y110");
if (status2)
{
boxfoam1.Fixturestatus = 1;
}
else
{
boxfoam1.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D182"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam1.AnHour = num;
break;
case 2:
boxfoam1.TwoHour = num;
break;
case 3:
boxfoam1.ThreeHour = num;
break;
case 4:
boxfoam1.FourHour = num;
break;
case 5:
boxfoam1.FiveHour = num;
break;
case 6:
boxfoam1.SixHour = num;
break;
case 7:
boxfoam1.SevenHour = num;
break;
case 8:
boxfoam1.EightHour = num;
break;
case 9:
boxfoam1.NineHour = num;
break;
case 10:
boxfoam1.TenHour = num;
break;
case 11:
boxfoam1.ElevenHour = num;
break;
case 12:
boxfoam1.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam1.Production = obj.plc.ReadInt16("D182");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam1.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam1.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam1.UpdatedTime = DateTime.Now;
boxfoam1.ProductLineCode = "CX_01";
boxfoam1.MainId = 1;
addList.Add(boxfoam1);
//await _oldBoxFoamDataServices.AddAsync(boxfoam1);
}
var fixtureboxtype2 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList2 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype1 && d.MainId == 2);
if (oldList2 != null)
{
oldList2.Fixtureboxtype = fixtureboxtype2;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F5", 1);
//byte[] result2 = obj.plc.Read("Y0F6", 1);
//byte[] result3 = obj.plc.Read("Y111", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F5");
bool status2 = obj.plc.ReadBool("Y0F6");
bool status3 = obj.plc.ReadBool("Y111");
if (status2)
{
oldList2.Fixturestatus = 1;
}
else
{
oldList2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList2.AnHour = num - oldList2.AnHour;
break;
case 2:
oldList2.TwoHour = num - oldList2.TwoHour;
break;
case 3:
oldList2.ThreeHour = num - oldList2.ThreeHour;
break;
case 4:
oldList2.FourHour = num - oldList2.FourHour;
break;
case 5:
oldList2.FiveHour = num - oldList2.FiveHour;
break;
case 6:
oldList2.SixHour = num - oldList2.SixHour;
break;
case 7:
oldList2.SevenHour = num - oldList2.SevenHour;
break;
case 8:
oldList2.EightHour = num - oldList2.EightHour; ;
break;
case 9:
oldList2.NineHour = num - oldList2.NineHour;
break;
case 10:
oldList2.TenHour = num - oldList2.TenHour;
break;
case 11:
oldList2.ElevenHour = num - oldList2.ElevenHour;
break;
case 12:
oldList2.TwelveHour = num - oldList2.TwelveHour;
break;
default:
break;
}
#endregion
oldList2.Production = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
oldList2.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList2.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList2.UpdatedTime = DateTime.Now;
oldList2.ProductLineCode = "CX_01";
oldList2.MainId = 2;
bfList.Add(oldList2);
//await _oldBoxFoamDataServices.UpdateAsync(oldList2);
}
else
{
BoxFoamData boxfoam2 = new BoxFoamData();
boxfoam2.Fixtureboxtype = fixtureboxtype2;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F5", 1);
//byte[] result2 = obj.plc.Read("Y0F6", 1);
//byte[] result3 = obj.plc.Read("Y111", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F5");
bool status2 = obj.plc.ReadBool("Y0F6");
bool status3 = obj.plc.ReadBool("Y111");
if (status2)
{
boxfoam2.Fixturestatus = 1;
}
else
{
boxfoam2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D183");//int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam2.AnHour = num;
break;
case 2:
boxfoam2.TwoHour = num;
break;
case 3:
boxfoam2.ThreeHour = num;
break;
case 4:
boxfoam2.FourHour = num;
break;
case 5:
boxfoam2.FiveHour = num;
break;
case 6:
boxfoam2.SixHour = num;
break;
case 7:
boxfoam2.SevenHour = num;
break;
case 8:
boxfoam2.EightHour = num;
break;
case 9:
boxfoam2.NineHour = num;
break;
case 10:
boxfoam2.TenHour = num;
break;
case 11:
boxfoam2.ElevenHour = num;
break;
case 12:
boxfoam2.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam2.Production = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
boxfoam2.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam2.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam2.UpdatedTime = DateTime.Now;
boxfoam2.MainId = 2;
boxfoam2.ProductLineCode = "CX_01";
addList.Add(boxfoam2);
//await _oldBoxFoamDataServices.AddAsync(boxfoam2);
}
var fixtureboxtype3 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(8).Take(9).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList3 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype3 && d.MainId == 3);
if (oldList3 != null)
{
oldList3.Fixtureboxtype = fixtureboxtype3;
#region 状态
//byte[] result1 = obj.plc.Read("Y0FA", 1);
//byte[] result2 = obj.plc.Read("Y0FB", 1);
//byte[] result3 = obj.plc.Read("Y112", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0FA");
bool status2 = obj.plc.ReadBool("Y0FB");
bool status3 = obj.plc.ReadBool("Y112");
if (status2)
{
oldList2.Fixturestatus = 1;
}
else
{
oldList2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList3.AnHour = num - oldList3.AnHour;
break;
case 2:
oldList3.TwoHour = num - oldList3.TwoHour;
break;
case 3:
oldList3.ThreeHour = num - oldList3.ThreeHour;
break;
case 4:
oldList3.FourHour = num - oldList3.FourHour;
break;
case 5:
oldList3.FiveHour = num - oldList3.FiveHour;
break;
case 6:
oldList3.SixHour = num - oldList3.SixHour;
break;
case 7:
oldList3.SevenHour = num - oldList3.SevenHour;
break;
case 8:
oldList3.EightHour = num - oldList3.EightHour; ;
break;
case 9:
oldList3.NineHour = num - oldList3.NineHour;
break;
case 10:
oldList3.TenHour = num - oldList3.TenHour;
break;
case 11:
oldList3.ElevenHour = num - oldList3.ElevenHour;
break;
case 12:
oldList3.TwelveHour = num - oldList3.TwelveHour;
break;
default:
break;
}
#endregion
oldList3.Production = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
oldList3.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList3.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(6).Take(8).ToArray(), 1), System.Globalization.NumberStyles.HexNumber).ToString();
oldList3.UpdatedTime = DateTime.Now;
oldList3.MainId = 3;
oldList3.ProductLineCode = "CX_01";
bfList.Add(oldList3);
//await _oldBoxFoamDataServices.UpdateAsync(oldList3);
}
else
{
BoxFoamData boxfoam3 = new BoxFoamData();
boxfoam3.Fixtureboxtype = fixtureboxtype3;
#region 状态
//byte[] result1 = obj.plc.Read("Y0FA", 1);
//byte[] result2 = obj.plc.Read("Y0FB", 1);
//byte[] result3 = obj.plc.Read("Y112", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0FA");
bool status2 = obj.plc.ReadBool("Y0FB");
bool status3 = obj.plc.ReadBool("Y112");
if (status2)
{
boxfoam3.Fixturestatus = 1;
}
else
{
boxfoam3.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam3.AnHour = num;
break;
case 2:
boxfoam3.TwoHour = num;
break;
case 3:
boxfoam3.ThreeHour = num;
break;
case 4:
boxfoam3.FourHour = num;
break;
case 5:
boxfoam3.FiveHour = num;
break;
case 6:
boxfoam3.SixHour = num;
break;
case 7:
boxfoam3.SevenHour = num;
break;
case 8:
boxfoam3.EightHour = num;
break;
case 9:
boxfoam3.NineHour = num;
break;
case 10:
boxfoam3.TenHour = num;
break;
case 11:
boxfoam3.ElevenHour = num;
break;
case 12:
boxfoam3.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam3.Production = obj.plc.ReadInt16("D184");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
boxfoam3.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam3.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam3.UpdatedTime = DateTime.Now;
boxfoam3.MainId = 3;
boxfoam3.ProductLineCode = "CX_01";
addList.Add(boxfoam3);
//await _oldBoxFoamDataServices.AddAsync(boxfoam3);
}
var fixtureboxtype4 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(12).Take(13).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList4 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype4 && d.MainId == 4);
if (oldList4 != null)
{
oldList4.Fixtureboxtype = fixtureboxtype4;
#region 状态
//byte[] result1 = obj2.plc.Read("Y100", 1);
//byte[] result2 = obj2.plc.Read("Y101", 1);
//byte[] result3 = obj2.plc.Read("Y113", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
oldList4.Fixturestatus = 1;
}
else
{
oldList4.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D185"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList4.AnHour = num - oldList4.AnHour;
break;
case 2:
oldList4.TwoHour = num - oldList4.TwoHour;
break;
case 3:
oldList4.ThreeHour = num - oldList4.ThreeHour;
break;
case 4:
oldList4.FourHour = num - oldList4.FourHour;
break;
case 5:
oldList4.FiveHour = num - oldList4.FiveHour;
break;
case 6:
oldList4.SixHour = num - oldList4.SixHour;
break;
case 7:
oldList4.SevenHour = num - oldList4.SevenHour;
break;
case 8:
oldList4.EightHour = num - oldList4.EightHour; ;
break;
case 9:
oldList4.NineHour = num - oldList4.NineHour;
break;
case 10:
oldList4.TenHour = num - oldList4.TenHour;
break;
case 11:
oldList4.ElevenHour = num - oldList4.ElevenHour;
break;
case 12:
oldList4.TwelveHour = num - oldList4.TwelveHour;
break;
default:
break;
}
#endregion
oldList4.Production = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
oldList4.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList4.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(9).Take(12).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList4.UpdatedTime = DateTime.Now;
oldList4.MainId = 4;
oldList4.ProductLineCode = "CX_01";
bfList.Add(oldList4);
//await _oldBoxFoamDataServices.UpdateAsync(oldList4);
}
else
{
BoxFoamData boxfoam4 = new BoxFoamData();
boxfoam4.Fixtureboxtype = fixtureboxtype4;
#region 状态
//byte[] result1 = obj2.plc.Read("Y100", 1);
//byte[] result2 = obj2.plc.Read("Y101", 1);
//byte[] result3 = obj2.plc.Read("Y113", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
boxfoam4.Fixturestatus = 1;
}
else
{
boxfoam4.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam4.AnHour = num;
break;
case 2:
boxfoam4.TwoHour = num;
break;
case 3:
boxfoam4.ThreeHour = num;
break;
case 4:
boxfoam4.FourHour = num;
break;
case 5:
boxfoam4.FiveHour = num;
break;
case 6:
boxfoam4.SixHour = num;
break;
case 7:
boxfoam4.SevenHour = num;
break;
case 8:
boxfoam4.EightHour = num;
break;
case 9:
boxfoam4.NineHour = num;
break;
case 10:
boxfoam4.TenHour = num;
break;
case 11:
boxfoam4.ElevenHour = num;
break;
case 12:
boxfoam4.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam4.Production = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam4.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam4.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam4.UpdatedTime = DateTime.Now;
boxfoam4.MainId = 4;
boxfoam4.ProductLineCode = "CX_01";
addList.Add(boxfoam4);
//await _oldBoxFoamDataServices.AddAsync(boxfoam4);
}
var fixtureboxtype5 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(16).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList5 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype5 && d.MainId == 5);
if (oldList5 != null)
{
oldList5.Fixtureboxtype = fixtureboxtype5;
#region 状态
//byte[] result1 = obj2.plc.Read("Y105", 1);
//byte[] result2 = obj2.plc.Read("Y106", 1);
//byte[] result3 = obj2.plc.Read("Y114", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
oldList5.Fixturestatus = 1;
}
else
{
oldList5.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList5.AnHour = num - oldList5.AnHour;
break;
case 2:
oldList5.TwoHour = num - oldList5.TwoHour;
break;
case 3:
oldList5.ThreeHour = num - oldList5.ThreeHour;
break;
case 4:
oldList5.FourHour = num - oldList5.FourHour;
break;
case 5:
oldList5.FiveHour = num - oldList5.FiveHour;
break;
case 6:
oldList5.SixHour = num - oldList5.SixHour;
break;
case 7:
oldList5.SevenHour = num - oldList5.SevenHour;
break;
case 8:
oldList5.EightHour = num - oldList5.EightHour; ;
break;
case 9:
oldList5.NineHour = num - oldList5.NineHour;
break;
case 10:
oldList5.TenHour = num - oldList5.TenHour;
break;
case 11:
oldList5.ElevenHour = num - oldList5.ElevenHour;
break;
case 12:
oldList5.TwelveHour = num - oldList5.TwelveHour;
break;
default:
break;
}
#endregion
oldList5.Production = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
oldList5.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList5.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList5.UpdatedTime = DateTime.Now;
oldList5.MainId = 5;
oldList5.ProductLineCode = "CX_01";
bfList.Add(oldList5);
//await _oldBoxFoamDataServices.UpdateAsync(oldList5);
}
else
{
BoxFoamData boxfoam5 = new BoxFoamData();
boxfoam5.Fixtureboxtype = fixtureboxtype5;
#region 状态
//byte[] result1 = obj2.plc.Read("Y105", 1);
//byte[] result2 = obj2.plc.Read("Y106", 1);
//byte[] result3 = obj2.plc.Read("Y114", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
boxfoam5.Fixturestatus = 1;
}
else
{
boxfoam5.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam5.AnHour = num;
break;
case 2:
boxfoam5.TwoHour = num;
break;
case 3:
boxfoam5.ThreeHour = num;
break;
case 4:
boxfoam5.FourHour = num;
break;
case 5:
boxfoam5.FiveHour = num;
break;
case 6:
boxfoam5.SixHour = num;
break;
case 7:
boxfoam5.SevenHour = num;
break;
case 8:
boxfoam5.EightHour = num;
break;
case 9:
boxfoam5.NineHour = num;
break;
case 10:
boxfoam5.TenHour = num;
break;
case 11:
boxfoam5.ElevenHour = num;
break;
case 12:
boxfoam5.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam5.Production = obj.plc.ReadInt16("D186"); int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam5.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam5.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam5.UpdatedTime = DateTime.Now;
boxfoam5.MainId = 5;
boxfoam5.ProductLineCode = "CX_01";
addList.Add(boxfoam5);
//await _oldBoxFoamDataServices.AddAsync(boxfoam5);
}
var fixtureboxtype6 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(20).Take(21).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList6 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype6 && d.MainId == 6);
if (oldList6 != null)
{
oldList6.Fixtureboxtype = fixtureboxtype6;
#region 状态
//byte[] result1 = obj2.plc.Read("Y10A", 1);
//byte[] result2 = obj2.plc.Read("Y10B", 1);
//byte[] result3 = obj2.plc.Read("Y115", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y10A");
bool status2 = obj.plc.ReadBool("Y10B");
bool status3 = obj.plc.ReadBool("Y115");
if (status2)
{
oldList6.Fixturestatus = 1;
}
else
{
oldList6.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList6.AnHour = num - oldList6.AnHour;
break;
case 2:
oldList6.TwoHour = num - oldList6.TwoHour;
break;
case 3:
oldList6.ThreeHour = num - oldList6.ThreeHour;
break;
case 4:
oldList6.FourHour = num - oldList6.FourHour;
break;
case 5:
oldList6.FiveHour = num - oldList6.FiveHour;
break;
case 6:
oldList6.SixHour = num - oldList6.SixHour;
break;
case 7:
oldList6.SevenHour = num - oldList6.SevenHour;
break;
case 8:
oldList6.EightHour = num - oldList6.EightHour; ;
break;
case 9:
oldList6.NineHour = num - oldList6.NineHour;
break;
case 10:
oldList6.TenHour = num - oldList6.TenHour;
break;
case 11:
oldList6.ElevenHour = num - oldList6.ElevenHour;
break;
case 12:
oldList6.TwelveHour = num - oldList6.TwelveHour;
break;
default:
break;
}
#endregion
oldList6.Production = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
oldList6.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(15).Take(17).ToArray(), 3), System.Globalization.NumberStyles.HexNumber).ToString();
oldList6.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(15).Take(17).ToArray(), 3), System.Globalization.NumberStyles.HexNumber).ToString();
oldList6.UpdatedTime = DateTime.Now;
oldList6.MainId = 6;
oldList6.ProductLineCode = "CX_01";
bfList.Add(oldList6);
//await _oldBoxFoamDataServices.UpdateAsync(oldList6);
}
else
{
BoxFoamData boxfoam6 = new BoxFoamData();
boxfoam6.Fixtureboxtype = fixtureboxtype6;
#region 状态
//byte[] result1 = obj2.plc.Read("Y10A", 1);
//byte[] result2 = obj2.plc.Read("Y10B", 1);
//byte[] result3 = obj2.plc.Read("Y115", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y10A");
bool status2 = obj.plc.ReadBool("Y10B");
bool status3 = obj.plc.ReadBool("Y115");
if (status2)
{
boxfoam6.Fixturestatus = 1;
}
else
{
boxfoam6.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam6.AnHour = num;
break;
case 2:
boxfoam6.TwoHour = num;
break;
case 3:
boxfoam6.ThreeHour = num;
break;
case 4:
boxfoam6.FourHour = num;
break;
case 5:
boxfoam6.FiveHour = num;
break;
case 6:
boxfoam6.SixHour = num;
break;
case 7:
boxfoam6.SevenHour = num;
break;
case 8:
boxfoam6.EightHour = num;
break;
case 9:
boxfoam6.NineHour = num;
break;
case 10:
boxfoam6.TenHour = num;
break;
case 11:
boxfoam6.ElevenHour = num;
break;
case 12:
boxfoam6.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam6.Production = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam6.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam6.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam6.UpdatedTime = DateTime.Now;
boxfoam6.MainId = 6;
boxfoam6.ProductLineCode = "CX_01";
addList.Add(boxfoam6);
//await _oldBoxFoamDataServices.AddAsync(boxfoam6);
}
if (bfList != null)
{
await _oldBoxFoamDataServices.UpdateAsync(bfList);
}
if (addList != null)
{
await _oldBoxFoamDataServices.AddAsync(addList);
}
}
catch (Exception ex)
{
throw;
}
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
}
public async void GetData2()
{
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
try
{
List bfList = new List();
List addList = new List();
//var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2"));
//if (obj2 == null) { return; }
var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2"));
if (obj == null) { return; }
byte[] arr1 = obj.plc.ReadByte("D3140", (ushort)48);
if (arr1 == null) return;
//var arr1 = ArrReverse(bt);
byte[] arr3 = obj.plc.ReadByte("D182", (ushort)24);
if (arr3 == null) return;
//var arr3 = ArrReverse(bt3);
byte[] arr4 = obj.plc.ReadByte("D910", (ushort)24);
if (arr4 == null) return;
//var arr4 = ArrReverse(bt4);
byte[] arr5 = obj.plc.ReadByte("T3", (ushort)24);
if (arr5 == null) return;
//var arr5 = ArrReverse(bt5);
string productLineCode = Appsettings.app("StationInfo", "ProductLineCode");
List fdList = _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == productLineCode).Result;
var fixtureboxtype1 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList1 = fdList.SingleOrDefault(d => d.Fixtureboxtype == fixtureboxtype1 && d.MainId == 1);
if (oldList1 != null)
{
//只更新小时数量
oldList1.Fixtureboxtype = fixtureboxtype1;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F0", 1);
//byte[] result2 = obj.plc.Read("Y0F1", 1);
//byte[] result3 = obj.plc.Read("Y110", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr(result1, result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr(result2, result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr(result3, result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F0");
bool status2 = obj.plc.ReadBool("Y0F1");
bool status3 = obj.plc.ReadBool("Y110");
if (status2)
{
oldList1.Fixturestatus = 1;
}
else
{
oldList1.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D182"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList1.AnHour = num - oldList1.AnHour;
break;
case 2:
oldList1.TwoHour = num - oldList1.TwoHour;
break;
case 3:
oldList1.ThreeHour = num - oldList1.ThreeHour;
break;
case 4:
oldList1.FourHour = num - oldList1.FourHour;
break;
case 5:
oldList1.FiveHour = num - oldList1.FiveHour;
break;
case 6:
oldList1.SixHour = num - oldList1.SixHour;
break;
case 7:
oldList1.SevenHour = num - oldList1.SevenHour;
break;
case 8:
oldList1.EightHour = num - oldList1.EightHour; ;
break;
case 9:
oldList1.NineHour = num - oldList1.NineHour;
break;
case 10:
oldList1.TenHour = num - oldList1.TenHour;
break;
case 11:
oldList1.ElevenHour = num - oldList1.ElevenHour;
break;
case 12:
oldList1.TwelveHour = num - oldList1.TwelveHour;
break;
default:
break;
}
#endregion
oldList1.Production = obj.plc.ReadInt16("D182");//short.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
oldList1.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList1.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList1.UpdatedTime = DateTime.Now;
oldList1.ProductLineCode = "CX_01";
oldList1.MainId = 1;
bfList.Add(oldList1);
//await _oldBoxFoamDataServices.UpdateAsync(oldList1);
}
else
{
BoxFoamData boxfoam1 = new BoxFoamData();
//新增
boxfoam1.Fixtureboxtype = fixtureboxtype1;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F0", 1);
//byte[] result2 = obj.plc.Read("Y0F1", 1);
//byte[] result3 = obj.plc.Read("Y110", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F0");
bool status2 = obj.plc.ReadBool("Y0F1");
bool status3 = obj.plc.ReadBool("Y110");
if (status2)
{
boxfoam1.Fixturestatus = 1;
}
else
{
boxfoam1.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D182"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam1.AnHour = num;
break;
case 2:
boxfoam1.TwoHour = num;
break;
case 3:
boxfoam1.ThreeHour = num;
break;
case 4:
boxfoam1.FourHour = num;
break;
case 5:
boxfoam1.FiveHour = num;
break;
case 6:
boxfoam1.SixHour = num;
break;
case 7:
boxfoam1.SevenHour = num;
break;
case 8:
boxfoam1.EightHour = num;
break;
case 9:
boxfoam1.NineHour = num;
break;
case 10:
boxfoam1.TenHour = num;
break;
case 11:
boxfoam1.ElevenHour = num;
break;
case 12:
boxfoam1.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam1.Production = obj.plc.ReadInt16("D182");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam1.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam1.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam1.UpdatedTime = DateTime.Now;
boxfoam1.ProductLineCode = "CX_01";
boxfoam1.MainId = 1;
addList.Add(boxfoam1);
//await _oldBoxFoamDataServices.AddAsync(boxfoam1);
}
var fixtureboxtype2 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList2 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype1 && d.MainId == 2);
if (oldList2 != null)
{
oldList2.Fixtureboxtype = fixtureboxtype2;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F5", 1);
//byte[] result2 = obj.plc.Read("Y0F6", 1);
//byte[] result3 = obj.plc.Read("Y111", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F5");
bool status2 = obj.plc.ReadBool("Y0F6");
bool status3 = obj.plc.ReadBool("Y111");
if (status2)
{
oldList2.Fixturestatus = 1;
}
else
{
oldList2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList2.AnHour = num - oldList2.AnHour;
break;
case 2:
oldList2.TwoHour = num - oldList2.TwoHour;
break;
case 3:
oldList2.ThreeHour = num - oldList2.ThreeHour;
break;
case 4:
oldList2.FourHour = num - oldList2.FourHour;
break;
case 5:
oldList2.FiveHour = num - oldList2.FiveHour;
break;
case 6:
oldList2.SixHour = num - oldList2.SixHour;
break;
case 7:
oldList2.SevenHour = num - oldList2.SevenHour;
break;
case 8:
oldList2.EightHour = num - oldList2.EightHour; ;
break;
case 9:
oldList2.NineHour = num - oldList2.NineHour;
break;
case 10:
oldList2.TenHour = num - oldList2.TenHour;
break;
case 11:
oldList2.ElevenHour = num - oldList2.ElevenHour;
break;
case 12:
oldList2.TwelveHour = num - oldList2.TwelveHour;
break;
default:
break;
}
#endregion
oldList2.Production = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
oldList2.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList2.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList2.UpdatedTime = DateTime.Now;
oldList2.ProductLineCode = "CX_01";
oldList2.MainId = 2;
bfList.Add(oldList2);
//await _oldBoxFoamDataServices.UpdateAsync(oldList2);
}
else
{
BoxFoamData boxfoam2 = new BoxFoamData();
boxfoam2.Fixtureboxtype = fixtureboxtype2;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F5", 1);
//byte[] result2 = obj.plc.Read("Y0F6", 1);
//byte[] result3 = obj.plc.Read("Y111", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F5");
bool status2 = obj.plc.ReadBool("Y0F6");
bool status3 = obj.plc.ReadBool("Y111");
if (status2)
{
boxfoam2.Fixturestatus = 1;
}
else
{
boxfoam2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D183");//int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam2.AnHour = num;
break;
case 2:
boxfoam2.TwoHour = num;
break;
case 3:
boxfoam2.ThreeHour = num;
break;
case 4:
boxfoam2.FourHour = num;
break;
case 5:
boxfoam2.FiveHour = num;
break;
case 6:
boxfoam2.SixHour = num;
break;
case 7:
boxfoam2.SevenHour = num;
break;
case 8:
boxfoam2.EightHour = num;
break;
case 9:
boxfoam2.NineHour = num;
break;
case 10:
boxfoam2.TenHour = num;
break;
case 11:
boxfoam2.ElevenHour = num;
break;
case 12:
boxfoam2.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam2.Production = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
boxfoam2.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam2.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam2.UpdatedTime = DateTime.Now;
boxfoam2.MainId = 2;
boxfoam2.ProductLineCode = "CX_01";
addList.Add(boxfoam2);
//await _oldBoxFoamDataServices.AddAsync(boxfoam2);
}
var fixtureboxtype3 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(8).Take(9).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList3 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype3 && d.MainId == 3);
if (oldList3 != null)
{
oldList3.Fixtureboxtype = fixtureboxtype3;
#region 状态
//byte[] result1 = obj.plc.Read("Y0FA", 1);
//byte[] result2 = obj.plc.Read("Y0FB", 1);
//byte[] result3 = obj.plc.Read("Y112", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0FA");
bool status2 = obj.plc.ReadBool("Y0FB");
bool status3 = obj.plc.ReadBool("Y112");
if (status2)
{
oldList2.Fixturestatus = 1;
}
else
{
oldList2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList3.AnHour = num - oldList3.AnHour;
break;
case 2:
oldList3.TwoHour = num - oldList3.TwoHour;
break;
case 3:
oldList3.ThreeHour = num - oldList3.ThreeHour;
break;
case 4:
oldList3.FourHour = num - oldList3.FourHour;
break;
case 5:
oldList3.FiveHour = num - oldList3.FiveHour;
break;
case 6:
oldList3.SixHour = num - oldList3.SixHour;
break;
case 7:
oldList3.SevenHour = num - oldList3.SevenHour;
break;
case 8:
oldList3.EightHour = num - oldList3.EightHour; ;
break;
case 9:
oldList3.NineHour = num - oldList3.NineHour;
break;
case 10:
oldList3.TenHour = num - oldList3.TenHour;
break;
case 11:
oldList3.ElevenHour = num - oldList3.ElevenHour;
break;
case 12:
oldList3.TwelveHour = num - oldList3.TwelveHour;
break;
default:
break;
}
#endregion
oldList3.Production = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
oldList3.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList3.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(6).Take(8).ToArray(), 1), System.Globalization.NumberStyles.HexNumber).ToString();
oldList3.UpdatedTime = DateTime.Now;
oldList3.MainId = 3;
oldList3.ProductLineCode = "CX_01";
bfList.Add(oldList3);
//await _oldBoxFoamDataServices.UpdateAsync(oldList3);
}
else
{
BoxFoamData boxfoam3 = new BoxFoamData();
boxfoam3.Fixtureboxtype = fixtureboxtype3;
#region 状态
//byte[] result1 = obj.plc.Read("Y0FA", 1);
//byte[] result2 = obj.plc.Read("Y0FB", 1);
//byte[] result3 = obj.plc.Read("Y112", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0FA");
bool status2 = obj.plc.ReadBool("Y0FB");
bool status3 = obj.plc.ReadBool("Y112");
if (status2)
{
boxfoam3.Fixturestatus = 1;
}
else
{
boxfoam3.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam3.AnHour = num;
break;
case 2:
boxfoam3.TwoHour = num;
break;
case 3:
boxfoam3.ThreeHour = num;
break;
case 4:
boxfoam3.FourHour = num;
break;
case 5:
boxfoam3.FiveHour = num;
break;
case 6:
boxfoam3.SixHour = num;
break;
case 7:
boxfoam3.SevenHour = num;
break;
case 8:
boxfoam3.EightHour = num;
break;
case 9:
boxfoam3.NineHour = num;
break;
case 10:
boxfoam3.TenHour = num;
break;
case 11:
boxfoam3.ElevenHour = num;
break;
case 12:
boxfoam3.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam3.Production = obj.plc.ReadInt16("D184");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
boxfoam3.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam3.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam3.UpdatedTime = DateTime.Now;
boxfoam3.MainId = 3;
boxfoam3.ProductLineCode = "CX_01";
addList.Add(boxfoam3);
//await _oldBoxFoamDataServices.AddAsync(boxfoam3);
}
var fixtureboxtype4 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(12).Take(13).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList4 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype4 && d.MainId == 4);
if (oldList4 != null)
{
oldList4.Fixtureboxtype = fixtureboxtype4;
#region 状态
//byte[] result1 = obj2.plc.Read("Y100", 1);
//byte[] result2 = obj2.plc.Read("Y101", 1);
//byte[] result3 = obj2.plc.Read("Y113", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
oldList4.Fixturestatus = 1;
}
else
{
oldList4.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D185"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList4.AnHour = num - oldList4.AnHour;
break;
case 2:
oldList4.TwoHour = num - oldList4.TwoHour;
break;
case 3:
oldList4.ThreeHour = num - oldList4.ThreeHour;
break;
case 4:
oldList4.FourHour = num - oldList4.FourHour;
break;
case 5:
oldList4.FiveHour = num - oldList4.FiveHour;
break;
case 6:
oldList4.SixHour = num - oldList4.SixHour;
break;
case 7:
oldList4.SevenHour = num - oldList4.SevenHour;
break;
case 8:
oldList4.EightHour = num - oldList4.EightHour; ;
break;
case 9:
oldList4.NineHour = num - oldList4.NineHour;
break;
case 10:
oldList4.TenHour = num - oldList4.TenHour;
break;
case 11:
oldList4.ElevenHour = num - oldList4.ElevenHour;
break;
case 12:
oldList4.TwelveHour = num - oldList4.TwelveHour;
break;
default:
break;
}
#endregion
oldList4.Production = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
oldList4.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList4.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(9).Take(12).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList4.UpdatedTime = DateTime.Now;
oldList4.MainId = 4;
oldList4.ProductLineCode = "CX_01";
bfList.Add(oldList4);
//await _oldBoxFoamDataServices.UpdateAsync(oldList4);
}
else
{
BoxFoamData boxfoam4 = new BoxFoamData();
boxfoam4.Fixtureboxtype = fixtureboxtype4;
#region 状态
//byte[] result1 = obj2.plc.Read("Y100", 1);
//byte[] result2 = obj2.plc.Read("Y101", 1);
//byte[] result3 = obj2.plc.Read("Y113", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
boxfoam4.Fixturestatus = 1;
}
else
{
boxfoam4.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam4.AnHour = num;
break;
case 2:
boxfoam4.TwoHour = num;
break;
case 3:
boxfoam4.ThreeHour = num;
break;
case 4:
boxfoam4.FourHour = num;
break;
case 5:
boxfoam4.FiveHour = num;
break;
case 6:
boxfoam4.SixHour = num;
break;
case 7:
boxfoam4.SevenHour = num;
break;
case 8:
boxfoam4.EightHour = num;
break;
case 9:
boxfoam4.NineHour = num;
break;
case 10:
boxfoam4.TenHour = num;
break;
case 11:
boxfoam4.ElevenHour = num;
break;
case 12:
boxfoam4.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam4.Production = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam4.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam4.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam4.UpdatedTime = DateTime.Now;
boxfoam4.MainId = 4;
boxfoam4.ProductLineCode = "CX_01";
addList.Add(boxfoam4);
//await _oldBoxFoamDataServices.AddAsync(boxfoam4);
}
var fixtureboxtype5 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(16).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList5 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype5 && d.MainId == 5);
if (oldList5 != null)
{
oldList5.Fixtureboxtype = fixtureboxtype5;
#region 状态
//byte[] result1 = obj2.plc.Read("Y105", 1);
//byte[] result2 = obj2.plc.Read("Y106", 1);
//byte[] result3 = obj2.plc.Read("Y114", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
oldList5.Fixturestatus = 1;
}
else
{
oldList5.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList5.AnHour = num - oldList5.AnHour;
break;
case 2:
oldList5.TwoHour = num - oldList5.TwoHour;
break;
case 3:
oldList5.ThreeHour = num - oldList5.ThreeHour;
break;
case 4:
oldList5.FourHour = num - oldList5.FourHour;
break;
case 5:
oldList5.FiveHour = num - oldList5.FiveHour;
break;
case 6:
oldList5.SixHour = num - oldList5.SixHour;
break;
case 7:
oldList5.SevenHour = num - oldList5.SevenHour;
break;
case 8:
oldList5.EightHour = num - oldList5.EightHour; ;
break;
case 9:
oldList5.NineHour = num - oldList5.NineHour;
break;
case 10:
oldList5.TenHour = num - oldList5.TenHour;
break;
case 11:
oldList5.ElevenHour = num - oldList5.ElevenHour;
break;
case 12:
oldList5.TwelveHour = num - oldList5.TwelveHour;
break;
default:
break;
}
#endregion
oldList5.Production = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
oldList5.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList5.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList5.UpdatedTime = DateTime.Now;
oldList5.MainId = 5;
oldList5.ProductLineCode = "CX_01";
bfList.Add(oldList5);
//await _oldBoxFoamDataServices.UpdateAsync(oldList5);
}
else
{
BoxFoamData boxfoam5 = new BoxFoamData();
boxfoam5.Fixtureboxtype = fixtureboxtype5;
#region 状态
//byte[] result1 = obj2.plc.Read("Y105", 1);
//byte[] result2 = obj2.plc.Read("Y106", 1);
//byte[] result3 = obj2.plc.Read("Y114", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
boxfoam5.Fixturestatus = 1;
}
else
{
boxfoam5.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam5.AnHour = num;
break;
case 2:
boxfoam5.TwoHour = num;
break;
case 3:
boxfoam5.ThreeHour = num;
break;
case 4:
boxfoam5.FourHour = num;
break;
case 5:
boxfoam5.FiveHour = num;
break;
case 6:
boxfoam5.SixHour = num;
break;
case 7:
boxfoam5.SevenHour = num;
break;
case 8:
boxfoam5.EightHour = num;
break;
case 9:
boxfoam5.NineHour = num;
break;
case 10:
boxfoam5.TenHour = num;
break;
case 11:
boxfoam5.ElevenHour = num;
break;
case 12:
boxfoam5.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam5.Production = obj.plc.ReadInt16("D186"); int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam5.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam5.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam5.UpdatedTime = DateTime.Now;
boxfoam5.MainId = 5;
boxfoam5.ProductLineCode = "CX_01";
addList.Add(boxfoam5);
//await _oldBoxFoamDataServices.AddAsync(boxfoam5);
}
var fixtureboxtype6 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(20).Take(21).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList6 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype6 && d.MainId == 6);
if (oldList6 != null)
{
oldList6.Fixtureboxtype = fixtureboxtype6;
#region 状态
//byte[] result1 = obj2.plc.Read("Y10A", 1);
//byte[] result2 = obj2.plc.Read("Y10B", 1);
//byte[] result3 = obj2.plc.Read("Y115", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y10A");
bool status2 = obj.plc.ReadBool("Y10B");
bool status3 = obj.plc.ReadBool("Y115");
if (status2)
{
oldList6.Fixturestatus = 1;
}
else
{
oldList6.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList6.AnHour = num - oldList6.AnHour;
break;
case 2:
oldList6.TwoHour = num - oldList6.TwoHour;
break;
case 3:
oldList6.ThreeHour = num - oldList6.ThreeHour;
break;
case 4:
oldList6.FourHour = num - oldList6.FourHour;
break;
case 5:
oldList6.FiveHour = num - oldList6.FiveHour;
break;
case 6:
oldList6.SixHour = num - oldList6.SixHour;
break;
case 7:
oldList6.SevenHour = num - oldList6.SevenHour;
break;
case 8:
oldList6.EightHour = num - oldList6.EightHour; ;
break;
case 9:
oldList6.NineHour = num - oldList6.NineHour;
break;
case 10:
oldList6.TenHour = num - oldList6.TenHour;
break;
case 11:
oldList6.ElevenHour = num - oldList6.ElevenHour;
break;
case 12:
oldList6.TwelveHour = num - oldList6.TwelveHour;
break;
default:
break;
}
#endregion
oldList6.Production = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
oldList6.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(15).Take(17).ToArray(), 3), System.Globalization.NumberStyles.HexNumber).ToString();
oldList6.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(15).Take(17).ToArray(), 3), System.Globalization.NumberStyles.HexNumber).ToString();
oldList6.UpdatedTime = DateTime.Now;
oldList6.MainId = 6;
oldList6.ProductLineCode = "CX_01";
bfList.Add(oldList6);
//await _oldBoxFoamDataServices.UpdateAsync(oldList6);
}
else
{
BoxFoamData boxfoam6 = new BoxFoamData();
boxfoam6.Fixtureboxtype = fixtureboxtype6;
#region 状态
//byte[] result1 = obj2.plc.Read("Y10A", 1);
//byte[] result2 = obj2.plc.Read("Y10B", 1);
//byte[] result3 = obj2.plc.Read("Y115", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y10A");
bool status2 = obj.plc.ReadBool("Y10B");
bool status3 = obj.plc.ReadBool("Y115");
if (status2)
{
boxfoam6.Fixturestatus = 1;
}
else
{
boxfoam6.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam6.AnHour = num;
break;
case 2:
boxfoam6.TwoHour = num;
break;
case 3:
boxfoam6.ThreeHour = num;
break;
case 4:
boxfoam6.FourHour = num;
break;
case 5:
boxfoam6.FiveHour = num;
break;
case 6:
boxfoam6.SixHour = num;
break;
case 7:
boxfoam6.SevenHour = num;
break;
case 8:
boxfoam6.EightHour = num;
break;
case 9:
boxfoam6.NineHour = num;
break;
case 10:
boxfoam6.TenHour = num;
break;
case 11:
boxfoam6.ElevenHour = num;
break;
case 12:
boxfoam6.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam6.Production = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam6.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam6.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam6.UpdatedTime = DateTime.Now;
boxfoam6.MainId = 6;
boxfoam6.ProductLineCode = "CX_01";
addList.Add(boxfoam6);
//await _oldBoxFoamDataServices.AddAsync(boxfoam6);
}
if (bfList == null)
{
await _oldBoxFoamDataServices.UpdateAsync(oldList6);
}
if (addList == null)
{
await _oldBoxFoamDataServices.AddAsync(addList);
}
}
catch (Exception ex)
{
throw;
}
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
}
public async void GetData3()
{
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
try
{
List bfList = new List();
List addList = new List();
//var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2"));
//if (obj2 == null) { return; }
var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc3"));
if (obj == null) { return; }
byte[] arr1 = obj.plc.ReadByte("D3140", (ushort)48);
if (arr1 == null) return;
//var arr1 = ArrReverse(bt);
byte[] arr3 = obj.plc.ReadByte("D182", (ushort)24);
if (arr3 == null) return;
//var arr3 = ArrReverse(bt3);
byte[] arr4 = obj.plc.ReadByte("D910", (ushort)24);
if (arr4 == null) return;
//var arr4 = ArrReverse(bt4);
byte[] arr5 = obj.plc.ReadByte("T3", (ushort)24);
if (arr5 == null) return;
//var arr5 = ArrReverse(bt5);
string productLineCode = Appsettings.app("StationInfo", "ProductLineCode");
List fdList = _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == productLineCode).Result;
var fixtureboxtype1 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList1 = fdList.SingleOrDefault(d => d.Fixtureboxtype == fixtureboxtype1 && d.MainId == 1);
if (oldList1 != null)
{
//只更新小时数量
oldList1.Fixtureboxtype = fixtureboxtype1;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F0", 1);
//byte[] result2 = obj.plc.Read("Y0F1", 1);
//byte[] result3 = obj.plc.Read("Y110", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr(result1, result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr(result2, result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr(result3, result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F0");
bool status2 = obj.plc.ReadBool("Y0F1");
bool status3 = obj.plc.ReadBool("Y110");
if (status2)
{
oldList1.Fixturestatus = 1;
}
else
{
oldList1.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D182"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList1.AnHour = num - oldList1.AnHour;
break;
case 2:
oldList1.TwoHour = num - oldList1.TwoHour;
break;
case 3:
oldList1.ThreeHour = num - oldList1.ThreeHour;
break;
case 4:
oldList1.FourHour = num - oldList1.FourHour;
break;
case 5:
oldList1.FiveHour = num - oldList1.FiveHour;
break;
case 6:
oldList1.SixHour = num - oldList1.SixHour;
break;
case 7:
oldList1.SevenHour = num - oldList1.SevenHour;
break;
case 8:
oldList1.EightHour = num - oldList1.EightHour; ;
break;
case 9:
oldList1.NineHour = num - oldList1.NineHour;
break;
case 10:
oldList1.TenHour = num - oldList1.TenHour;
break;
case 11:
oldList1.ElevenHour = num - oldList1.ElevenHour;
break;
case 12:
oldList1.TwelveHour = num - oldList1.TwelveHour;
break;
default:
break;
}
#endregion
oldList1.Production = obj.plc.ReadInt16("D182");//short.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
oldList1.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList1.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList1.UpdatedTime = DateTime.Now;
oldList1.ProductLineCode = "CX_01";
oldList1.MainId = 1;
bfList.Add(oldList1);
//await _oldBoxFoamDataServices.UpdateAsync(oldList1);
}
else
{
BoxFoamData boxfoam1 = new BoxFoamData();
//新增
boxfoam1.Fixtureboxtype = fixtureboxtype1;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F0", 1);
//byte[] result2 = obj.plc.Read("Y0F1", 1);
//byte[] result3 = obj.plc.Read("Y110", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F0");
bool status2 = obj.plc.ReadBool("Y0F1");
bool status3 = obj.plc.ReadBool("Y110");
if (status2)
{
boxfoam1.Fixturestatus = 1;
}
else
{
boxfoam1.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D182"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam1.AnHour = num;
break;
case 2:
boxfoam1.TwoHour = num;
break;
case 3:
boxfoam1.ThreeHour = num;
break;
case 4:
boxfoam1.FourHour = num;
break;
case 5:
boxfoam1.FiveHour = num;
break;
case 6:
boxfoam1.SixHour = num;
break;
case 7:
boxfoam1.SevenHour = num;
break;
case 8:
boxfoam1.EightHour = num;
break;
case 9:
boxfoam1.NineHour = num;
break;
case 10:
boxfoam1.TenHour = num;
break;
case 11:
boxfoam1.ElevenHour = num;
break;
case 12:
boxfoam1.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam1.Production = obj.plc.ReadInt16("D182");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam1.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam1.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam1.UpdatedTime = DateTime.Now;
boxfoam1.ProductLineCode = "CX_01";
boxfoam1.MainId = 1;
addList.Add(boxfoam1);
//await _oldBoxFoamDataServices.AddAsync(boxfoam1);
}
var fixtureboxtype2 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList2 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype1 && d.MainId == 2);
if (oldList2 != null)
{
oldList2.Fixtureboxtype = fixtureboxtype2;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F5", 1);
//byte[] result2 = obj.plc.Read("Y0F6", 1);
//byte[] result3 = obj.plc.Read("Y111", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F5");
bool status2 = obj.plc.ReadBool("Y0F6");
bool status3 = obj.plc.ReadBool("Y111");
if (status2)
{
oldList2.Fixturestatus = 1;
}
else
{
oldList2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList2.AnHour = num - oldList2.AnHour;
break;
case 2:
oldList2.TwoHour = num - oldList2.TwoHour;
break;
case 3:
oldList2.ThreeHour = num - oldList2.ThreeHour;
break;
case 4:
oldList2.FourHour = num - oldList2.FourHour;
break;
case 5:
oldList2.FiveHour = num - oldList2.FiveHour;
break;
case 6:
oldList2.SixHour = num - oldList2.SixHour;
break;
case 7:
oldList2.SevenHour = num - oldList2.SevenHour;
break;
case 8:
oldList2.EightHour = num - oldList2.EightHour; ;
break;
case 9:
oldList2.NineHour = num - oldList2.NineHour;
break;
case 10:
oldList2.TenHour = num - oldList2.TenHour;
break;
case 11:
oldList2.ElevenHour = num - oldList2.ElevenHour;
break;
case 12:
oldList2.TwelveHour = num - oldList2.TwelveHour;
break;
default:
break;
}
#endregion
oldList2.Production = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
oldList2.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList2.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList2.UpdatedTime = DateTime.Now;
oldList2.ProductLineCode = "CX_01";
oldList2.MainId = 2;
bfList.Add(oldList2);
//await _oldBoxFoamDataServices.UpdateAsync(oldList2);
}
else
{
BoxFoamData boxfoam2 = new BoxFoamData();
boxfoam2.Fixtureboxtype = fixtureboxtype2;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F5", 1);
//byte[] result2 = obj.plc.Read("Y0F6", 1);
//byte[] result3 = obj.plc.Read("Y111", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F5");
bool status2 = obj.plc.ReadBool("Y0F6");
bool status3 = obj.plc.ReadBool("Y111");
if (status2)
{
boxfoam2.Fixturestatus = 1;
}
else
{
boxfoam2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D183");//int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam2.AnHour = num;
break;
case 2:
boxfoam2.TwoHour = num;
break;
case 3:
boxfoam2.ThreeHour = num;
break;
case 4:
boxfoam2.FourHour = num;
break;
case 5:
boxfoam2.FiveHour = num;
break;
case 6:
boxfoam2.SixHour = num;
break;
case 7:
boxfoam2.SevenHour = num;
break;
case 8:
boxfoam2.EightHour = num;
break;
case 9:
boxfoam2.NineHour = num;
break;
case 10:
boxfoam2.TenHour = num;
break;
case 11:
boxfoam2.ElevenHour = num;
break;
case 12:
boxfoam2.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam2.Production = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
boxfoam2.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam2.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam2.UpdatedTime = DateTime.Now;
boxfoam2.MainId = 2;
boxfoam2.ProductLineCode = "CX_01";
addList.Add(boxfoam2);
//await _oldBoxFoamDataServices.AddAsync(boxfoam2);
}
var fixtureboxtype3 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(8).Take(9).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList3 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype3 && d.MainId == 3);
if (oldList3 != null)
{
oldList3.Fixtureboxtype = fixtureboxtype3;
#region 状态
//byte[] result1 = obj.plc.Read("Y0FA", 1);
//byte[] result2 = obj.plc.Read("Y0FB", 1);
//byte[] result3 = obj.plc.Read("Y112", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0FA");
bool status2 = obj.plc.ReadBool("Y0FB");
bool status3 = obj.plc.ReadBool("Y112");
if (status2)
{
oldList2.Fixturestatus = 1;
}
else
{
oldList2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList3.AnHour = num - oldList3.AnHour;
break;
case 2:
oldList3.TwoHour = num - oldList3.TwoHour;
break;
case 3:
oldList3.ThreeHour = num - oldList3.ThreeHour;
break;
case 4:
oldList3.FourHour = num - oldList3.FourHour;
break;
case 5:
oldList3.FiveHour = num - oldList3.FiveHour;
break;
case 6:
oldList3.SixHour = num - oldList3.SixHour;
break;
case 7:
oldList3.SevenHour = num - oldList3.SevenHour;
break;
case 8:
oldList3.EightHour = num - oldList3.EightHour; ;
break;
case 9:
oldList3.NineHour = num - oldList3.NineHour;
break;
case 10:
oldList3.TenHour = num - oldList3.TenHour;
break;
case 11:
oldList3.ElevenHour = num - oldList3.ElevenHour;
break;
case 12:
oldList3.TwelveHour = num - oldList3.TwelveHour;
break;
default:
break;
}
#endregion
oldList3.Production = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
oldList3.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList3.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(6).Take(8).ToArray(), 1), System.Globalization.NumberStyles.HexNumber).ToString();
oldList3.UpdatedTime = DateTime.Now;
oldList3.MainId = 3;
oldList3.ProductLineCode = "CX_01";
bfList.Add(oldList3);
//await _oldBoxFoamDataServices.UpdateAsync(oldList3);
}
else
{
BoxFoamData boxfoam3 = new BoxFoamData();
boxfoam3.Fixtureboxtype = fixtureboxtype3;
#region 状态
//byte[] result1 = obj.plc.Read("Y0FA", 1);
//byte[] result2 = obj.plc.Read("Y0FB", 1);
//byte[] result3 = obj.plc.Read("Y112", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0FA");
bool status2 = obj.plc.ReadBool("Y0FB");
bool status3 = obj.plc.ReadBool("Y112");
if (status2)
{
boxfoam3.Fixturestatus = 1;
}
else
{
boxfoam3.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam3.AnHour = num;
break;
case 2:
boxfoam3.TwoHour = num;
break;
case 3:
boxfoam3.ThreeHour = num;
break;
case 4:
boxfoam3.FourHour = num;
break;
case 5:
boxfoam3.FiveHour = num;
break;
case 6:
boxfoam3.SixHour = num;
break;
case 7:
boxfoam3.SevenHour = num;
break;
case 8:
boxfoam3.EightHour = num;
break;
case 9:
boxfoam3.NineHour = num;
break;
case 10:
boxfoam3.TenHour = num;
break;
case 11:
boxfoam3.ElevenHour = num;
break;
case 12:
boxfoam3.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam3.Production = obj.plc.ReadInt16("D184");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
boxfoam3.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam3.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam3.UpdatedTime = DateTime.Now;
boxfoam3.MainId = 3;
boxfoam3.ProductLineCode = "CX_01";
addList.Add(boxfoam3);
//await _oldBoxFoamDataServices.AddAsync(boxfoam3);
}
var fixtureboxtype4 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(12).Take(13).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList4 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype4 && d.MainId == 4);
if (oldList4 != null)
{
oldList4.Fixtureboxtype = fixtureboxtype4;
#region 状态
//byte[] result1 = obj2.plc.Read("Y100", 1);
//byte[] result2 = obj2.plc.Read("Y101", 1);
//byte[] result3 = obj2.plc.Read("Y113", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
oldList4.Fixturestatus = 1;
}
else
{
oldList4.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D185"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList4.AnHour = num - oldList4.AnHour;
break;
case 2:
oldList4.TwoHour = num - oldList4.TwoHour;
break;
case 3:
oldList4.ThreeHour = num - oldList4.ThreeHour;
break;
case 4:
oldList4.FourHour = num - oldList4.FourHour;
break;
case 5:
oldList4.FiveHour = num - oldList4.FiveHour;
break;
case 6:
oldList4.SixHour = num - oldList4.SixHour;
break;
case 7:
oldList4.SevenHour = num - oldList4.SevenHour;
break;
case 8:
oldList4.EightHour = num - oldList4.EightHour; ;
break;
case 9:
oldList4.NineHour = num - oldList4.NineHour;
break;
case 10:
oldList4.TenHour = num - oldList4.TenHour;
break;
case 11:
oldList4.ElevenHour = num - oldList4.ElevenHour;
break;
case 12:
oldList4.TwelveHour = num - oldList4.TwelveHour;
break;
default:
break;
}
#endregion
oldList4.Production = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
oldList4.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList4.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(9).Take(12).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList4.UpdatedTime = DateTime.Now;
oldList4.MainId = 4;
oldList4.ProductLineCode = "CX_01";
bfList.Add(oldList4);
//await _oldBoxFoamDataServices.UpdateAsync(oldList4);
}
else
{
BoxFoamData boxfoam4 = new BoxFoamData();
boxfoam4.Fixtureboxtype = fixtureboxtype4;
#region 状态
//byte[] result1 = obj2.plc.Read("Y100", 1);
//byte[] result2 = obj2.plc.Read("Y101", 1);
//byte[] result3 = obj2.plc.Read("Y113", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
boxfoam4.Fixturestatus = 1;
}
else
{
boxfoam4.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam4.AnHour = num;
break;
case 2:
boxfoam4.TwoHour = num;
break;
case 3:
boxfoam4.ThreeHour = num;
break;
case 4:
boxfoam4.FourHour = num;
break;
case 5:
boxfoam4.FiveHour = num;
break;
case 6:
boxfoam4.SixHour = num;
break;
case 7:
boxfoam4.SevenHour = num;
break;
case 8:
boxfoam4.EightHour = num;
break;
case 9:
boxfoam4.NineHour = num;
break;
case 10:
boxfoam4.TenHour = num;
break;
case 11:
boxfoam4.ElevenHour = num;
break;
case 12:
boxfoam4.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam4.Production = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam4.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam4.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam4.UpdatedTime = DateTime.Now;
boxfoam4.MainId = 4;
boxfoam4.ProductLineCode = "CX_01";
addList.Add(boxfoam4);
//await _oldBoxFoamDataServices.AddAsync(boxfoam4);
}
var fixtureboxtype5 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(16).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList5 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype5 && d.MainId == 5);
if (oldList5 != null)
{
oldList5.Fixtureboxtype = fixtureboxtype5;
#region 状态
//byte[] result1 = obj2.plc.Read("Y105", 1);
//byte[] result2 = obj2.plc.Read("Y106", 1);
//byte[] result3 = obj2.plc.Read("Y114", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
oldList5.Fixturestatus = 1;
}
else
{
oldList5.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList5.AnHour = num - oldList5.AnHour;
break;
case 2:
oldList5.TwoHour = num - oldList5.TwoHour;
break;
case 3:
oldList5.ThreeHour = num - oldList5.ThreeHour;
break;
case 4:
oldList5.FourHour = num - oldList5.FourHour;
break;
case 5:
oldList5.FiveHour = num - oldList5.FiveHour;
break;
case 6:
oldList5.SixHour = num - oldList5.SixHour;
break;
case 7:
oldList5.SevenHour = num - oldList5.SevenHour;
break;
case 8:
oldList5.EightHour = num - oldList5.EightHour; ;
break;
case 9:
oldList5.NineHour = num - oldList5.NineHour;
break;
case 10:
oldList5.TenHour = num - oldList5.TenHour;
break;
case 11:
oldList5.ElevenHour = num - oldList5.ElevenHour;
break;
case 12:
oldList5.TwelveHour = num - oldList5.TwelveHour;
break;
default:
break;
}
#endregion
oldList5.Production = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
oldList5.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList5.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList5.UpdatedTime = DateTime.Now;
oldList5.MainId = 5;
oldList5.ProductLineCode = "CX_01";
bfList.Add(oldList5);
//await _oldBoxFoamDataServices.UpdateAsync(oldList5);
}
else
{
BoxFoamData boxfoam5 = new BoxFoamData();
boxfoam5.Fixtureboxtype = fixtureboxtype5;
#region 状态
//byte[] result1 = obj2.plc.Read("Y105", 1);
//byte[] result2 = obj2.plc.Read("Y106", 1);
//byte[] result3 = obj2.plc.Read("Y114", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
boxfoam5.Fixturestatus = 1;
}
else
{
boxfoam5.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam5.AnHour = num;
break;
case 2:
boxfoam5.TwoHour = num;
break;
case 3:
boxfoam5.ThreeHour = num;
break;
case 4:
boxfoam5.FourHour = num;
break;
case 5:
boxfoam5.FiveHour = num;
break;
case 6:
boxfoam5.SixHour = num;
break;
case 7:
boxfoam5.SevenHour = num;
break;
case 8:
boxfoam5.EightHour = num;
break;
case 9:
boxfoam5.NineHour = num;
break;
case 10:
boxfoam5.TenHour = num;
break;
case 11:
boxfoam5.ElevenHour = num;
break;
case 12:
boxfoam5.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam5.Production = obj.plc.ReadInt16("D186"); int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam5.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam5.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam5.UpdatedTime = DateTime.Now;
boxfoam5.MainId = 5;
boxfoam5.ProductLineCode = "CX_01";
addList.Add(boxfoam5);
//await _oldBoxFoamDataServices.AddAsync(boxfoam5);
}
var fixtureboxtype6 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(20).Take(21).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList6 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype6 && d.MainId == 6);
if (oldList6 != null)
{
oldList6.Fixtureboxtype = fixtureboxtype6;
#region 状态
//byte[] result1 = obj2.plc.Read("Y10A", 1);
//byte[] result2 = obj2.plc.Read("Y10B", 1);
//byte[] result3 = obj2.plc.Read("Y115", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y10A");
bool status2 = obj.plc.ReadBool("Y10B");
bool status3 = obj.plc.ReadBool("Y115");
if (status2)
{
oldList6.Fixturestatus = 1;
}
else
{
oldList6.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList6.AnHour = num - oldList6.AnHour;
break;
case 2:
oldList6.TwoHour = num - oldList6.TwoHour;
break;
case 3:
oldList6.ThreeHour = num - oldList6.ThreeHour;
break;
case 4:
oldList6.FourHour = num - oldList6.FourHour;
break;
case 5:
oldList6.FiveHour = num - oldList6.FiveHour;
break;
case 6:
oldList6.SixHour = num - oldList6.SixHour;
break;
case 7:
oldList6.SevenHour = num - oldList6.SevenHour;
break;
case 8:
oldList6.EightHour = num - oldList6.EightHour; ;
break;
case 9:
oldList6.NineHour = num - oldList6.NineHour;
break;
case 10:
oldList6.TenHour = num - oldList6.TenHour;
break;
case 11:
oldList6.ElevenHour = num - oldList6.ElevenHour;
break;
case 12:
oldList6.TwelveHour = num - oldList6.TwelveHour;
break;
default:
break;
}
#endregion
oldList6.Production = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
oldList6.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(15).Take(17).ToArray(), 3), System.Globalization.NumberStyles.HexNumber).ToString();
oldList6.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(15).Take(17).ToArray(), 3), System.Globalization.NumberStyles.HexNumber).ToString();
oldList6.UpdatedTime = DateTime.Now;
oldList6.MainId = 6;
oldList6.ProductLineCode = "CX_01";
bfList.Add(oldList6);
//await _oldBoxFoamDataServices.UpdateAsync(oldList6);
}
else
{
BoxFoamData boxfoam6 = new BoxFoamData();
boxfoam6.Fixtureboxtype = fixtureboxtype6;
#region 状态
//byte[] result1 = obj2.plc.Read("Y10A", 1);
//byte[] result2 = obj2.plc.Read("Y10B", 1);
//byte[] result3 = obj2.plc.Read("Y115", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y10A");
bool status2 = obj.plc.ReadBool("Y10B");
bool status3 = obj.plc.ReadBool("Y115");
if (status2)
{
boxfoam6.Fixturestatus = 1;
}
else
{
boxfoam6.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam6.AnHour = num;
break;
case 2:
boxfoam6.TwoHour = num;
break;
case 3:
boxfoam6.ThreeHour = num;
break;
case 4:
boxfoam6.FourHour = num;
break;
case 5:
boxfoam6.FiveHour = num;
break;
case 6:
boxfoam6.SixHour = num;
break;
case 7:
boxfoam6.SevenHour = num;
break;
case 8:
boxfoam6.EightHour = num;
break;
case 9:
boxfoam6.NineHour = num;
break;
case 10:
boxfoam6.TenHour = num;
break;
case 11:
boxfoam6.ElevenHour = num;
break;
case 12:
boxfoam6.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam6.Production = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam6.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam6.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam6.UpdatedTime = DateTime.Now;
boxfoam6.MainId = 6;
boxfoam6.ProductLineCode = "CX_01";
addList.Add(boxfoam6);
//await _oldBoxFoamDataServices.AddAsync(boxfoam6);
}
if (bfList == null)
{
await _oldBoxFoamDataServices.UpdateAsync(oldList6);
}
if (addList == null)
{
await _oldBoxFoamDataServices.AddAsync(addList);
}
}
catch (Exception ex)
{
throw;
}
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
}
public async void GetData4()
{
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
try
{
List bfList = new List();
List addList = new List();
//var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2"));
//if (obj2 == null) { return; }
var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc4"));
if (obj == null) { return; }
byte[] arr1 = obj.plc.ReadByte("D3140", (ushort)48);
if (arr1 == null) return;
//var arr1 = ArrReverse(bt);
byte[] arr3 = obj.plc.ReadByte("D182", (ushort)24);
if (arr3 == null) return;
//var arr3 = ArrReverse(bt3);
byte[] arr4 = obj.plc.ReadByte("D910", (ushort)24);
if (arr4 == null) return;
//var arr4 = ArrReverse(bt4);
byte[] arr5 = obj.plc.ReadByte("T3", (ushort)24);
if (arr5 == null) return;
//var arr5 = ArrReverse(bt5);
string productLineCode = Appsettings.app("StationInfo", "ProductLineCode");
List fdList = _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == productLineCode).Result;
var fixtureboxtype1 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList1 = fdList.SingleOrDefault(d => d.Fixtureboxtype == fixtureboxtype1 && d.MainId == 1);
if (oldList1 != null)
{
//只更新小时数量
oldList1.Fixtureboxtype = fixtureboxtype1;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F0", 1);
//byte[] result2 = obj.plc.Read("Y0F1", 1);
//byte[] result3 = obj.plc.Read("Y110", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr(result1, result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr(result2, result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr(result3, result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F0");
bool status2 = obj.plc.ReadBool("Y0F1");
bool status3 = obj.plc.ReadBool("Y110");
if (status2)
{
oldList1.Fixturestatus = 1;
}
else
{
oldList1.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D182"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList1.AnHour = num - oldList1.AnHour;
break;
case 2:
oldList1.TwoHour = num - oldList1.TwoHour;
break;
case 3:
oldList1.ThreeHour = num - oldList1.ThreeHour;
break;
case 4:
oldList1.FourHour = num - oldList1.FourHour;
break;
case 5:
oldList1.FiveHour = num - oldList1.FiveHour;
break;
case 6:
oldList1.SixHour = num - oldList1.SixHour;
break;
case 7:
oldList1.SevenHour = num - oldList1.SevenHour;
break;
case 8:
oldList1.EightHour = num - oldList1.EightHour; ;
break;
case 9:
oldList1.NineHour = num - oldList1.NineHour;
break;
case 10:
oldList1.TenHour = num - oldList1.TenHour;
break;
case 11:
oldList1.ElevenHour = num - oldList1.ElevenHour;
break;
case 12:
oldList1.TwelveHour = num - oldList1.TwelveHour;
break;
default:
break;
}
#endregion
oldList1.Production = obj.plc.ReadInt16("D182");//short.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
oldList1.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList1.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList1.UpdatedTime = DateTime.Now;
oldList1.ProductLineCode = "CX_01";
oldList1.MainId = 1;
bfList.Add(oldList1);
//await _oldBoxFoamDataServices.UpdateAsync(oldList1);
}
else
{
BoxFoamData boxfoam1 = new BoxFoamData();
//新增
boxfoam1.Fixtureboxtype = fixtureboxtype1;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F0", 1);
//byte[] result2 = obj.plc.Read("Y0F1", 1);
//byte[] result3 = obj.plc.Read("Y110", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F0");
bool status2 = obj.plc.ReadBool("Y0F1");
bool status3 = obj.plc.ReadBool("Y110");
if (status2)
{
boxfoam1.Fixturestatus = 1;
}
else
{
boxfoam1.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D182"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam1.AnHour = num;
break;
case 2:
boxfoam1.TwoHour = num;
break;
case 3:
boxfoam1.ThreeHour = num;
break;
case 4:
boxfoam1.FourHour = num;
break;
case 5:
boxfoam1.FiveHour = num;
break;
case 6:
boxfoam1.SixHour = num;
break;
case 7:
boxfoam1.SevenHour = num;
break;
case 8:
boxfoam1.EightHour = num;
break;
case 9:
boxfoam1.NineHour = num;
break;
case 10:
boxfoam1.TenHour = num;
break;
case 11:
boxfoam1.ElevenHour = num;
break;
case 12:
boxfoam1.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam1.Production = obj.plc.ReadInt16("D182");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam1.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam1.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam1.UpdatedTime = DateTime.Now;
boxfoam1.ProductLineCode = "CX_01";
boxfoam1.MainId = 1;
addList.Add(boxfoam1);
//await _oldBoxFoamDataServices.AddAsync(boxfoam1);
}
var fixtureboxtype2 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(4).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList2 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype1 && d.MainId == 2);
if (oldList2 != null)
{
oldList2.Fixtureboxtype = fixtureboxtype2;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F5", 1);
//byte[] result2 = obj.plc.Read("Y0F6", 1);
//byte[] result3 = obj.plc.Read("Y111", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F5");
bool status2 = obj.plc.ReadBool("Y0F6");
bool status3 = obj.plc.ReadBool("Y111");
if (status2)
{
oldList2.Fixturestatus = 1;
}
else
{
oldList2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList2.AnHour = num - oldList2.AnHour;
break;
case 2:
oldList2.TwoHour = num - oldList2.TwoHour;
break;
case 3:
oldList2.ThreeHour = num - oldList2.ThreeHour;
break;
case 4:
oldList2.FourHour = num - oldList2.FourHour;
break;
case 5:
oldList2.FiveHour = num - oldList2.FiveHour;
break;
case 6:
oldList2.SixHour = num - oldList2.SixHour;
break;
case 7:
oldList2.SevenHour = num - oldList2.SevenHour;
break;
case 8:
oldList2.EightHour = num - oldList2.EightHour; ;
break;
case 9:
oldList2.NineHour = num - oldList2.NineHour;
break;
case 10:
oldList2.TenHour = num - oldList2.TenHour;
break;
case 11:
oldList2.ElevenHour = num - oldList2.ElevenHour;
break;
case 12:
oldList2.TwelveHour = num - oldList2.TwelveHour;
break;
default:
break;
}
#endregion
oldList2.Production = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
oldList2.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList2.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList2.UpdatedTime = DateTime.Now;
oldList2.ProductLineCode = "CX_01";
oldList2.MainId = 2;
bfList.Add(oldList2);
//await _oldBoxFoamDataServices.UpdateAsync(oldList2);
}
else
{
BoxFoamData boxfoam2 = new BoxFoamData();
boxfoam2.Fixtureboxtype = fixtureboxtype2;
#region 状态
//byte[] result1 = obj.plc.Read("Y0F5", 1);
//byte[] result2 = obj.plc.Read("Y0F6", 1);
//byte[] result3 = obj.plc.Read("Y111", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0F5");
bool status2 = obj.plc.ReadBool("Y0F6");
bool status3 = obj.plc.ReadBool("Y111");
if (status2)
{
boxfoam2.Fixturestatus = 1;
}
else
{
boxfoam2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D183");//int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam2.AnHour = num;
break;
case 2:
boxfoam2.TwoHour = num;
break;
case 3:
boxfoam2.ThreeHour = num;
break;
case 4:
boxfoam2.FourHour = num;
break;
case 5:
boxfoam2.FiveHour = num;
break;
case 6:
boxfoam2.SixHour = num;
break;
case 7:
boxfoam2.SevenHour = num;
break;
case 8:
boxfoam2.EightHour = num;
break;
case 9:
boxfoam2.NineHour = num;
break;
case 10:
boxfoam2.TenHour = num;
break;
case 11:
boxfoam2.ElevenHour = num;
break;
case 12:
boxfoam2.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam2.Production = obj.plc.ReadInt16("D183"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
boxfoam2.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam2.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(3).Take(5).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam2.UpdatedTime = DateTime.Now;
boxfoam2.MainId = 2;
boxfoam2.ProductLineCode = "CX_01";
addList.Add(boxfoam2);
//await _oldBoxFoamDataServices.AddAsync(boxfoam2);
}
var fixtureboxtype3 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(8).Take(9).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList3 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype3 && d.MainId == 3);
if (oldList3 != null)
{
oldList3.Fixtureboxtype = fixtureboxtype3;
#region 状态
//byte[] result1 = obj.plc.Read("Y0FA", 1);
//byte[] result2 = obj.plc.Read("Y0FB", 1);
//byte[] result3 = obj.plc.Read("Y112", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0FA");
bool status2 = obj.plc.ReadBool("Y0FB");
bool status3 = obj.plc.ReadBool("Y112");
if (status2)
{
oldList2.Fixturestatus = 1;
}
else
{
oldList2.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList3.AnHour = num - oldList3.AnHour;
break;
case 2:
oldList3.TwoHour = num - oldList3.TwoHour;
break;
case 3:
oldList3.ThreeHour = num - oldList3.ThreeHour;
break;
case 4:
oldList3.FourHour = num - oldList3.FourHour;
break;
case 5:
oldList3.FiveHour = num - oldList3.FiveHour;
break;
case 6:
oldList3.SixHour = num - oldList3.SixHour;
break;
case 7:
oldList3.SevenHour = num - oldList3.SevenHour;
break;
case 8:
oldList3.EightHour = num - oldList3.EightHour; ;
break;
case 9:
oldList3.NineHour = num - oldList3.NineHour;
break;
case 10:
oldList3.TenHour = num - oldList3.TenHour;
break;
case 11:
oldList3.ElevenHour = num - oldList3.ElevenHour;
break;
case 12:
oldList3.TwelveHour = num - oldList3.TwelveHour;
break;
default:
break;
}
#endregion
oldList3.Production = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
oldList3.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList3.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(6).Take(8).ToArray(), 1), System.Globalization.NumberStyles.HexNumber).ToString();
oldList3.UpdatedTime = DateTime.Now;
oldList3.MainId = 3;
oldList3.ProductLineCode = "CX_01";
bfList.Add(oldList3);
//await _oldBoxFoamDataServices.UpdateAsync(oldList3);
}
else
{
BoxFoamData boxfoam3 = new BoxFoamData();
boxfoam3.Fixtureboxtype = fixtureboxtype3;
#region 状态
//byte[] result1 = obj.plc.Read("Y0FA", 1);
//byte[] result2 = obj.plc.Read("Y0FB", 1);
//byte[] result3 = obj.plc.Read("Y112", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y0FA");
bool status2 = obj.plc.ReadBool("Y0FB");
bool status3 = obj.plc.ReadBool("Y112");
if (status2)
{
boxfoam3.Fixturestatus = 1;
}
else
{
boxfoam3.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D184"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam3.AnHour = num;
break;
case 2:
boxfoam3.TwoHour = num;
break;
case 3:
boxfoam3.ThreeHour = num;
break;
case 4:
boxfoam3.FourHour = num;
break;
case 5:
boxfoam3.FiveHour = num;
break;
case 6:
boxfoam3.SixHour = num;
break;
case 7:
boxfoam3.SevenHour = num;
break;
case 8:
boxfoam3.EightHour = num;
break;
case 9:
boxfoam3.NineHour = num;
break;
case 10:
boxfoam3.TenHour = num;
break;
case 11:
boxfoam3.ElevenHour = num;
break;
case 12:
boxfoam3.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam3.Production = obj.plc.ReadInt16("D184");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
boxfoam3.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam3.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(6).Take(8).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam3.UpdatedTime = DateTime.Now;
boxfoam3.MainId = 3;
boxfoam3.ProductLineCode = "CX_01";
addList.Add(boxfoam3);
//await _oldBoxFoamDataServices.AddAsync(boxfoam3);
}
var fixtureboxtype4 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(12).Take(13).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList4 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype4 && d.MainId == 4);
if (oldList4 != null)
{
oldList4.Fixtureboxtype = fixtureboxtype4;
#region 状态
//byte[] result1 = obj2.plc.Read("Y100", 1);
//byte[] result2 = obj2.plc.Read("Y101", 1);
//byte[] result3 = obj2.plc.Read("Y113", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
oldList4.Fixturestatus = 1;
}
else
{
oldList4.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D185"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList4.AnHour = num - oldList4.AnHour;
break;
case 2:
oldList4.TwoHour = num - oldList4.TwoHour;
break;
case 3:
oldList4.ThreeHour = num - oldList4.ThreeHour;
break;
case 4:
oldList4.FourHour = num - oldList4.FourHour;
break;
case 5:
oldList4.FiveHour = num - oldList4.FiveHour;
break;
case 6:
oldList4.SixHour = num - oldList4.SixHour;
break;
case 7:
oldList4.SevenHour = num - oldList4.SevenHour;
break;
case 8:
oldList4.EightHour = num - oldList4.EightHour; ;
break;
case 9:
oldList4.NineHour = num - oldList4.NineHour;
break;
case 10:
oldList4.TenHour = num - oldList4.TenHour;
break;
case 11:
oldList4.ElevenHour = num - oldList4.ElevenHour;
break;
case 12:
oldList4.TwelveHour = num - oldList4.TwelveHour;
break;
default:
break;
}
#endregion
oldList4.Production = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
oldList4.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList4.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(9).Take(12).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList4.UpdatedTime = DateTime.Now;
oldList4.MainId = 4;
oldList4.ProductLineCode = "CX_01";
bfList.Add(oldList4);
//await _oldBoxFoamDataServices.UpdateAsync(oldList4);
}
else
{
BoxFoamData boxfoam4 = new BoxFoamData();
boxfoam4.Fixtureboxtype = fixtureboxtype4;
#region 状态
//byte[] result1 = obj2.plc.Read("Y100", 1);
//byte[] result2 = obj2.plc.Read("Y101", 1);
//byte[] result3 = obj2.plc.Read("Y113", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
boxfoam4.Fixturestatus = 1;
}
else
{
boxfoam4.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam4.AnHour = num;
break;
case 2:
boxfoam4.TwoHour = num;
break;
case 3:
boxfoam4.ThreeHour = num;
break;
case 4:
boxfoam4.FourHour = num;
break;
case 5:
boxfoam4.FiveHour = num;
break;
case 6:
boxfoam4.SixHour = num;
break;
case 7:
boxfoam4.SevenHour = num;
break;
case 8:
boxfoam4.EightHour = num;
break;
case 9:
boxfoam4.NineHour = num;
break;
case 10:
boxfoam4.TenHour = num;
break;
case 11:
boxfoam4.ElevenHour = num;
break;
case 12:
boxfoam4.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam4.Production = obj.plc.ReadInt16("D185");// int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam4.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam4.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(9).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam4.UpdatedTime = DateTime.Now;
boxfoam4.MainId = 4;
boxfoam4.ProductLineCode = "CX_01";
addList.Add(boxfoam4);
//await _oldBoxFoamDataServices.AddAsync(boxfoam4);
}
var fixtureboxtype5 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(16).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList5 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype5 && d.MainId == 5);
if (oldList5 != null)
{
oldList5.Fixtureboxtype = fixtureboxtype5;
#region 状态
//byte[] result1 = obj2.plc.Read("Y105", 1);
//byte[] result2 = obj2.plc.Read("Y106", 1);
//byte[] result3 = obj2.plc.Read("Y114", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
oldList5.Fixturestatus = 1;
}
else
{
oldList5.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(),1), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList5.AnHour = num - oldList5.AnHour;
break;
case 2:
oldList5.TwoHour = num - oldList5.TwoHour;
break;
case 3:
oldList5.ThreeHour = num - oldList5.ThreeHour;
break;
case 4:
oldList5.FourHour = num - oldList5.FourHour;
break;
case 5:
oldList5.FiveHour = num - oldList5.FiveHour;
break;
case 6:
oldList5.SixHour = num - oldList5.SixHour;
break;
case 7:
oldList5.SevenHour = num - oldList5.SevenHour;
break;
case 8:
oldList5.EightHour = num - oldList5.EightHour; ;
break;
case 9:
oldList5.NineHour = num - oldList5.NineHour;
break;
case 10:
oldList5.TenHour = num - oldList5.TenHour;
break;
case 11:
oldList5.ElevenHour = num - oldList5.ElevenHour;
break;
case 12:
oldList5.TwelveHour = num - oldList5.TwelveHour;
break;
default:
break;
}
#endregion
oldList5.Production = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(), 1), System.Globalization.NumberStyles.HexNumber);
oldList5.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList5.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
oldList5.UpdatedTime = DateTime.Now;
oldList5.MainId = 5;
oldList5.ProductLineCode = "CX_01";
bfList.Add(oldList5);
//await _oldBoxFoamDataServices.UpdateAsync(oldList5);
}
else
{
BoxFoamData boxfoam5 = new BoxFoamData();
boxfoam5.Fixtureboxtype = fixtureboxtype5;
#region 状态
//byte[] result1 = obj2.plc.Read("Y105", 1);
//byte[] result2 = obj2.plc.Read("Y106", 1);
//byte[] result3 = obj2.plc.Read("Y114", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y100");
bool status2 = obj.plc.ReadBool("Y101");
bool status3 = obj.plc.ReadBool("Y113");
if (status2)
{
boxfoam5.Fixturestatus = 1;
}
else
{
boxfoam5.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D186"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam5.AnHour = num;
break;
case 2:
boxfoam5.TwoHour = num;
break;
case 3:
boxfoam5.ThreeHour = num;
break;
case 4:
boxfoam5.FourHour = num;
break;
case 5:
boxfoam5.FiveHour = num;
break;
case 6:
boxfoam5.SixHour = num;
break;
case 7:
boxfoam5.SevenHour = num;
break;
case 8:
boxfoam5.EightHour = num;
break;
case 9:
boxfoam5.NineHour = num;
break;
case 10:
boxfoam5.TenHour = num;
break;
case 11:
boxfoam5.ElevenHour = num;
break;
case 12:
boxfoam5.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam5.Production = obj.plc.ReadInt16("D186"); int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam5.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam5.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam5.UpdatedTime = DateTime.Now;
boxfoam5.MainId = 5;
boxfoam5.ProductLineCode = "CX_01";
addList.Add(boxfoam5);
//await _oldBoxFoamDataServices.AddAsync(boxfoam5);
}
var fixtureboxtype6 = short.Parse(UnicodeHelper.BytesToHexStr(arr1.Skip(20).Take(21).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
var oldList6 = fdList.FirstOrDefault(d => d.Fixtureboxtype == fixtureboxtype6 && d.MainId == 6);
if (oldList6 != null)
{
oldList6.Fixtureboxtype = fixtureboxtype6;
#region 状态
//byte[] result1 = obj2.plc.Read("Y10A", 1);
//byte[] result2 = obj2.plc.Read("Y10B", 1);
//byte[] result3 = obj2.plc.Read("Y115", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y10A");
bool status2 = obj.plc.ReadBool("Y10B");
bool status3 = obj.plc.ReadBool("Y115");
if (status2)
{
oldList6.Fixturestatus = 1;
}
else
{
oldList6.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(),2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
oldList6.AnHour = num - oldList6.AnHour;
break;
case 2:
oldList6.TwoHour = num - oldList6.TwoHour;
break;
case 3:
oldList6.ThreeHour = num - oldList6.ThreeHour;
break;
case 4:
oldList6.FourHour = num - oldList6.FourHour;
break;
case 5:
oldList6.FiveHour = num - oldList6.FiveHour;
break;
case 6:
oldList6.SixHour = num - oldList6.SixHour;
break;
case 7:
oldList6.SevenHour = num - oldList6.SevenHour;
break;
case 8:
oldList6.EightHour = num - oldList6.EightHour; ;
break;
case 9:
oldList6.NineHour = num - oldList6.NineHour;
break;
case 10:
oldList6.TenHour = num - oldList6.TenHour;
break;
case 11:
oldList6.ElevenHour = num - oldList6.ElevenHour;
break;
case 12:
oldList6.TwelveHour = num - oldList6.TwelveHour;
break;
default:
break;
}
#endregion
oldList6.Production = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
oldList6.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(15).Take(17).ToArray(), 3), System.Globalization.NumberStyles.HexNumber).ToString();
oldList6.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(15).Take(17).ToArray(), 3), System.Globalization.NumberStyles.HexNumber).ToString();
oldList6.UpdatedTime = DateTime.Now;
oldList6.MainId = 6;
oldList6.ProductLineCode = "CX_01";
bfList.Add(oldList6);
//await _oldBoxFoamDataServices.UpdateAsync(oldList6);
}
else
{
BoxFoamData boxfoam6 = new BoxFoamData();
boxfoam6.Fixtureboxtype = fixtureboxtype6;
#region 状态
//byte[] result1 = obj2.plc.Read("Y10A", 1);
//byte[] result2 = obj2.plc.Read("Y10B", 1);
//byte[] result3 = obj2.plc.Read("Y115", 1);
//int status1 = int.Parse(UnicodeHelper.BytesToHexStr((result1), result1.Length), System.Globalization.NumberStyles.HexNumber);
//int status2 = int.Parse(UnicodeHelper.BytesToHexStr((result2), result2.Length), System.Globalization.NumberStyles.HexNumber);
//int status3 = int.Parse(UnicodeHelper.BytesToHexStr((result3), result3.Length), System.Globalization.NumberStyles.HexNumber);
bool status1 = obj.plc.ReadBool("Y10A");
bool status2 = obj.plc.ReadBool("Y10B");
bool status3 = obj.plc.ReadBool("Y115");
if (status2)
{
boxfoam6.Fixturestatus = 1;
}
else
{
boxfoam6.Fixturestatus = 0;
}
#endregion
#region 计算每小时产量
int num = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
switch (GetTeamHour())
{
case 1:
boxfoam6.AnHour = num;
break;
case 2:
boxfoam6.TwoHour = num;
break;
case 3:
boxfoam6.ThreeHour = num;
break;
case 4:
boxfoam6.FourHour = num;
break;
case 5:
boxfoam6.FiveHour = num;
break;
case 6:
boxfoam6.SixHour = num;
break;
case 7:
boxfoam6.SevenHour = num;
break;
case 8:
boxfoam6.EightHour = num;
break;
case 9:
boxfoam6.NineHour = num;
break;
case 10:
boxfoam6.TenHour = num;
break;
case 11:
boxfoam6.ElevenHour = num;
break;
case 12:
boxfoam6.TwelveHour = num;
break;
default:
break;
}
#endregion
boxfoam6.Production = obj.plc.ReadInt16("D187"); //int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber);
boxfoam6.CuringTimeSettingValue = short.Parse(UnicodeHelper.BytesToHexStr(arr4.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam6.ActualValue = short.Parse(UnicodeHelper.BytesToHexStr(arr5.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber).ToString();
boxfoam6.UpdatedTime = DateTime.Now;
boxfoam6.MainId = 6;
boxfoam6.ProductLineCode = "CX_01";
addList.Add(boxfoam6);
//await _oldBoxFoamDataServices.AddAsync(boxfoam6);
}
if (bfList == null)
{
await _oldBoxFoamDataServices.UpdateAsync(oldList6);
}
if (addList == null)
{
await _oldBoxFoamDataServices.AddAsync(addList);
}
}
catch (Exception ex)
{
throw;
}
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
}
public int GetTeamHour()
{
DateTime now = DateTime.Now;
var obj = _sysUserInfoServices.GetTeamData(now).Result;
return obj.Seq;
}
}
}