diff --git a/Admin.Core.Api/Admin.Core.Model.xml b/Admin.Core.Api/Admin.Core.Model.xml index 7a3c6968..751d7ed6 100644 --- a/Admin.Core.Api/Admin.Core.Model.xml +++ b/Admin.Core.Api/Admin.Core.Model.xml @@ -1556,6 +1556,11 @@ 主键标识 + + + 所属产线 + + 拆分的SAP BOM 信息 diff --git a/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs b/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs index 3fd21514..07001cf8 100644 --- a/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs +++ b/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs @@ -55,7 +55,17 @@ 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; } + if (obj.plc.IsConnected) + { + ushort len =Convert.ToUInt16("48"); + byte[] bt = obj.plc.ReadBytes("D2010", len); + readbyte.Content.Skip(2).Take(4).ToArray() + (int)byteTransform.TransSingle(readbyte.Content.Skip(2).Take(4).ToArray(), 0); + var t= bt; + } + //await ExecuteJob(context, async () => await OldBoxFoamDataRun(context));//发泡线 //await ExecuteJob(context, async () => await OldBoxFoamStoreDataRun(context)); } /// @@ -70,7 +80,7 @@ namespace Admin.Core.Tasks public async Task OldBoxFoamStoreDataRun(IJobExecutionContext context) { - await OldBoxFoamStoreData(); + await OldBoxFoamStoreData(); } #region PLC 老泡前库任务处理表 @@ -84,7 +94,7 @@ namespace Admin.Core.Tasks { try { - var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldTypePlc1")); + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc1")); if (obj == null) { return; } if (obj.plc.IsConnected) { diff --git a/Aucma.Core.HwPLc/IPlc.cs b/Aucma.Core.HwPLc/IPlc.cs index cc16c35f..d6722fe0 100644 --- a/Aucma.Core.HwPLc/IPlc.cs +++ b/Aucma.Core.HwPLc/IPlc.cs @@ -33,6 +33,12 @@ namespace Aucma.Core.HwPLc /// byte[] ReadBytes(string address, ushort len); /// + /// 读取 + /// + /// + /// + byte[] Read(string address, ushort len); + /// /// 读取bool /// /// diff --git a/Aucma.Core.HwPLc/Impl/MelsecPlc.cs b/Aucma.Core.HwPLc/Impl/MelsecPlc.cs index 2e594c86..6e1f962d 100644 --- a/Aucma.Core.HwPLc/Impl/MelsecPlc.cs +++ b/Aucma.Core.HwPLc/Impl/MelsecPlc.cs @@ -502,6 +502,29 @@ namespace Aucma.Core.HwPLc } return false; } + + #endregion + + /// + /// 读取byte + /// + /// 地址 + /// 长度 + /// + public byte[] Read(string address, ushort len) + { + OperateResult readbyte = melsecMcNet.Read(address, len); + if (readbyte.IsSuccess) + { + IsConnected = true; + return readbyte.Content; + } + else + { + IsConnected = false; + return null; + } + } } } diff --git a/Aucma.Core.HwPLc/Impl/SiemensPlc.cs b/Aucma.Core.HwPLc/Impl/SiemensPlc.cs index fbb817e9..3b7fb5af 100644 --- a/Aucma.Core.HwPLc/Impl/SiemensPlc.cs +++ b/Aucma.Core.HwPLc/Impl/SiemensPlc.cs @@ -501,5 +501,26 @@ namespace Aucma.Core.HwPLc } #endregion + + /// + /// 读取byte + /// + /// 地址 + /// 长度 + /// + public byte[] Read(string address, ushort len) + { + OperateResult readbyte = siemensS7Net.Read(address, len); + if (readbyte.IsSuccess) + { + IsConnected = true; + return readbyte.Content; + } + else + { + IsConnected = false; + return null; + } + } } } diff --git a/Aucma.Core.PLc/IPlc.cs b/Aucma.Core.PLc/IPlc.cs index a89b3ad5..f453720c 100644 --- a/Aucma.Core.PLc/IPlc.cs +++ b/Aucma.Core.PLc/IPlc.cs @@ -33,6 +33,12 @@ namespace Aucma.Core.PLc /// byte[] ReadBytes(string address); /// + /// 读取 + /// + /// + /// + byte[] Read(string address, ushort len); + /// /// 读取bool /// /// diff --git a/Aucma.Core.PLc/Impl/MelsecPlc.cs b/Aucma.Core.PLc/Impl/MelsecPlc.cs index 0b70b406..edf78385 100644 --- a/Aucma.Core.PLc/Impl/MelsecPlc.cs +++ b/Aucma.Core.PLc/Impl/MelsecPlc.cs @@ -505,5 +505,26 @@ namespace Aucma.Core.PLc return false; } #endregion + + /// + /// 读取byte + /// + /// 地址 + /// 长度 + /// + public byte[] Read(string address, ushort len) + { + OperateResult readbyte = melsecMcNet.Read(address, len); + if (readbyte.IsSuccess) + { + IsConnected = true; + return readbyte.Content; + } + else + { + IsConnected = false; + return null; + } + } } } diff --git a/Aucma.Core.PLc/Impl/SiemensPlc.cs b/Aucma.Core.PLc/Impl/SiemensPlc.cs index c5e41131..d235eb9f 100644 --- a/Aucma.Core.PLc/Impl/SiemensPlc.cs +++ b/Aucma.Core.PLc/Impl/SiemensPlc.cs @@ -499,5 +499,26 @@ namespace Aucma.Core.PLc return false; } #endregion + + /// + /// 读取byte + /// + /// 地址 + /// 长度 + /// + public byte[] Read(string address, ushort len) + { + OperateResult readbyte = siemensS7Net.Read(address, len); + if (readbyte.IsSuccess) + { + IsConnected = true; + return readbyte.Content; + } + else + { + IsConnected = false; + return null; + } + } } } diff --git a/Aucma.Core.RunPlc/RunPlcService.cs b/Aucma.Core.RunPlc/RunPlcService.cs index 795e67f7..ce447895 100644 --- a/Aucma.Core.RunPlc/RunPlcService.cs +++ b/Aucma.Core.RunPlc/RunPlcService.cs @@ -44,10 +44,11 @@ namespace Aucma.Core.RunPlc private static Task StartMelsecMcPlcServer() { - // string ip = Appsettings.app("Middleware", "Scanner1", "Ip"); var allPlcServices = Appsettings.app("PLCServer").ToList(); - var list = allPlcServices.Where(d => d.PlcType=="Melsec" && d.Enabled == true).ToList(); - foreach (var item in list) + if (allPlcServices == null) return Task.CompletedTask; + var list = allPlcServices.FindAll(d => d.PlcType == "Melsec" && d.Enabled == true); + + foreach (var item in allPlcServices) { PlcModel model = new PlcModel(); model.Id = item.Id; @@ -63,11 +64,10 @@ namespace Aucma.Core.RunPlc private static Task StartSiemensPlcServer() { - var allPlcServices = Appsettings.app("PLCServer").ToList(); - //if (allPlcServices == null) return Task.CompletedTask; - // var list1 = allPlcServices.Where(d => d.PlcType.Equals("Siemens") && d.Enabled == true); - // if (list1 == null) return Task.CompletedTask; - var list = allPlcServices.Where(d => d.PlcType.Equals("Siemens") && d.Enabled == true); + List allPlcServices = Appsettings.app("PLCServer").ToList(); + if (allPlcServices == null) return Task.CompletedTask; + var list = allPlcServices.FindAll(d => d.PlcType=="Siemens" && d.Enabled == true); + foreach (var item in list) { PlcModel model = new PlcModel();