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;