From 0667914e1cdaf72dfd8ab10a485435c35aa815ed Mon Sep 17 00:00:00 2001 From: "liulb@mesnac.com" Date: Tue, 26 Dec 2023 17:11:39 +0800 Subject: [PATCH] new --- .../Service_New/BaseSpaceInfoServices.cs | 1 - .../QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs | 7 ++-- .../QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs | 41 +++++++++++-------- .../ViewModels/FoamMonitorPageViewModel.cs | 14 ++----- .../Views/OldBoxFoamPageView.xaml | 4 +- Aucma.Core.OldBoxFoam/appsettings.json | 8 ++-- Aucma.Core.RunPlc/RunPlcService.cs | 2 +- .../ViewModels/MaterialStatisticsViewModel.cs | 2 + .../ViewModels/QuantityIssuedViewModel.cs | 27 ++++++++---- Aucma.Core.SheetMetal/appsettings.json | 16 ++++---- Aucma.Core.Tasks/AucamTaskService.cs | 5 +-- 11 files changed, 69 insertions(+), 58 deletions(-) diff --git a/Admin.Core.Service/Service_New/BaseSpaceInfoServices.cs b/Admin.Core.Service/Service_New/BaseSpaceInfoServices.cs index a12444d1..cea2a248 100644 --- a/Admin.Core.Service/Service_New/BaseSpaceInfoServices.cs +++ b/Admin.Core.Service/Service_New/BaseSpaceInfoServices.cs @@ -241,7 +241,6 @@ namespace Admin.Core.Service List spaceInfos = null; try { - //spaceInfos = _mesRepository.GetList(x => x.storeCode == storeCode).ToList(); var baseSpaceInfoList = await _dal.QueryAsync(); var BaseBomInfoList = await _baseBomInfoRepository.QueryAsync(); spaceInfos = (from s in baseSpaceInfoList diff --git a/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs b/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs index 7663b7b5..3784cacd 100644 --- a/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs +++ b/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs @@ -22,6 +22,7 @@ namespace Admin.Core.Tasks private static readonly log4net.ILog logHelper = LogManager.GetLogger(typeof(Job_BoxFoamData_Quartz)); private readonly IBoxFoamDataServices _boxFoamDataServices; private readonly IOldBoxFoamDataServices _oldBoxFoamDataServices; + public Job_BoxFoamData_Quartz(ISysTasksQzService SysTasksQzService, ISysJobLogService sysJobLogService, IBoxFoamDataServices boxFoamDataServices, IOldBoxFoamDataServices oldBoxFoamDataServices) { @@ -33,7 +34,7 @@ namespace Admin.Core.Tasks public async Task Execute(IJobExecutionContext context) { await ExecuteJob(context, async () => await Run(context)); - await ExecuteJob(context, async () => await OldBoxFoamDataRun(context)); + await ExecuteJob(context, async () => await BoxFoamDataRun(context)); } public async Task Run(IJobExecutionContext context) @@ -41,7 +42,7 @@ namespace Admin.Core.Tasks await SaveData(); } - public async Task OldBoxFoamDataRun(IJobExecutionContext context) + public async Task BoxFoamDataRun(IJobExecutionContext context) { await SaveOldBoxFoamData(); } @@ -58,7 +59,7 @@ namespace Admin.Core.Tasks //扫描入库信号,入库完成 try { - var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("发泡Plc")); + var obj = PlcHelper.siemensList.FirstOrDefault(d => d.EquipName.Equals("Plc")); if (obj.plc.IsConnected) { var taskList = await _boxFoamDataServices.QueryAsync(); diff --git a/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs b/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs index 98eadbf0..086ca77e 100644 --- a/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs +++ b/Admin.Core.Tasks/QuartzNet/Jobs/Job_OldBoxFoam_Quartz.cs @@ -425,7 +425,7 @@ namespace Admin.Core.Tasks } else { - item.Production = obj.plc.ReadInt16("D181"); + item.Production = objProduction.plc.ReadInt16("D181"); } } if (item.ObjId == 2) @@ -457,9 +457,9 @@ namespace Admin.Core.Tasks { item.Production = 0; } - else + else if (objProduction != null&& objProduction.plc.IsConnected) { - item.Production = obj.plc.ReadInt16("D183"); + item.Production = objProduction.plc.ReadInt16("D183"); } } if (item.ObjId == 3) @@ -482,6 +482,7 @@ namespace Admin.Core.Tasks { item.Fixturestatus = "停止"; } + item.CuringTimeSettingValue = obj.plc.ReadInt16("D912").ToString(); item.ActualValue = obj.plc.ReadInt16("T23").ToString(); item.UpdatedTime = DateTime.Now; @@ -493,7 +494,7 @@ namespace Admin.Core.Tasks } else { - item.Production = obj.plc.ReadInt16("D184"); + item.Production = objProduction.plc.ReadInt16("D184"); } } if (item.ObjId == 4) @@ -504,25 +505,26 @@ namespace Admin.Core.Tasks { string type = $"{obj.plc.ReadInt16("D3144")}{obj.plc.ReadInt16("D3145")}"; item.Fixtureboxtype = type; + 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 (obj.plc.ReadBool("Y100")) + if (objStatus.plc.ReadBool("Y100")) { item.Fixturestatus = "手动"; } - if (obj.plc.ReadBool("Y101")) + if (objStatus.plc.ReadBool("Y101")) { item.Fixturestatus = "手动"; } - if (obj.plc.ReadBool("Y113")) + if (objStatus.plc.ReadBool("Y113")) { item.Fixturestatus = "停止"; } - item.Production = obj.plc.ReadInt16("D185"); + item.Production = objStatus.plc.ReadInt16("D185"); } } if (item.ObjId == 5) @@ -537,22 +539,23 @@ namespace Admin.Core.Tasks item.ActualValue = obj.plc.ReadInt16("T43").ToString(); item.UpdatedTime = DateTime.Now; } + var objStatus = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2")); - if (objStatus != null) + if (objStatus != null&& objStatus.plc.IsConnected) { - if (obj.plc.ReadBool("Y105")) + if (objStatus.plc.ReadBool("Y105")) { item.Fixturestatus = "手动"; } - if (obj.plc.ReadBool("Y106")) + if (objStatus.plc.ReadBool("Y106")) { item.Fixturestatus = "手动"; } - if (obj.plc.ReadBool("Y114")) + if (objStatus.plc.ReadBool("Y114")) { item.Fixturestatus = "停止"; } - item.Production = obj.plc.ReadInt16("D186"); + item.Production = objStatus.plc.ReadInt16("D186"); } } if (item.ObjId == 6) @@ -563,25 +566,27 @@ namespace Admin.Core.Tasks { string type = $"{obj.plc.ReadInt16("D3152")}{obj.plc.ReadInt16("D3143")}"; item.Fixtureboxtype = type; - item.ActualValue = obj.plc.ReadInt16("T53").ToString(); + item.CuringTimeSettingValue = obj.plc.ReadInt16("D915").ToString(); + item.UpdatedTime = DateTime.Now; } var objStatus = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldMelsecPlc2")); if (objStatus != null) { - if (obj.plc.ReadBool("Y10A")) + if (objStatus.plc.ReadBool("Y10A")) { item.Fixturestatus = "手动"; } - if (obj.plc.ReadBool("Y10B")) + if (objStatus.plc.ReadBool("Y10B")) { item.Fixturestatus = "手动"; } - if (obj.plc.ReadBool("Y115")) + if (objStatus.plc.ReadBool("Y115")) { item.Fixturestatus = "停止"; } - item.Production = obj.plc.ReadInt16("D187"); + item.ActualValue = objStatus.plc.ReadInt16("T53").ToString(); + item.Production = objStatus.plc.ReadInt16("D187"); } } diff --git a/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs index effedf03..0cef152f 100644 --- a/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs +++ b/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs @@ -28,14 +28,6 @@ namespace Aucma.Core.BoxFoam.ViewModels Task.WaitAll(InitEveryDayMethod(), InitData()); } - //public void InitStatus() - //{ - // for (int i = 0; i < 12; i++) - // { - // Color.Add("Red"); - // } - //} - #region 日产量 /// /// 每日生产 @@ -256,6 +248,7 @@ namespace Aucma.Core.BoxFoam.ViewModels } #endregion + #region 初始化发泡数据 /// /// 初始化发泡数据 @@ -290,7 +283,8 @@ namespace Aucma.Core.BoxFoam.ViewModels } - - } + + } + #endregion } } diff --git a/Aucma.Core.OldBoxFoam/Views/OldBoxFoamPageView.xaml b/Aucma.Core.OldBoxFoam/Views/OldBoxFoamPageView.xaml index f93485e5..76ff571f 100644 --- a/Aucma.Core.OldBoxFoam/Views/OldBoxFoamPageView.xaml +++ b/Aucma.Core.OldBoxFoam/Views/OldBoxFoamPageView.xaml @@ -95,8 +95,8 @@ - - + + diff --git a/Aucma.Core.OldBoxFoam/appsettings.json b/Aucma.Core.OldBoxFoam/appsettings.json index 4801744a..ff0f35fe 100644 --- a/Aucma.Core.OldBoxFoam/appsettings.json +++ b/Aucma.Core.OldBoxFoam/appsettings.json @@ -98,7 +98,7 @@ "ID": 1, "Name": "OldBoxFoam", "JobGroup": "DEFAULT", - "Cron": "*/15 * * * * ?", + "Cron": "*/10 * * * * ?", "AssemblyName": "Admin.Core.Tasks", "ClassName": "Job_OldBoxFoam_Quartz", "Remark": "执行老发泡线任务调度系统", @@ -178,19 +178,19 @@ "Id": 2, "EquipName": "OldMelsecPlc2", "IP": "10.10.93.152", - "Port": 5003 + "Port": 5002 }, { "Id": 3, "EquipName": "OldMelsecPlc3", "IP": "10.10.93.153", - "Port": 5004 + "Port": 5002 }, { "Id": 4, "EquipName": "OldMelsecPlc4", "IP": "10.10.93.154", - "Port": 5005 + "Port": 5002 } ], "IpRateLimiting": { diff --git a/Aucma.Core.RunPlc/RunPlcService.cs b/Aucma.Core.RunPlc/RunPlcService.cs index 9a9903e1..1b642520 100644 --- a/Aucma.Core.RunPlc/RunPlcService.cs +++ b/Aucma.Core.RunPlc/RunPlcService.cs @@ -76,7 +76,7 @@ namespace Aucma.Core.RunPlc int num = PlcHelper.melsecList.Count; for (int i = 1; i <= num; i++) { - var item = PlcHelper.melsecList.Where(c => c.Id ==1).FirstOrDefault(); + var item = PlcHelper.melsecList.Where(c => c.Id == i).FirstOrDefault(); if (item == null) continue; if (await item.plc.Read("M100")) { diff --git a/Aucma.Core.SheetMetal/ViewModels/MaterialStatisticsViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/MaterialStatisticsViewModel.cs index a05e290b..27d9753a 100644 --- a/Aucma.Core.SheetMetal/ViewModels/MaterialStatisticsViewModel.cs +++ b/Aucma.Core.SheetMetal/ViewModels/MaterialStatisticsViewModel.cs @@ -32,6 +32,8 @@ namespace Aucma.Core.SheetMetal.ViewModels //箱壳物料库存 ShellMaterialStockDataGrid = new ObservableCollection(); List shellList =await _baseSpaceInfoServices.GetSpaceInfosByStoreCode(shellStoreCode); + if (shellList == null) return; + shellList.OrderBy(x => x.ObjId); var shellResult = from m in shellList group m by m.MaterialType into g diff --git a/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs index f0fc9d1a..66609248 100644 --- a/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs +++ b/Aucma.Core.SheetMetal/ViewModels/QuantityIssuedViewModel.cs @@ -2,6 +2,7 @@ using Admin.Core.IService; using Admin.Core.Model; using Admin.Core.Service; +using Aucma.Core.HwPLc; using Aucma.Core.SheetMetal.Models; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; @@ -59,25 +60,29 @@ namespace Aucma.Core.SheetMetal.ViewModels private async Task PlanInfoTransmit() { var productPlanInfo = _PlanInfo; - if (productPlanInfo != null) { //下传到PLC string stationCode = Appsettings.app("StoreInfo", "StationCode"); var list = await _executePlanInfoServices.QueryAsync(d => d.ProductLineCode.Equals(stationCode)); + if (list==null) + { + MessageBox.Show("未查询到计划!", "系统提醒"); + return; + } ExecutePlanInfo task = new ExecutePlanInfo(); task.ExecutePlanCode = Guid.NewGuid().ToString(); task.ProductPlanCode = PlanInfo.PlanCode; task.OrderCode = PlanInfo.OrderCode; task.MaterialCode = PlanInfo.MaterialCode; task.MaterialName = PlanInfo.MaterialName; - task.ProductLineCode = "1001";//计划工位 + task.ProductLineCode = stationCode;//计划工位 if (list.Count == 0) task.ExecuteOrder = 1; if (list.Count != 0) task.ExecuteOrder = list.Max(d => d.ExecuteOrder) + 1; - task.ExecuteMethod = 1;//不做要求,系统自动确定 + task.ExecuteMethod = 2;//不做要求,系统自动确定 task.PlanAmount = Convert.ToInt32(TransmitAmount); task.CompleteAmount = 0; task.CreatedTime = DateTime.Now; @@ -86,16 +91,22 @@ namespace Aucma.Core.SheetMetal.ViewModels task.TaskCode = GetMaxCodeAsync(); var exec= await _executePlanInfoServices.FirstAsync(d=>d.ExecuteStatus==2&& d.ProductLineCode.Equals(stationCode)); if (exec==null) - { - task.ExecuteStatus =2; - } + task.ExecuteStatus = 2; else - { task.ExecuteStatus = 1; - } + var result = await _executePlanInfoServices.AddAsync(task); if (result > 0) { + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("OldTypePlc1")); + if (obj == null) { return; } + if (obj.plc.IsConnected) + { + obj.plc.WriteInt16("D8000", _TransmitAmount);//计划编号 + obj.plc.WriteInt16("D8009", _TransmitAmount);//计划编号 + obj.plc.WriteInt16("D8050", _TransmitAmount);//计划数量 + obj.plc.ReadInt16("D8021");//应答字 + } MessageBox.Show("计划拆分成功!", "系统提醒"); WeakReferenceMessenger.Default.Send("Refresh");//刷新窗口 } diff --git a/Aucma.Core.SheetMetal/appsettings.json b/Aucma.Core.SheetMetal/appsettings.json index 05068624..1c94b625 100644 --- a/Aucma.Core.SheetMetal/appsettings.json +++ b/Aucma.Core.SheetMetal/appsettings.json @@ -114,24 +114,24 @@ } }, "StoreInfo": { - "StationCode": "1001", "StationName": "箱壳前后板生产", - "ShellStoreCode": "1001", - "LinerStoreCode": "1001", - "FoamBeforeStoreCode": "1001", + "StationCode": "1001", + "ShellStoreCode": "XKJCK-001", + "LinerStoreCode": "NDJCK-001", + "FoamBeforeStoreCode": "PBSCK-001", "ProductLineCode": "1001" }, "PLCServer": [ { "Id": 1, - "EquipName": "后板Plc", - "IP": "127.0.0.1", + "EquipName": "FrontPlatePlc", + "IP": "10.10.91.1", "Port": 6000 }, { "Id": 2, - "EquipName": "U壳PLC", - "IP": "127.0.0.1", + "EquipName": "RearPanelPLC", + "IP": "10.10.91.12", "Port": 6000 } ] diff --git a/Aucma.Core.Tasks/AucamTaskService.cs b/Aucma.Core.Tasks/AucamTaskService.cs index 3653f267..62433103 100644 --- a/Aucma.Core.Tasks/AucamTaskService.cs +++ b/Aucma.Core.Tasks/AucamTaskService.cs @@ -31,7 +31,6 @@ namespace Aucma.Core.Tasks private readonly ISmTaskExecutionServices _smTaskExecutionServices; private readonly ISMProductionCompletionRecordServices _smProductionCompletionRecordServices; - public AucamTaskService(ISmTaskExecutionServices smTaskExecutionServices, ISMProductionCompletionRecordServices smProductionCompletionRecordServices, IOldBoxFoamDataServices oldBoxFoamDataServices) { @@ -78,7 +77,7 @@ namespace Aucma.Core.Tasks { qFlay=false; //执行存盘操作 - var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("前板Plc")); + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("FrontPlatePlc")); if (obj.plc.IsConnected) { var val = obj.plc.ReadInt16("M110");//任务结束信号存盘 @@ -131,7 +130,7 @@ namespace Aucma.Core.Tasks { hFlay = false; //执行存盘操作 - var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("后板Plc")); + var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("RearPanelPLC")); if (obj.plc.IsConnected) { var val = obj.plc.ReadInt16("M101");//任务结束信号存盘