diff --git a/Admin.Core.Api/Admin.Core.Model.xml b/Admin.Core.Api/Admin.Core.Model.xml index 59aaf9de..37c7bc2a 100644 --- a/Admin.Core.Api/Admin.Core.Model.xml +++ b/Admin.Core.Api/Admin.Core.Model.xml @@ -546,6 +546,16 @@ 更新时间 + + + 产品型号 + + + + + 产品名称 + + SAP BOM 信息 @@ -1366,11 +1376,21 @@ 物料名称 + + + SAP订单编码 + + 计划数量 + + + 产线 + + 更新时间 diff --git a/Admin.Core.Api/obj/Admin.Core.Api.csproj.nuget.dgspec.json b/Admin.Core.Api/obj/Admin.Core.Api.csproj.nuget.dgspec.json index df065e3c..0a98b80a 100644 --- a/Admin.Core.Api/obj/Admin.Core.Api.csproj.nuget.dgspec.json +++ b/Admin.Core.Api/obj/Admin.Core.Api.csproj.nuget.dgspec.json @@ -1238,8 +1238,8 @@ "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IService\\Admin.Core.IService.csproj": { "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.IService\\Admin.Core.IService.csproj" }, - "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj": { - "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.PLc\\Aucma.Core.PLc.csproj" + "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj": { + "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.HwPLc\\Aucma.Core.HwPLc.csproj" } } } diff --git a/Admin.Core.Api/obj/project.assets.json b/Admin.Core.Api/obj/project.assets.json index c93f6930..6f928a74 100644 --- a/Admin.Core.Api/obj/project.assets.json +++ b/Admin.Core.Api/obj/project.assets.json @@ -4242,7 +4242,7 @@ "dependencies": { "Admin.Core.Common": "1.0.0", "Admin.Core.IService": "1.0.0", - "Aucma.Core.PLc": "1.0.0" + "Aucma.Core.HwPLc": "1.0.0" }, "compile": { "bin/placeholder/Aucma.Core.Tasks.dll": {} diff --git a/Admin.Core.Api/obj/project.nuget.cache b/Admin.Core.Api/obj/project.nuget.cache index 01fafd2c..66791f7b 100644 --- a/Admin.Core.Api/obj/project.nuget.cache +++ b/Admin.Core.Api/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "fbBV4ohCpQ4tS1CZehkGz8FzvBy3W1ZgjJtJwKbO0UVSf1BnliGYGI+Eknp9PrG2Bzwmirj5uYJZhHC5mDx/2Q==", + "dgSpecHash": "ikzDviTkPCZihaCgfwo8AuzSJtovmijOXuLwxKtGKgxnoK/TUK28Ezke2gSYzzQArjgQtsTmEg3YwxUUY0FkCg==", "success": true, "projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Api\\Admin.Core.Api.csproj", "expectedPackageFiles": [ diff --git a/Admin.Core.IService/IService_New/ISysUserInfoServices.cs b/Admin.Core.IService/IService_New/ISysUserInfoServices.cs index e26aac62..e9d3d3b4 100644 --- a/Admin.Core.IService/IService_New/ISysUserInfoServices.cs +++ b/Admin.Core.IService/IService_New/ISysUserInfoServices.cs @@ -19,10 +19,16 @@ namespace Admin.Core.IService /// Task GetTeamData(DateTime nowDate); /// - /// 获取当前班组 + /// 根据code获取当前班组所在工时 /// /// /// Task GetStationData(string code); + /// + /// 获取当前班组 + /// + /// + /// + Task> GetTeamData(); } } \ No newline at end of file diff --git a/Admin.Core.Model/Model_New/BoxFoamplan.cs b/Admin.Core.Model/Model_New/BoxFoamplan.cs index c0f01732..4f8752fa 100644 --- a/Admin.Core.Model/Model_New/BoxFoamplan.cs +++ b/Admin.Core.Model/Model_New/BoxFoamplan.cs @@ -50,5 +50,10 @@ namespace Admin.Core.Model /// [SugarColumn(ColumnName = "CREATE_TIME")] public DateTime CreateTime { get; set; } + /// + /// 计划完成数量 + /// + [SugarColumn(ColumnName = "COMPLATE_AMOUNT")] + public int CompleteAmount { get; set; } } } diff --git a/Admin.Core.Model/Model_New/CurrentTeamTime.cs b/Admin.Core.Model/Model_New/CurrentTeamTime.cs index 639fca2d..4605edb4 100644 --- a/Admin.Core.Model/Model_New/CurrentTeamTime.cs +++ b/Admin.Core.Model/Model_New/CurrentTeamTime.cs @@ -6,7 +6,7 @@ namespace Admin.Core.Model /// /// 存储当班班组 /// - [SugarTable("CURRENTTEAMTIME", "AUCMA_SCADA")] + [SugarTable("BOX_CURRENTTEAMTIME", "AUCMA_SCADA")] public class CurrentTeamTime { /// diff --git a/Admin.Core.Model/obj/Debug/net6.0/Admin.Core.Model.GeneratedMSBuildEditorConfig.editorconfig b/Admin.Core.Model/obj/Debug/net6.0/Admin.Core.Model.GeneratedMSBuildEditorConfig.editorconfig index 0b5bdcb9..f17e3fdc 100644 --- a/Admin.Core.Model/obj/Debug/net6.0/Admin.Core.Model.GeneratedMSBuildEditorConfig.editorconfig +++ b/Admin.Core.Model/obj/Debug/net6.0/Admin.Core.Model.GeneratedMSBuildEditorConfig.editorconfig @@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Admin.Core.Model -build_property.ProjectDir = E:\c#\AUCMA\new\Admin.Core.Model\ +build_property.ProjectDir = D:\Project\gitea\AUCMA\SCADA\Admin.Core.Model\ diff --git a/Admin.Core.Service/Service_New/SysUserInfoServices.cs b/Admin.Core.Service/Service_New/SysUserInfoServices.cs index c21c659d..ae5ea946 100644 --- a/Admin.Core.Service/Service_New/SysUserInfoServices.cs +++ b/Admin.Core.Service/Service_New/SysUserInfoServices.cs @@ -25,7 +25,11 @@ namespace Admin.Core.IService base.BaseDal = dal; _sysUserInfoRepository = sysUserInfoRepository; } - + public async Task> GetTeamData() + { + return await _sysUserInfoRepository.GetTeamData(); + + } public async Task GetTeamData(DateTime nowDate) { var list= await _sysUserInfoRepository.GetTeamData(); diff --git a/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs b/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs index 57b816bb..79b7f067 100644 --- a/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs +++ b/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs @@ -26,7 +26,8 @@ namespace Admin.Core.Tasks private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(Job_BoxFoamData_Quartz)); private readonly IBoxFoamDataServices _boxFoamDataServices; private readonly IBoxFoamDataServices _oldBoxFoamDataServices; - + + public Job_BoxFoamData_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService, IBoxFoamDataServices boxFoamDataServices, IBoxFoamDataServices oldBoxFoamDataServices) { diff --git a/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam2_Quartz.cs b/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam2_Quartz.cs new file mode 100644 index 00000000..58ed38eb --- /dev/null +++ b/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam2_Quartz.cs @@ -0,0 +1,4477 @@ +using Admin.Core.IService.ISys; +using Admin.Core.IService; +using Quartz; +using System; +using System.Threading.Tasks; +using log4net; +using Admin.Core.Common; +using System.Linq; +using Admin.Core.Model.Model_New; +using Aucma.Core.HwPLc; +using System.Collections.Generic; +using Admin.Core.Model; +using Elasticsearch.Net; +using NPOI.POIFS.Crypt.Dsig; +using NetTaste; +using Consul; +using Admin.Core.Model.ViewModels; +using Admin.Core.Service; +using System.Collections; +using Microsoft.AspNetCore.Authorization; + +/// +/// 老发泡数据采集 +/// +namespace Admin.Core.Tasks +{ + public class Job_OldBoxFoam2_Quartz : JobBase, IJob + { + #region 事件 + /// + /// 发泡线新事件 + /// + /// + public delegate Task RefreshBoxFoamDataDelegate(); + public static event RefreshBoxFoamDataDelegate RefreshBoxFoamDataDelegateEvent; + /// + /// 老发泡线更新事件 + /// + /// + public delegate Task RefreshOldBoxFoamDataDelegate(List list); + public static event RefreshOldBoxFoamDataDelegate RefreshOldBoxFoamDataDelegateEvent; + /// + /// 老泡前库更新事件 + /// + /// + public delegate Task RefreshOldBoxFoamTypeDataDelegate(List list); + public static event RefreshOldBoxFoamTypeDataDelegate RefreshOldBoxFoamTypeDataDelegateEvent; + + #endregion + + private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(Job_BoxFoamData_Quartz)); + + 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 Job_OldBoxFoam2_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService, + IOldBoxFoamTypeServices oldBoxFoamTypeServices, IBoxFoamDataServices oldBoxFoamDataServices, + ISysUserInfoServices sysUserInfoServices, ICurrentTeamTimeServices currentTeamTimeServices, + IBoxFoamDataRecordServices boxFoamDataRecordServices, IBoxDeviceInfoServices boxDeviceInfoServices + ) + { + _SysTasksQzService = SysTasksQzService; + _oldBoxFoamTypeServices = oldBoxFoamTypeServices; + _oldBoxFoamDataServices = oldBoxFoamDataServices; + _sysUserInfoServices = sysUserInfoServices; + _currentTeamTimeServices = currentTeamTimeServices; + _boxFoamDataRecordServices = boxFoamDataRecordServices; + _boxDeviceInfoServices= boxDeviceInfoServices; + } + + public async Task Execute(IJobExecutionContext context) + { + //var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); + //if (obj == null) { return; } + //byte[] bt2 = obj.plc.Read("D3140", (ushort)48); + //byte[] bt = obj.plc.ReadByte("D3140", (ushort)48); + //if (bt == null) return; + await ExecuteJob(context, async () => await OldBoxFoamDataRun1(context));//发泡线 + + + } + + /// + /// 发泡线 + /// + /// + /// + public async Task OldBoxFoamDataRun1(IJobExecutionContext context) + { + try + { + //判断是否切换了班组,切换班组,数据清空,同时保存数据到历史记录表中 + DateTime now = DateTime.Now; + CurrentTeamTime time = await _currentTeamTimeServices.FirstAsync(d => d.StartTime <= now && d.EndTime >= now); + if (time != null) + { + //记录数据 + OldBoxFoamData(); + } + else + { + string productLineCode = Appsettings.app("StationInfo", "ProductLineCode"); + //把数据保存到记录表中,同时删除实时数据,重新更新数据 + List list = await _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == productLineCode); + List recordList = new List(); + var currentTeamTimeList = await _sysUserInfoServices.GetTeamData(); + + //执行事务操作 + CurrentTeamTime currentTeamTime = await _currentTeamTimeServices.FirstAsync(); + currentTeamTime.TeamName = currentTeamTimeList.FirstOrDefault().TeamName; + currentTeamTime.StartTime = currentTeamTimeList.Min(d => d.StartTime); + currentTeamTime.EndTime = currentTeamTimeList.Max(d => d.EndTime); + await _currentTeamTimeServices.UpdateAsync(currentTeamTime); + //list.ForEach(d => + //{ + // BoxFoamDataRecord record = new BoxFoamDataRecord(); + // record.OrderCode = d.OrderCode; + // record.ProductLineCode = d.ProductLineCode; + // record.Fixturestatus = d.Production; + // record.CuringTimeSettingValue = d.CuringTimeSettingValue; + // record.ActualValue = d.ActualValue; + // record.AnHour = d.AnHour; + // record.TwoHour = d.TwoHour; + // record.ThreeHour = d.ThreeHour; + // record.FourHour = d.FourHour; + // record.FiveHour = d.FiveHour; + // record.SixHour = d.SixHour; + // record.SevenHour = d.SevenHour; + // record.EightHour = d.EightHour; + // record.NineHour = d.NineHour; + // record.TenHour = d.TenHour; + // record.ElevenHour = d.ElevenHour; + // record.TwelveHour = d.TwelveHour; + // record.BoxFixturesideplate = d.BoxFixturesideplate; + // record.BoxClosebetatemperature = d.BoxClosebetatemperature; + // record.BoxBeat = d.BoxBeat; + // record.CreateTime = DateTime.Now; + + // recordList.Add(record); + //}); + //int result = await _boxFoamDataRecordServices.AddAsync(recordList); + //if (result > 0) + //{ + // var lbfdsList = await _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == "1"); + // await _oldBoxFoamDataServices.DeletesAsync(lbfdsList); + + // var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); + // if (obj2 == null) { return; } + // //obj2.plc.WriteInt16("M216", "1");//换班 数据清空 + // //清空 当班计划 + + //} + } + } + catch (Exception ex) + { + throw; + } + } + + public async Task OldBoxFoamDataRun2(IJobExecutionContext context) + { + GetData(); + List old = await _oldBoxFoamDataServices.QueryAsync(); + RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + } + public async Task OldBoxFoamDataRun3(IJobExecutionContext context) + { + GetData2(); + List old = await _oldBoxFoamDataServices.QueryAsync(); + RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + + } + public async Task OldBoxFoamDataRun4(IJobExecutionContext context) + { + GetData3(); + List old = await _oldBoxFoamDataServices.QueryAsync(); + RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + } + public async Task OldBoxFoamDataRun5(IJobExecutionContext context) + { + GetData4(); + List old = await _oldBoxFoamDataServices.QueryAsync(); + RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + } + public async void OldBoxFoamData() + { + //GetData(); + GetData2(); + //GetData3(); + //GetData4(); + List old = await _oldBoxFoamDataServices.QueryAsync(); + RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + } + #region 老泡线体夹具任务处理表 + private async void UpdateRealOldBoxFoamData(BoxFoamData item) + { + if (item.ObjId == 1) + { + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); + if (obj == null) { return; } + if (obj.plc.IsConnected) + { + // int temp1 = short.Parse(UnicodeHelper.BytesToHexStr(bt.Skip(0).Take(2).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + var type1 = $"{obj.plc.ReadInt32("D3140")}"; + if (type1.ToString()!="0") + { + item.Fixtureboxtype = type1; + } + //if (obj.plc.ReadBool("Y0F0")) + //{ + // item.Fixturestatus = "手动"; + //} + //else if (obj.plc.ReadBool("Y0F1")) + //{ + // item.Fixturestatus = "手动"; + //} + //else if (obj.plc.ReadBool("Y110")) + //{ + // item.Fixturestatus = "停止"; + //} + item.Production = obj.plc.ReadInt16("D182"); + item.CuringTimeSettingValue = obj.plc.ReadInt16("D910").ToString(); + item.ActualValue = obj.plc.ReadInt16("T3").ToString(); + item.UpdatedTime = DateTime.Now; + } + } + if (item.ObjId == 2) + { + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); + if (obj == null) { return; } + if (obj.plc.IsConnected) + { + //string type = $"{obj.plc.ReadInt16("D3142")}{obj.plc.ReadInt16("D3141")}"; + //item.Fixtureboxtype = type; + + var type1 = $"{obj.plc.ReadInt32("D3142")}"; + if (type1.ToString() != "0") + { + item.Fixtureboxtype = type1; + } + + + item.Production = obj.plc.ReadInt16("D183"); + item.CuringTimeSettingValue = obj.plc.ReadInt16("D912").ToString(); + item.ActualValue = obj.plc.ReadInt16("T13").ToString(); + item.UpdatedTime = DateTime.Now; + } + } + if (item.ObjId == 3) + { + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); + if (obj == null) { return; } + if (obj.plc.IsConnected) + { + //string type = $"{obj.plc.ReadInt16("D3142")}{obj.plc.ReadInt16("D3143")}"; + //item.Fixtureboxtype = type; + var type1 = $"{obj.plc.ReadInt32("D3144")}"; + if (type1.ToString() != "0") + { + item.Fixtureboxtype = type1; + } + //if (obj.plc.ReadBool("Y0FA")) + //{ + // item.Fixturestatus = "手动"; + //} + //if (obj.plc.ReadBool("Y0FB")) + //{ + // item.Fixturestatus = "手动"; + //} + //if (obj.plc.ReadBool("Y112")) + //{ + // item.Fixturestatus = "停止"; + //} + item.Production = obj.plc.ReadInt16("D184"); + item.CuringTimeSettingValue = obj.plc.ReadInt16("D912").ToString(); + item.ActualValue = obj.plc.ReadInt16("T23").ToString(); + item.UpdatedTime = DateTime.Now; + } + } + if (item.ObjId == 4) + { + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); + if (obj == null) { return; } + if (obj.plc.IsConnected) + { + // string type = $"{obj.plc.ReadInt16("D3144")}{obj.plc.ReadInt16("D3145")}"; + var type1 = $"{obj.plc.ReadInt32("D3146")}"; + if (type1.ToString() != "0") + { + item.Fixtureboxtype = type1; + } + item.Production = obj.plc.ReadInt16("D185"); + item.CuringTimeSettingValue = obj.plc.ReadInt16("D913").ToString(); + item.ActualValue = obj.plc.ReadInt16("T33").ToString(); + item.UpdatedTime = DateTime.Now; + } + var objStatus = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2")); + if (objStatus != null) { + //if (objStatus.plc.ReadBool("Y100")) + //{ + // item.Fixturestatus = "手动"; + //} + //if (objStatus.plc.ReadBool("Y101")) + //{ + // item.Fixturestatus = "手动"; + //} + //if (objStatus.plc.ReadBool("Y113")) + //{ + // item.Fixturestatus = "停止"; + //} + + } + } + if (item.ObjId == 5) + { + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); + if (obj == null) { return; } + if (obj.plc.IsConnected) + { + //string type = $"{obj.plc.ReadInt16("D3150")}{obj.plc.ReadInt16("D3151")}"; + //item.Fixtureboxtype = type; + var type1 = $"{obj.plc.ReadInt32("D3148")}"; + if (type1.ToString() != "0") + { + item.Fixtureboxtype = type1; + } + item.Production = obj.plc.ReadInt16("D186"); + item.CuringTimeSettingValue = obj.plc.ReadInt16("D913").ToString(); + item.ActualValue = obj.plc.ReadInt16("T43").ToString(); + item.UpdatedTime = DateTime.Now; + } + + var objStatus = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2")); + if (objStatus != null&& objStatus.plc.IsConnected) + { + //if (objStatus.plc.ReadBool("Y105")) + //{ + // item.Fixturestatus = "手动"; + //} + //if (objStatus.plc.ReadBool("Y106")) + //{ + // item.Fixturestatus = "手动"; + //} + //if (objStatus.plc.ReadBool("Y114")) + //{ + // item.Fixturestatus = "停止"; + //} + + } + } + if (item.ObjId == 6) + { + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); + if (obj == null) { return; } + if (obj.plc.IsConnected) + { + //string type = $"{obj.plc.ReadInt16("D3152")}{obj.plc.ReadInt16("D3143")}"; + //item.Fixtureboxtype = type; + var type1 = $"{obj.plc.ReadInt32("D3150")}"; + if (type1.ToString() != "0") + { + item.Fixtureboxtype = type1; + } + else + { + item.Fixtureboxtype = ""; + } + item.CuringTimeSettingValue = obj.plc.ReadInt16("D915").ToString(); + item.Production = obj.plc.ReadInt16("D187"); + item.UpdatedTime = DateTime.Now; + } + var objStatus = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2")); + if (objStatus != null) + { + //if (objStatus.plc.ReadBool("Y10A")) + //{ + // item.Fixturestatus = "手动"; + //} + //if (objStatus.plc.ReadBool("Y10B")) + //{ + // item.Fixturestatus = "手动"; + //} + //if (objStatus.plc.ReadBool("Y115")) + //{ + // item.Fixturestatus = "停止"; + //} + //item.ActualValue = objStatus.plc.ReadInt16("T53").ToString(); + + } + } + + bool result = await _oldBoxFoamDataServices.UpdateAsync(item); + if (result) + { + //var list = await _oldBoxFoamTypeServices.QueryAsync(); + //RefreshOldBoxFoamDataDelegateEvent?.Invoke(list); + } + else + { + // RefreshOldBoxFoamDataDelegateEvent?.Invoke($"物料[{planInfo.MaterialName}], 入库[{baseSpace.SpaceName}]失败,任务回滚!"); + } + } + #endregion + + + + public async void GetData() + { + Console.WriteLine(DateTime.Now.ToString("hh:mm:ss")); + try + { + + //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; + 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; + 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; + 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"; + 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"; + 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"; + 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"; + 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"; + 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"; + 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"; + 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"; + 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"; + await _oldBoxFoamDataServices.AddAsync(boxfoam6); + } + } + catch (Exception ex) + { + + throw; + } + + Console.WriteLine(DateTime.Now.ToString("hh:mm:ss")); + } + + public async void GetData2() + { + try + { + //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 = 7; + 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 = 7; + 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 =8; + 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 =8; + boxfoam2.ProductLineCode = "CX_01"; + 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 = 9; + oldList3.ProductLineCode = "CX_01"; + 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 = 9; + boxfoam3.ProductLineCode = "CX_01"; + 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 = 10; + oldList4.ProductLineCode = "CX_01"; + 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 =10; + boxfoam4.ProductLineCode = "CX_01"; + 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 = 11; + oldList5.ProductLineCode = "CX_01"; + 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 = 11; + boxfoam5.ProductLineCode = "CX_01"; + 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 = 12; + oldList6.ProductLineCode = "CX_01"; + 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 = 12; + boxfoam6.ProductLineCode = "CX_01"; + await _oldBoxFoamDataServices.AddAsync(boxfoam6); + } + } + catch (Exception ex) + { + + throw; + } + } + + public async void GetData3() + { + try + { + //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 = 13; + 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 = 13; + 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 =14; + 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 = 14; + boxfoam2.ProductLineCode = "CX_01"; + 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 =15; + oldList3.ProductLineCode = "CX_01"; + 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 = 15; + boxfoam3.ProductLineCode = "CX_01"; + 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 =16; + oldList4.ProductLineCode = "CX_01"; + 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 = 16; + boxfoam4.ProductLineCode = "CX_01"; + 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 = 17; + oldList5.ProductLineCode = "CX_01"; + 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 = 17; + boxfoam5.ProductLineCode = "CX_01"; + 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 = 18; + oldList6.ProductLineCode = "CX_01"; + 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 = 18; + boxfoam6.ProductLineCode = "CX_01"; + await _oldBoxFoamDataServices.AddAsync(boxfoam6); + } + } + catch (Exception ex) + { + + throw; + } + } + + public async void GetData4() + { + try + { + //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 = 19; + 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 = 19; + 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 = 20; + 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 = 20; + boxfoam2.ProductLineCode = "CX_01"; + 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 = 21; + oldList3.ProductLineCode = "CX_01"; + 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 = 21; + boxfoam3.ProductLineCode = "CX_01"; + 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 = 22; + oldList4.ProductLineCode = "CX_01"; + 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 = 22; + boxfoam4.ProductLineCode = "CX_01"; + 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 = 23; + oldList5.ProductLineCode = "CX_01"; + 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 = 23; + boxfoam5.ProductLineCode = "CX_01"; + 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 = 24; + oldList6.ProductLineCode = "CX_01"; + 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 = 24; + boxfoam6.ProductLineCode = "CX_01"; + await _oldBoxFoamDataServices.AddAsync(boxfoam6); + } + } + catch (Exception ex) + { + + throw; + } + } + + public int GetTeamHour() + { + DateTime now= DateTime.Now; + var obj = _sysUserInfoServices.GetTeamData(now).Result; + return obj.Seq; + } + public byte[] ArrReverse(byte[] bt) + { + for (int i = 0; i < bt.Length; i += 2) + { + byte temp = bt[i]; + bt[i] = bt[i + 1]; + bt[i + 1] = temp; + } + + return bt; + } + + /// + /// 物料编码 + /// + /// + public async void ExecPlan(string code,string num) + { + var list = await _boxFoamPlanServices.QueryAsync(d=>d); + + } + } +} diff --git a/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs b/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs index 7431f9a0..223f012b 100644 --- a/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs +++ b/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs @@ -17,6 +17,7 @@ using Consul; using Admin.Core.Model.ViewModels; using Admin.Core.Service; using System.Collections; +using Microsoft.AspNetCore.Authorization; /// /// 老发泡数据采集 @@ -60,7 +61,8 @@ namespace Admin.Core.Tasks public Job_OldBoxFoam_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService, IOldBoxFoamTypeServices oldBoxFoamTypeServices, IBoxFoamDataServices oldBoxFoamDataServices, ISysUserInfoServices sysUserInfoServices, ICurrentTeamTimeServices currentTeamTimeServices, - IBoxFoamDataRecordServices boxFoamDataRecordServices, IBoxDeviceInfoServices boxDeviceInfoServices) + IBoxFoamDataRecordServices boxFoamDataRecordServices, IBoxDeviceInfoServices boxDeviceInfoServices + ) { _SysTasksQzService = SysTasksQzService; _oldBoxFoamTypeServices = oldBoxFoamTypeServices; @@ -73,7 +75,14 @@ namespace Admin.Core.Tasks public async Task Execute(IJobExecutionContext context) { - await ExecuteJob(context, async () => await OldBoxFoamDataRun(context));//发泡线 + //var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); + //if (obj == null) { return; } + //byte[] bt2 = obj.plc.Read("D3140", (ushort)48); + //byte[] bt = obj.plc.ReadByte("D3140", (ushort)48); + //if (bt == null) return; + await ExecuteJob(context, async () => await OldBoxFoamDataRun1(context));//发泡线 + + } /// @@ -81,7 +90,7 @@ namespace Admin.Core.Tasks /// /// /// - public async Task OldBoxFoamDataRun(IJobExecutionContext context) + public async Task OldBoxFoamDataRun1(IJobExecutionContext context) { try { @@ -91,7 +100,7 @@ namespace Admin.Core.Tasks if (time != null) { //记录数据 - await OldBoxFoamData(); + OldBoxFoamData(); } else { @@ -99,63 +108,96 @@ namespace Admin.Core.Tasks //把数据保存到记录表中,同时删除实时数据,重新更新数据 List list = await _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == productLineCode); List recordList = new List(); - list.ForEach(d => - { - BoxFoamDataRecord record = new BoxFoamDataRecord(); - record.OrderCode = d.OrderCode; - record.ProductLineCode = d.ProductLineCode; - record.Fixturestatus = d.Production; - record.CuringTimeSettingValue = d.CuringTimeSettingValue; - record.ActualValue = d.ActualValue; - record.AnHour = d.AnHour; - record.TwoHour = d.TwoHour; - record.ThreeHour = d.ThreeHour; - record.FourHour = d.FourHour; - record.FiveHour = d.FiveHour; - record.SixHour = d.SixHour; - record.SevenHour = d.SevenHour; - record.EightHour = d.EightHour; - record.NineHour = d.NineHour; - record.TenHour = d.TenHour; - record.ElevenHour = d.ElevenHour; - record.TwelveHour = d.TwelveHour; - record.BoxFixturesideplate = d.BoxFixturesideplate; - record.BoxClosebetatemperature = d.BoxClosebetatemperature; - record.BoxBeat = d.BoxBeat; - record.CreateTime = DateTime.Now; - - recordList.Add(record); - }); - int result = await _boxFoamDataRecordServices.AddAsync(recordList); - if (result > 0) - { - var lbfdsList = await _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == "1"); - await _oldBoxFoamDataServices.DeletesAsync(lbfdsList); - - var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); - if (obj2 == null) { return; } - obj2.plc.WriteInt16("M216", "1");//换班 数据清空 - //清空 当班计划 + var currentTeamTimeList = await _sysUserInfoServices.GetTeamData(); + + //执行事务操作 + CurrentTeamTime currentTeamTime = await _currentTeamTimeServices.FirstAsync(); + currentTeamTime.TeamName = currentTeamTimeList.FirstOrDefault().TeamName; + currentTeamTime.StartTime = currentTeamTimeList.Min(d => d.StartTime); + currentTeamTime.EndTime = currentTeamTimeList.Max(d => d.EndTime); + await _currentTeamTimeServices.UpdateAsync(currentTeamTime); + //list.ForEach(d => + //{ + // BoxFoamDataRecord record = new BoxFoamDataRecord(); + // record.OrderCode = d.OrderCode; + // record.ProductLineCode = d.ProductLineCode; + // record.Fixturestatus = d.Production; + // record.CuringTimeSettingValue = d.CuringTimeSettingValue; + // record.ActualValue = d.ActualValue; + // record.AnHour = d.AnHour; + // record.TwoHour = d.TwoHour; + // record.ThreeHour = d.ThreeHour; + // record.FourHour = d.FourHour; + // record.FiveHour = d.FiveHour; + // record.SixHour = d.SixHour; + // record.SevenHour = d.SevenHour; + // record.EightHour = d.EightHour; + // record.NineHour = d.NineHour; + // record.TenHour = d.TenHour; + // record.ElevenHour = d.ElevenHour; + // record.TwelveHour = d.TwelveHour; + // record.BoxFixturesideplate = d.BoxFixturesideplate; + // record.BoxClosebetatemperature = d.BoxClosebetatemperature; + // record.BoxBeat = d.BoxBeat; + // record.CreateTime = DateTime.Now; + + // recordList.Add(record); + //}); + //int result = await _boxFoamDataRecordServices.AddAsync(recordList); + //if (result > 0) + //{ + // var lbfdsList = await _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == "1"); + // await _oldBoxFoamDataServices.DeletesAsync(lbfdsList); - } + // var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); + // if (obj2 == null) { return; } + // //obj2.plc.WriteInt16("M216", "1");//换班 数据清空 + // //清空 当班计划 + + //} } } catch (Exception ex) { - throw; } } - #region 老泡线体夹具任务处理表 - public async Task OldBoxFoamData() + public async Task OldBoxFoamDataRun2(IJobExecutionContext context) { - await GetData(); - await GetData2(); + GetData(); List old = await _oldBoxFoamDataServices.QueryAsync(); RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); } - + public async Task OldBoxFoamDataRun3(IJobExecutionContext context) + { + GetData2(); + List old = await _oldBoxFoamDataServices.QueryAsync(); + RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + + } + public async Task OldBoxFoamDataRun4(IJobExecutionContext context) + { + GetData3(); + List old = await _oldBoxFoamDataServices.QueryAsync(); + RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + } + public async Task OldBoxFoamDataRun5(IJobExecutionContext context) + { + GetData4(); + List old = await _oldBoxFoamDataServices.QueryAsync(); + RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + } + public async void OldBoxFoamData() + { + GetData(); + GetData2(); + //GetData3(); + //GetData4(); + List old = await _oldBoxFoamDataServices.QueryAsync(); + RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + } + #region 老泡线体夹具任务处理表 private async void UpdateRealOldBoxFoamData(BoxFoamData item) { if (item.ObjId == 1) @@ -366,42 +408,36 @@ namespace Admin.Core.Tasks } #endregion - public byte[] ArrReverse(byte[] bt) - { - for (int i = 0; i < bt.Length; i += 2) - { - byte temp = bt[i]; - bt[i] = bt[i + 1]; - bt[i + 1] = temp; - } - - return bt; - } + - public async Task GetData() + public async void GetData() { + Console.WriteLine(DateTime.Now.ToString("hh:mm:ss")); try { - var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2")); - if (obj2 == null) { return; } + + //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 = await _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == productLineCode); - - byte[] bt = obj.plc.Read("D3140", (ushort)48); - if (bt == null) return; - var arr1 = ArrReverse(bt); - - byte[] bt3 = obj.plc.Read("D182", (ushort)24); - if (bt3 == null) return; - var arr3 = ArrReverse(bt3); - byte[] bt4 = obj.plc.Read("D910", (ushort)24); - if (bt4 == null) return; - var arr4 = ArrReverse(bt4); - byte[] bt5 = obj.plc.Read("T3", (ushort)24); - if (bt5 == null) return; - var arr5 = ArrReverse(bt5); + 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); @@ -411,14 +447,16 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -429,7 +467,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -474,7 +512,7 @@ namespace Admin.Core.Tasks #endregion - oldList1.Production = short.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(),2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -489,14 +527,16 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -508,7 +548,7 @@ namespace Admin.Core.Tasks #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -553,8 +593,7 @@ namespace Admin.Core.Tasks #endregion - boxfoam1.ProductLineCode = "CX_01"; - boxfoam1.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -570,14 +609,16 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -588,7 +629,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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: @@ -633,7 +674,7 @@ namespace Admin.Core.Tasks #endregion - oldList2.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(),2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -647,14 +688,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -666,7 +710,7 @@ namespace Admin.Core.Tasks #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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: @@ -711,7 +755,7 @@ namespace Admin.Core.Tasks #endregion - boxfoam2.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(),2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -727,14 +771,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -745,7 +792,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -790,7 +837,7 @@ namespace Admin.Core.Tasks #endregion - oldList3.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -804,14 +851,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -823,7 +873,7 @@ namespace Admin.Core.Tasks #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(),1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -868,7 +918,7 @@ namespace Admin.Core.Tasks #endregion - boxfoam3.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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; @@ -885,14 +935,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -903,7 +956,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -948,7 +1001,7 @@ namespace Admin.Core.Tasks #endregion - oldList4.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(),1), System.Globalization.NumberStyles.HexNumber); + 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; @@ -962,14 +1015,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -981,7 +1037,7 @@ namespace Admin.Core.Tasks #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1026,7 +1082,7 @@ namespace Admin.Core.Tasks #endregion - boxfoam4.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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; @@ -1037,19 +1093,22 @@ namespace Admin.Core.Tasks 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) + 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1060,7 +1119,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(),1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1105,7 +1164,7 @@ namespace Admin.Core.Tasks #endregion - oldList5.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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; @@ -1119,14 +1178,16 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1138,7 +1199,7 @@ namespace Admin.Core.Tasks #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1183,7 +1244,7 @@ namespace Admin.Core.Tasks #endregion - boxfoam5.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -1198,14 +1259,16 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1216,7 +1279,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(),2), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1261,7 +1324,7 @@ namespace Admin.Core.Tasks #endregion - oldList6.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -1275,14 +1338,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1293,7 +1359,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1338,7 +1404,7 @@ namespace Admin.Core.Tasks #endregion - boxfoam6.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -1352,32 +1418,36 @@ namespace Admin.Core.Tasks throw; } + + Console.WriteLine(DateTime.Now.ToString("hh:mm:ss")); } - public async Task GetData2() + public async void GetData2() { try { - var obj2 = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc4")); - if (obj2 == null) { return; } - var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc3")); + //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 = await _oldBoxFoamDataServices.QueryAsync(d => d.ProductLineCode == productLineCode); - - byte[] bt = obj.plc.Read("D3140", (ushort)48); - if (bt == null) return; - var arr1 = ArrReverse(bt); - - byte[] bt3 = obj.plc.Read("D182", (ushort)24); - if (bt3 == null) return; - var arr3 = ArrReverse(bt3); - byte[] bt4 = obj.plc.Read("D910", (ushort)24); - if (bt4 == null) return; - var arr4 = ArrReverse(bt4); - byte[] bt5 = obj.plc.Read("T3", (ushort)24); - if (bt5 == null) return; - var arr5 = ArrReverse(bt5); + 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); @@ -1387,14 +1457,16 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1405,7 +1477,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1450,7 +1522,7 @@ namespace Admin.Core.Tasks #endregion - oldList1.Production = short.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -1465,14 +1537,16 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1484,7 +1558,7 @@ namespace Admin.Core.Tasks #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1529,8 +1603,7 @@ namespace Admin.Core.Tasks #endregion - boxfoam1.ProductLineCode = "CX_01"; - boxfoam1.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(0).Take(3).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -1546,14 +1619,16 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1564,7 +1639,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1609,12 +1684,12 @@ namespace Admin.Core.Tasks #endregion - oldList2.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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 = 8; + oldList2.MainId =8; await _oldBoxFoamDataServices.UpdateAsync(oldList2); } else @@ -1623,14 +1698,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1642,7 +1720,7 @@ namespace Admin.Core.Tasks #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1687,11 +1765,11 @@ namespace Admin.Core.Tasks #endregion - boxfoam2.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(4).Take(7).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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 = 8; + boxfoam2.MainId =8; boxfoam2.ProductLineCode = "CX_01"; await _oldBoxFoamDataServices.AddAsync(boxfoam2); } @@ -1703,14 +1781,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1721,7 +1802,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1766,7 +1847,7 @@ namespace Admin.Core.Tasks #endregion - oldList3.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -1780,14 +1861,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1799,7 +1883,7 @@ namespace Admin.Core.Tasks #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1844,7 +1928,7 @@ namespace Admin.Core.Tasks #endregion - boxfoam3.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(8).Take(11).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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; @@ -1861,14 +1945,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1879,7 +1966,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -1924,7 +2011,7 @@ namespace Admin.Core.Tasks #endregion - oldList4.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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; @@ -1938,14 +2025,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -1957,7 +2047,7 @@ namespace Admin.Core.Tasks #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -2002,11 +2092,11 @@ namespace Admin.Core.Tasks #endregion - boxfoam4.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(15).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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 = 10; + boxfoam4.MainId =10; boxfoam4.ProductLineCode = "CX_01"; await _oldBoxFoamDataServices.AddAsync(boxfoam4); } @@ -2018,14 +2108,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -2036,7 +2129,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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: @@ -2081,7 +2174,7 @@ namespace Admin.Core.Tasks #endregion - oldList5.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(16).Take(19).ToArray(), 1), System.Globalization.NumberStyles.HexNumber); + 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; @@ -2095,14 +2188,16 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -2114,7 +2209,7 @@ namespace Admin.Core.Tasks #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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: @@ -2159,7 +2254,7 @@ namespace Admin.Core.Tasks #endregion - boxfoam5.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(12).Take(14).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -2174,14 +2269,16 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -2192,7 +2289,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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: @@ -2237,7 +2334,7 @@ namespace Admin.Core.Tasks #endregion - oldList6.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -2251,14 +2348,17 @@ namespace Admin.Core.Tasks 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(ArrReverse(result1), result1.Length), System.Globalization.NumberStyles.HexNumber); - int status2 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result2), result2.Length), System.Globalization.NumberStyles.HexNumber); - int status3 = int.Parse(UnicodeHelper.BytesToHexStr(ArrReverse(result3), result3.Length), System.Globalization.NumberStyles.HexNumber); - - if (status2 == 1) + //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; } @@ -2269,7 +2369,7 @@ namespace Admin.Core.Tasks #endregion #region 计算每小时产量 - int num = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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: @@ -2314,7 +2414,7 @@ namespace Admin.Core.Tasks #endregion - boxfoam6.Production = int.Parse(UnicodeHelper.BytesToHexStr(arr3.Skip(15).Take(17).ToArray(), 2), System.Globalization.NumberStyles.HexNumber); + 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; @@ -2329,12 +2429,2049 @@ namespace Admin.Core.Tasks throw; } } - public int GetTeamHour() + + public async void GetData3() { - DateTime now= DateTime.Now; - var obj = _sysUserInfoServices.GetTeamData(now).Result; - return obj.Seq; + try + { + //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 = 13; + 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 = 13; + 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 =14; + 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 = 14; + boxfoam2.ProductLineCode = "CX_01"; + 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 =15; + oldList3.ProductLineCode = "CX_01"; + 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 = 15; + boxfoam3.ProductLineCode = "CX_01"; + 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 =16; + oldList4.ProductLineCode = "CX_01"; + 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 = 16; + boxfoam4.ProductLineCode = "CX_01"; + 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 = 17; + oldList5.ProductLineCode = "CX_01"; + 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 = 17; + boxfoam5.ProductLineCode = "CX_01"; + 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 = 18; + oldList6.ProductLineCode = "CX_01"; + 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 = 18; + boxfoam6.ProductLineCode = "CX_01"; + await _oldBoxFoamDataServices.AddAsync(boxfoam6); + } + } + catch (Exception ex) + { + + throw; + } + } + + public async void GetData4() + { + try + { + //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 = 19; + 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 = 19; + 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 = 20; + 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 = 20; + boxfoam2.ProductLineCode = "CX_01"; + 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 = 21; + oldList3.ProductLineCode = "CX_01"; + 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 = 21; + boxfoam3.ProductLineCode = "CX_01"; + 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 = 22; + oldList4.ProductLineCode = "CX_01"; + 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 = 22; + boxfoam4.ProductLineCode = "CX_01"; + 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 = 23; + oldList5.ProductLineCode = "CX_01"; + 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 = 23; + boxfoam5.ProductLineCode = "CX_01"; + 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 = 24; + oldList6.ProductLineCode = "CX_01"; + 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 = 24; + boxfoam6.ProductLineCode = "CX_01"; + await _oldBoxFoamDataServices.AddAsync(boxfoam6); + } + } + catch (Exception ex) + { + + throw; + } + } + + public int GetTeamHour() + { + DateTime now= DateTime.Now; + var obj = _sysUserInfoServices.GetTeamData(now).Result; + return obj.Seq; + } + public byte[] ArrReverse(byte[] bt) + { + for (int i = 0; i < bt.Length; i += 2) + { + byte temp = bt[i]; + bt[i] = bt[i + 1]; + bt[i + 1] = temp; + } + + return bt; + } + + /// + /// 物料编码 + /// + /// + public async void ExecPlan(string code,string num) + { + var list = await _boxFoamPlanServices.QueryAsync(d=>d); + } - } } diff --git a/Aucma.Core.OldBoxFoam/Aucma.Core.OldBoxFoam.csproj b/Aucma.Core.OldBoxFoam/Aucma.Core.OldBoxFoam.csproj index afffdecb..a4a39d03 100644 --- a/Aucma.Core.OldBoxFoam/Aucma.Core.OldBoxFoam.csproj +++ b/Aucma.Core.OldBoxFoam/Aucma.Core.OldBoxFoam.csproj @@ -1,7 +1,7 @@  - WinExe + Exe net6.0-windows enable true diff --git a/Aucma.Core.OldBoxFoam/Startup.cs b/Aucma.Core.OldBoxFoam/Startup.cs index ad7a50d2..f9c214f8 100644 --- a/Aucma.Core.OldBoxFoam/Startup.cs +++ b/Aucma.Core.OldBoxFoam/Startup.cs @@ -9,6 +9,7 @@ using Admin.Core.Service; using Admin.Core.Tasks; using Aucma.Core.RunPlc; using Aucma.Core.Scanner; +using Aucma.Core.Tasks; using Autofac; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -66,6 +67,7 @@ namespace Aucma.Core.OldBoxFoam services.AddJobSetup(); //PLC services.AddPlcSetup(); + services.AddAucmaTaskSetup(); //ֱ֧ȫ :֧ System.Text.Encoding.GetEncoding("GB2312") System.Text.Encoding.GetEncoding("GB18030") Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); } @@ -86,7 +88,7 @@ namespace Aucma.Core.OldBoxFoam /// /// /// - public void Configure(IApplicationBuilder app, ISysTasksQzService tasksQzService, + public void Configure(IApplicationBuilder app, IAucamTaskService aucamTaskService, ISchedulerCenter schedulerCenter, IRunPlcService runPlcService) { // ʹþ̬ļ @@ -95,7 +97,8 @@ namespace Aucma.Core.OldBoxFoam //app.UseAuthorization(); // QuartzNetJobȷ - app.UseQuartzJobMildd(tasksQzService, schedulerCenter); + // app.UseQuartzJobMildd(tasksQzService, schedulerCenter); + app.AucmaTaskMildds(aucamTaskService); //PLC app.UsePlcMildd(runPlcService); } diff --git a/Aucma.Core.OldBoxFoam/ViewModels/OldBoxFoamPageViewModel.cs b/Aucma.Core.OldBoxFoam/ViewModels/OldBoxFoamPageViewModel.cs index cd4e155a..0ae592af 100644 --- a/Aucma.Core.OldBoxFoam/ViewModels/OldBoxFoamPageViewModel.cs +++ b/Aucma.Core.OldBoxFoam/ViewModels/OldBoxFoamPageViewModel.cs @@ -5,14 +5,19 @@ using Admin.Core.Model.ViewModels; using Admin.Core.Service; using Admin.Core.Tasks; using Aucma.Core.OldBoxFoam.Models; +using Aucma.Core.Tasks; using CommunityToolkit.Mvvm.ComponentModel; +using log4net; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; +using System.Timers; +using System.Windows.Documents; /** * 老发泡线监控 * */ @@ -22,56 +27,49 @@ namespace Aucma.Core.OldBoxFoam.ViewModels { IBoxFoamDataServices? _oldBoxFoamDataServices; IOldBoxFoamTypeServices _oldBoxFoamTypeServices; + public static System.Threading.Timer GetStoreTimer; + private readonly IBoxFoamPlanServices _boxFoamPlanServices; + private readonly ISysUserInfoServices _sysUserInfoServices; + private static readonly log4net.ILog log = LogManager.GetLogger(typeof(OldBoxFoamPageViewModel)); + System.Timers.Timer timer1 = new System.Timers.Timer(2000); + System.Timers.Timer timer2 = new System.Timers.Timer(2000); public OldBoxFoamPageViewModel() { _oldBoxFoamDataServices = App.ServiceProvider.GetService(); _oldBoxFoamTypeServices = App.ServiceProvider.GetService(); + _boxFoamPlanServices = App.ServiceProvider.GetService(); + _sysUserInfoServices = App.ServiceProvider.GetService(); + //Job_OldBoxFoam_Quartz.RefreshOldBoxFoamTypeDataDelegateEvent += OldBoxFoamTypeOnLoad3; + AucamTaskService.RefreshOldBoxFoamDataDelegateEvent += OldBoxFoamOnLoad3; + //GetStoreTimer = new System.Threading.Timer(OldBoxFoamOnLoad, null, 0, Timeout.Infinite); + //Task.WaitAll(OldBoxFoamOnLoad()); + + timer1.Elapsed += new System.Timers.ElapsedEventHandler(OldBoxFoamOnLoad); //到达时间的时候执行事件; + timer1.AutoReset = true;//设置是执行一次(false)还是一直执行(true); + timer1.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它, + timer1.Start();//timer.Start()的内部原理还是设置timer.Enabled = true; - Job_OldBoxFoam_Quartz.RefreshOldBoxFoamTypeDataDelegateEvent += OldBoxFoamTypeOnLoad3; - Job_OldBoxFoam_Quartz.RefreshOldBoxFoamDataDelegateEvent += OldBoxFoamOnLoad3; - - // Task.WaitAll(OldBoxFoamOnLoad(), OldBoxFoamTypeOnLoad()); + timer2.Elapsed += new System.Timers.ElapsedEventHandler(OldBoxFoamOnLoad); //到达时间的时候执行事件; + timer2.AutoReset = true;//设置是执行一次(false)还是一直执行(true); + timer2.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它, + timer2.Start();//timer.Start()的内部原理还是设置timer.Enabled = true; } #region 初始化加载数据 - public async Task OldBoxFoamOnLoad() - { - List list = await _oldBoxFoamDataServices.QueryAsync(); - if (list == null) return; - int i = 0; - foreach (var item in list) - { - OldBoxFoamDataModel model = new OldBoxFoamDataModel(); - model.ObjId = item.ObjId; - model.Fixtureboxtype = item.Fixtureboxtype; - model.Fixturestatus = item.Fixturestatus; - model.Production = item.Production; - model.CuringTimeSettingValue = item.CuringTimeSettingValue; - if (item.Fixturestatus == 1)//停止 - { - _statusColor.Add("green"); - - } - else - { - _statusColor.Add("red"); - } - _fixtureName.Add(item.Fixtureboxtype); - _production.Add(item.Production); - _beat.Add(item.BoxBeat); - i =+ item.Production; - } - _totle = list.Sum(d=>d.Production); - } - public Task OldBoxFoamOnLoad3(List list) + private void OldBoxFoamOnLoad(object? sender, ElapsedEventArgs e) { - if (list == null) return Task.CompletedTask; - System.Windows.Application.Current.Dispatcher.Invoke((Action)( () => + try { - OldBoxFoamDataGrid.Clear(); + _fixtureName.Clear(); + _production.Clear(); + _beat.Clear(); + _statusColor.Clear(); + List list = _oldBoxFoamDataServices.QueryAsync().Result; + if (list == null) return; int i = 0; - foreach (var item in list) + var prderList= list.OrderBy(d=>d.MainId); + foreach (var item in prderList) { OldBoxFoamDataModel model = new OldBoxFoamDataModel(); model.ObjId = item.ObjId; @@ -93,9 +91,71 @@ namespace Aucma.Core.OldBoxFoam.ViewModels _beat.Add(item.BoxBeat); i = +item.Production; } - - })); - return Task.CompletedTask; + _totle = list.Sum(d => d.Production); + } + catch (Exception ex) + { + log.Error("获取库存接口数据异常." + ex.Message); + } + finally + { + if (GetStoreTimer != null) + { + GetStoreTimer.Change(20000, Timeout.Infinite); + } + } + } + public async Task OldBoxFoamOnLoad3(List list) + { + try + { + // List list = await _oldBoxFoamDataServices.QueryAsync(); + if (list == null) return; + System.Windows.Application.Current.Dispatcher.Invoke((Action)(() => + { + _fixtureName.Clear(); + _production.Clear(); + _beat.Clear(); + _statusColor.Clear(); + OldBoxFoamDataGrid.Clear(); + int i = 0; + var prderList = list.OrderBy(d => d.MainId); + foreach (var item in prderList) + { + OldBoxFoamDataModel model = new OldBoxFoamDataModel(); + model.ObjId = item.ObjId; + model.Fixtureboxtype = item.Fixtureboxtype; + model.Fixturestatus = item.Fixturestatus; + model.Production = item.Production; + model.CuringTimeSettingValue = item.CuringTimeSettingValue; + if (item.Fixturestatus == 1)//停止 + { + _statusColor.Add("green"); + + } + else + { + _statusColor.Add("red"); + } + _fixtureName.Add(item.Fixtureboxtype); + _production.Add(item.Production); + _beat.Add(item.BoxBeat); + i = +item.Production; + } + + })); + } + catch (Exception ex) + { + log.Error("获取库存接口数据异常." + ex.Message); + } + finally + { + if (GetStoreTimer != null) + { + GetStoreTimer.Change(10000, Timeout.Infinite); + } + } } public async Task OldBoxFoamTypeOnLoad() { @@ -200,5 +260,41 @@ namespace Aucma.Core.OldBoxFoam.ViewModels set => SetProperty(ref _totle, value); } #endregion + + + /// + /// 将采集到的数据梳理 + /// + /// + public async void RealTimeFoamingTask(object? sender, ElapsedEventArgs e) + { + var list = _boxFoamPlanServices.QueryAsync().Result; + //根据夹具找箱型找货道,根据货道找物料 + var spaceList=await _oldBoxFoamTypeServices.QueryAsync(d=>d.Boxtype== mode); + if (spaceList.Count>0) + { + OldBoxFoamType type= spaceList.FirstOrDefault(); + BoxFoamPlan plan= list.FirstOrDefault(d=>d.MaterialCode== type.MaterialCode); + if (plan!=null) + { + plan.CompleteAmount = plan.CompleteAmount + 1; + + _boxFoamPlanServices.UpdateAsync(plan); + } + } + } + + public CurrentTeamTimeView GetTeamHour() + { + DateTime now = DateTime.Now; + var list = _sysUserInfoServices.GetTeamData().Result; + if (list != null) + { + //var obj = list.FirstOrDefault().EndTime.ToString("HH:mm"); + var view = list.FirstOrDefault(); + return view; + } + return null; + } } } diff --git a/Aucma.Core.OldBoxFoam/appsettings.json b/Aucma.Core.OldBoxFoam/appsettings.json index ee789b85..c7a86e37 100644 --- a/Aucma.Core.OldBoxFoam/appsettings.json +++ b/Aucma.Core.OldBoxFoam/appsettings.json @@ -98,7 +98,7 @@ "ID": 1, "Name": "OldBoxFoam", "JobGroup": "DEFAULT", - "Cron": "*/5 * * * * ?", + "Cron": "*/15 * * * * ?", "AssemblyName": "Admin.Core.Tasks", "ClassName": "Job_OldBoxFoam_Quartz", "Remark": "执行老发泡线任务调度系统", @@ -108,7 +108,29 @@ "TriggerType": 1, "IntervalSecond": 5, "CycleRunTimes": 1, - "IsStart": true, + "IsStart": false, + "JobParams": null, + "DelFlag": false, + "CreateBy": "admin", + "CreateTime": "2023-04-23 11:09:22.0000000", + "UpdateBy": "admin", + "UpdateTime": "2023-08-07 16:45:45.0530000" + }, + { + "ID": 2, + "Name": "OldBoxFoam", + "JobGroup": "DEFAULT", + "Cron": "*/15 * * * * ?", + "AssemblyName": "Admin.Core.Tasks", + "ClassName": "Job_OldBoxFoam2_Quartz", + "Remark": "执行老发泡线任务调度系统", + "RunTimes": 3881, + "BeginTime": "2023-04-23 11:08:50.000", + "EndTime": "2123-12-01 16:45:30.000", + "TriggerType": 1, + "IntervalSecond": 5, + "CycleRunTimes": 1, + "IsStart": false, "JobParams": null, "DelFlag": false, "CreateBy": "admin", @@ -161,6 +183,9 @@ }, "Middleware": { "QuartzNetJob": { + "Enabled": false + }, + "AucamTask": { "Enabled": true }, "Plc": { diff --git a/Aucma.Core.Tasks/AucamTaskService.cs b/Aucma.Core.Tasks/AucamTaskService.cs index 30769d92..33090fb6 100644 --- a/Aucma.Core.Tasks/AucamTaskService.cs +++ b/Aucma.Core.Tasks/AucamTaskService.cs @@ -2,7 +2,7 @@ using Admin.Core.IService; using Admin.Core.Model; using Admin.Core.Model.Model_New; -using Aucma.Core.PLc; +using Aucma.Core.HwPLc; using log4net; using System.Timers; @@ -13,35 +13,40 @@ namespace Aucma.Core.Tasks /// public class AucamTaskService : IAucamTaskService { - #region 钣金任务 /// - /// 实时任务信息-每日产量 + /// 老发泡线更新事件 /// - public delegate Task SmEverDayDelegate(); - public static event SmEverDayDelegate SmEverDayDelegateEvent; + /// + public delegate Task RefreshOldBoxFoamDataDelegate(List list); + public static event RefreshOldBoxFoamDataDelegate RefreshOldBoxFoamDataDelegateEvent; - /// - /// 实时任务信息-展示 - /// - public delegate Task SmShowDelegate(ExecutePlanInfo info); - public static event SmShowDelegate SmShowDelegateEvent; - #endregion + private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(AucamTaskService)); - private static readonly log4net.ILog log = LogManager.GetLogger(typeof(AucamTaskService)); - private readonly ISmTaskExecutionServices _smTaskExecutionServices; - private readonly ISMProductionCompletionRecordServices _smProductionCompletionRecordServices; - - public AucamTaskService(ISmTaskExecutionServices smTaskExecutionServices, ISMProductionCompletionRecordServices smProductionCompletionRecordServices, - IBoxFoamDataServices oldBoxFoamDataServices) - { - _smTaskExecutionServices= smTaskExecutionServices; - _smProductionCompletionRecordServices = smProductionCompletionRecordServices; + 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(2000); - System.Timers.Timer timer2 = new System.Timers.Timer(2000); - System.Timers.Timer timer3 = new System.Timers.Timer(2000); + 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;//后板标识 @@ -58,11 +63,16 @@ namespace Aucma.Core.Tasks timer2.Enabled = true; timer2.Start(); - timer3.Elapsed += new System.Timers.ElapsedEventHandler(RealTimeTask); + 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 钣金——前板 @@ -75,167 +85,4268 @@ namespace Aucma.Core.Tasks { if (qFlay) { - qFlay=false; - //执行存盘操作 - var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("FrontPlatePlc")); - if (obj.plc.IsConnected) - { - var val = obj.plc.ReadInt16("M110");//任务结束信号存盘 - if (val == 1) - { - SmTaskExecution smTask = _smTaskExecutionServices.FirstAsync(d=>d.IsExec==1).Result; - SMProductionCompletionRecord sm=new SMProductionCompletionRecord(); - sm.SmPlanid = smTask.TaskCode; - sm.SmProductcode = smTask.MaterialCode; - sm.SmProductname = smTask.MaterialName; - sm.SmProductiontype = 0; - sm.SmProductivetime =DateTime.Now; - - int result = _smProductionCompletionRecordServices.AddAsync(sm).Result; - if (result>0) - { - bool saveDb = obj.plc.WriteInt16("M111", "1");//存盘完成信号 - if (saveDb) - { - Console.WriteLine("前板完成"); - qFlay = true; - //刷新计划数、小时数据、型号统计数据 - Console.WriteLine("执行刷新任务执行界面"); - Console.WriteLine("执行每日刷新界面"); - Console.WriteLine("执行型号刷新界面"); - Console.WriteLine("执行实时任务刷新界面"); - } - } - else - { - qFlay = true; - } - } + qFlay = false; + try + { + GetData(); + qFlay = true; + } + catch (Exception) + { + + throw; } + finally + { + //List old = _oldBoxFoamDataServices.QueryAsync().Result; + //RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + } + + } } #endregion - #region 钣金——后板 + #region 钣金——前板 /// - /// 钣金——后板 + /// 钣金——前板 /// /// /// private void Run2(object? sender, ElapsedEventArgs e) { - if (hFlay) + if (qFlay) { - hFlay = false; - //执行存盘操作 - var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("RearPanelPLC")); - if (obj.plc.IsConnected) - { - var val = obj.plc.ReadInt16("M101");//任务结束信号存盘 - if (val == 1) - { - SmTaskExecution smTask = _smTaskExecutionServices.FirstAsync(d => d.IsExec == 1).Result; - SMProductionCompletionRecord sm = new SMProductionCompletionRecord(); - sm.SmPlanid = smTask.TaskCode; - sm.SmProductcode = smTask.MaterialCode; - sm.SmProductname = smTask.MaterialName; - sm.SmProductiontype = 0; - sm.SmProductivetime = DateTime.Now; - - int result = _smProductionCompletionRecordServices.AddAsync(sm).Result; - if (result > 0) - { - bool saveDb = obj.plc.WriteInt16("M102", "1");//存盘完成信号 - if (saveDb) - { - Console.WriteLine("后板完成"); - hFlay = true; - //刷新计划数、小时数据、型号统计数据 - Console.WriteLine("执行刷新任务执行界面"); - Console.WriteLine("执行每日刷新界面"); - Console.WriteLine("执行型号刷新界面"); - Console.WriteLine("执行实时任务刷新界面"); - } - } - else - { - hFlay = true; - } - } + qFlay = false; + try + { + GetData2(); + qFlay = true; + } + catch (Exception) + { + qFlay = true; + throw; + } + finally + { + //List old = _oldBoxFoamDataServices.QueryAsync().Result; + //RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); } + + } + } #endregion - #region 钣金—实时任务列表 + #region 钣金——前板 /// - /// 钣金—实时任务列表 + /// 钣金——前板 /// /// /// - private void RealTimeTask(object? sender, ElapsedEventArgs e) + private void Run3(object? sender, ElapsedEventArgs e) { - var execTask = _smTaskExecutionServices.FirstAsync(d => d.IsExec == 0&&d.TaskSort==d.TaskSort).Result; - if (execTask.FrontPlateAmount == execTask.RearPanelAmount) + if (qFlay) { - execTask.IsExec = 2; - execTask.CompleteAmount = execTask.FrontPlateAmount; - bool r= _smTaskExecutionServices.UpdateAsync(execTask).Result; - if (r) - { - var obj = _smTaskExecutionServices.QueryAsync(d => d.IsExec == 0).Result; - int maxId = obj.Max(d => d.TaskSort); - var task = obj.SingleOrDefault(d => d.IsExec == 0 && d.TaskSort == maxId); - if (task == null) return; - task.IsExec=1; - bool exec= _smTaskExecutionServices.UpdateAsync(task).Result; - //执行刷新任务执行界面 - Console.WriteLine("执行刷新任务执行界面"); - Console.WriteLine("执行每日刷新界面"); - Console.WriteLine("执行型号刷新界面"); - Console.WriteLine("执行实时任务刷新界面"); + qFlay = false; + try + { + GetData3(); + qFlay = true; + } + catch (Exception) + { + qFlay = true; + throw; } + finally + { + //List old = _oldBoxFoamDataServices.QueryAsync().Result; + //RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + } + + } - Console.WriteLine("实时任务列表"); - } - #endregion - #region 实施当日产量和型号统计 - public void Run() - { - //SmEverDayDelegateEvent?.Invoke(); } + #endregion - #region 实时计划显示 - public void RealTimePlanRun() + #region 钣金——前板 + /// + /// 钣金——前板 + /// + /// + /// + private void Run4(object? sender, ElapsedEventArgs e) { - //var model = _taskExecutionServices.FirstAsync(d => d.ExecuteStatus == 2).Result; - //SmShowDelegateEvent?.Invoke(model); + if (qFlay) + { + qFlay = false; + try + { + GetData4(); + qFlay = true; + } + catch (Exception) + { + qFlay = true; + throw; + } + finally + { + List old = _oldBoxFoamDataServices.QueryAsync().Result; + RefreshOldBoxFoamDataDelegateEvent?.Invoke(old); + } + + + } + } + #endregion - #region 任务完成 - public void CompleteRun() + public async void GetData() { - var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("后板Plc")); - if (obj == null) return; - - var val = obj.plc.ReadInt32("M100");//任务结束信号存盘 - if (val == 1) + Console.WriteLine(DateTime.Now.ToString("hh:mm:ss")); + try { - //1、存储当日完成记录表、计算节拍信息 + 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; + } - //2、更新界面计划执行、当日产量、型号统计、计划列表 + #endregion - //3、更新日志记录 + 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 - //4、更新数据统计列表 + #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; } - #endregion } } diff --git a/Aucma.Core.Tasks/Aucma.Core.Tasks.csproj b/Aucma.Core.Tasks/Aucma.Core.Tasks.csproj index 6abf5f69..cda25863 100644 --- a/Aucma.Core.Tasks/Aucma.Core.Tasks.csproj +++ b/Aucma.Core.Tasks/Aucma.Core.Tasks.csproj @@ -9,7 +9,7 @@ - + diff --git a/Aucma.Core.Tasks/CommTask/Job_BoxFoamOutStoreTask.cs b/Aucma.Core.Tasks/CommTask/Job_BoxFoamOutStoreTask.cs index 5bd91088..ede3a1d7 100644 --- a/Aucma.Core.Tasks/CommTask/Job_BoxFoamOutStoreTask.cs +++ b/Aucma.Core.Tasks/CommTask/Job_BoxFoamOutStoreTask.cs @@ -1,7 +1,7 @@ using Admin.Core.Common; using Admin.Core.IService; using Admin.Core.Model; -using Aucma.Core.PLc; +using Aucma.Core.HwPLc; using log4net; using System; using System.Linq; diff --git a/Aucma.Core.Tasks/CommTask/Job_DoorFoamTask.cs b/Aucma.Core.Tasks/CommTask/Job_DoorFoamTask.cs index 803620e6..edbe797c 100644 --- a/Aucma.Core.Tasks/CommTask/Job_DoorFoamTask.cs +++ b/Aucma.Core.Tasks/CommTask/Job_DoorFoamTask.cs @@ -1,5 +1,5 @@ using Admin.Core.IService; -using Aucma.Core.PLc; +using Aucma.Core.HwPLc; using log4net; /// diff --git a/Aucma.Core.Tasks/CommTask/Job_PerfusionTask.cs b/Aucma.Core.Tasks/CommTask/Job_PerfusionTask.cs index 9b8d79f4..9e8235d4 100644 --- a/Aucma.Core.Tasks/CommTask/Job_PerfusionTask.cs +++ b/Aucma.Core.Tasks/CommTask/Job_PerfusionTask.cs @@ -1,6 +1,6 @@ using Admin.Core.IService; using Admin.Core.Model; -using Aucma.Core.PLc; +using Aucma.Core.HwPLc; using log4net; /// diff --git a/Aucma.Core.Tasks/CommTask/Job_SheetMetalTask.cs b/Aucma.Core.Tasks/CommTask/Job_SheetMetalTask.cs index 57700be0..949a5cfa 100644 --- a/Aucma.Core.Tasks/CommTask/Job_SheetMetalTask.cs +++ b/Aucma.Core.Tasks/CommTask/Job_SheetMetalTask.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using Admin.Core.IRepository; using Admin.Core.Model.Model_New; using System.Collections.Generic; -using Aucma.Core.PLc; +using Aucma.Core.HwPLc; using System.Linq; using Admin.Core.Model;