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 44251bf1..b40e9df5 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
@@ -852,6 +852,9 @@
},
"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.Scanner\\Aucma.Core.Scanner.csproj": {
+ "projectPath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Aucma.Core.Scanner\\Aucma.Core.Scanner.csproj"
}
}
}
diff --git a/Admin.Core.Api/obj/project.assets.json b/Admin.Core.Api/obj/project.assets.json
index 094ac07c..eec9a1f0 100644
--- a/Admin.Core.Api/obj/project.assets.json
+++ b/Admin.Core.Api/obj/project.assets.json
@@ -4158,6 +4158,7 @@
"Admin.Core.Model": "1.0.0",
"Admin.Core.Service": "1.0.0",
"Aucma.Core.PLc": "1.0.0",
+ "Aucma.Core.Scanner": "1.0.0",
"Quartz": "3.3.3"
},
"compile": {
diff --git a/Admin.Core.Api/obj/project.nuget.cache b/Admin.Core.Api/obj/project.nuget.cache
index 11944813..f120394d 100644
--- a/Admin.Core.Api/obj/project.nuget.cache
+++ b/Admin.Core.Api/obj/project.nuget.cache
@@ -1,6 +1,6 @@
{
"version": 2,
- "dgSpecHash": "lpAdUZlNwICgoI0zWeab6lGK6byqEln8T/RCXWsmZhSAVbwyy2BWnrJmPSJkkkJ4x1Ma6659From8jGreg2RJA==",
+ "dgSpecHash": "uEPuLSS/sVT2PWbiKIvEEH0CSwxk2oZpc/IrO17Q6Rf9Pipii14coKMF91zQ8TRFgG3IsJy413J+wCgHBjUbmQ==",
"success": true,
"projectFilePath": "D:\\Project\\gitea\\AUCMA\\SCADA\\Admin.Core.Api\\Admin.Core.Api.csproj",
"expectedPackageFiles": [
diff --git a/Admin.Core.Common/Helper/DESProvider.cs b/Admin.Core.Common/Helper/DESProvider.cs
index dee5a5de..c6e8feef 100644
--- a/Admin.Core.Common/Helper/DESProvider.cs
+++ b/Admin.Core.Common/Helper/DESProvider.cs
@@ -14,9 +14,11 @@ namespace Admin.Core.Common
private DESProvider()
{
}
+
//默认的初始化密钥
private static string key = "Microsoft";
+ #region 对称加密解密的密钥
///
/// 对称加密解密的密钥
///
@@ -31,6 +33,9 @@ namespace Admin.Core.Common
key = value;
}
}
+
+ #endregion
+
#region 加密
///
/// 采用DES算法对字符串加密
@@ -105,6 +110,7 @@ namespace Admin.Core.Common
}
}
#endregion
+
#region 解密
public static string DecryptString(string decryptString, string key)
{
@@ -168,6 +174,8 @@ namespace Admin.Core.Common
}
}
#endregion
+
+ #region 检查密钥或初始化向量的长度,如果不是8的倍数或长度大于64则截取前8个元素
///
/// 检查密钥或初始化向量的长度,如果不是8的倍数或长度大于64则截取前8个元素
///
@@ -192,6 +200,8 @@ namespace Admin.Core.Common
return byteArray;
}
}
- }
+ #endregion
+
+ }
}
diff --git a/Admin.Core.Model/Model_New/SmTaskExecution.cs b/Admin.Core.Model/Model_New/SmTaskExecution.cs
index ad656805..d6ced3a2 100644
--- a/Admin.Core.Model/Model_New/SmTaskExecution.cs
+++ b/Admin.Core.Model/Model_New/SmTaskExecution.cs
@@ -52,7 +52,16 @@ namespace Admin.Core.Model.Model_New
///
[SugarColumn(ColumnName = "COMPLETE_AMOUNT")]
public int CompleteAmount { get; set; }
-
+ ///
+ /// 前板数量
+ ///
+ [SugarColumn(ColumnName = "FRONTPLATE_AMOUNT")]
+ public int FrontPlateAmount { get; set; }
+ ///
+ /// 后板数量
+ ///
+ [SugarColumn(ColumnName = "REARPANEL_AMOUNT")]
+ public int RearPanelAmount { get; set; }
///
/// 开始时间
///
@@ -71,7 +80,7 @@ namespace Admin.Core.Model.Model_New
[SugarColumn(ColumnName = "CREATE_TIME")]
public DateTime CreateTime { get; set; }
///
- /// 是否执行中
+ /// 是否执行中:1-执行,2-完成
///
[SugarColumn(ColumnName = "IS_EXEC")]
public int IsExec { get; set; }
diff --git a/Admin.Core.RealTimeService/Startup.cs b/Admin.Core.RealTimeService/Startup.cs
index a92acbd9..56f2da63 100644
--- a/Admin.Core.RealTimeService/Startup.cs
+++ b/Admin.Core.RealTimeService/Startup.cs
@@ -81,8 +81,7 @@ namespace Admin.Core.RealTimeService
{
// ʹþ̬ļ
app.UseStaticFiles();
-
- app.AucmaTaskMildds(aucamTaskService);
+ app.AucmaTaskMildds(aucamTaskService);
}
#region ע
diff --git a/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs b/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs
index 05309383..6de7c0b6 100644
--- a/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs
+++ b/Admin.Core.Tasks/QuartzNet/Jobs/Job_BoxFoamData_Quartz.cs
@@ -228,6 +228,5 @@ namespace Admin.Core.Tasks
return await Task.FromResult(item);
}
#endregion
-
}
}
diff --git a/Aucma.Core.BoxFoam/ViewModels/AfterFoamingPageModelView.cs b/Aucma.Core.BoxFoam/ViewModels/AfterFoamingPageModelView.cs
index a1a769e6..265a0541 100644
--- a/Aucma.Core.BoxFoam/ViewModels/AfterFoamingPageModelView.cs
+++ b/Aucma.Core.BoxFoam/ViewModels/AfterFoamingPageModelView.cs
@@ -33,6 +33,7 @@ namespace Aucma.Core.BoxFoam.ViewModels
string storeCode = Appsettings.app("StoreInfo", "AfterStoreCode");//泡前库code
var baseSpaceInfolist = await _baseSpaceInfoServices.QueryAsync(d => d.StoreCode.Equals(storeCode));//仓库
+ if (baseSpaceInfolist == null) return;
foreach (var item in baseSpaceInfolist)
{
diff --git a/Aucma.Core.BoxFoam/ViewModels/BeforeFoamingPageModelView.cs b/Aucma.Core.BoxFoam/ViewModels/BeforeFoamingPageModelView.cs
index 05941689..a2bfcaaa 100644
--- a/Aucma.Core.BoxFoam/ViewModels/BeforeFoamingPageModelView.cs
+++ b/Aucma.Core.BoxFoam/ViewModels/BeforeFoamingPageModelView.cs
@@ -42,6 +42,8 @@ namespace Aucma.Core.BoxFoam.ViewModels
string storeCode = Appsettings.app("StoreInfo", "BeforeStoreCode");//泡前库code
var baseSpaceInfolist = await _baseSpaceInfoServices.QueryAsync(d => d.StoreCode.Equals(storeCode));//仓库
+ if (baseSpaceInfolist == null) return;
+
Shapes.Clear();
foreach (var item in baseSpaceInfolist)
{
diff --git a/Aucma.Core.BoxFoam/ViewModels/FoamMachinesPageViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/FoamMachinesPageViewModel.cs
index b082c419..399758d0 100644
--- a/Aucma.Core.BoxFoam/ViewModels/FoamMachinesPageViewModel.cs
+++ b/Aucma.Core.BoxFoam/ViewModels/FoamMachinesPageViewModel.cs
@@ -32,6 +32,7 @@ namespace Aucma.Core.BoxFoam.ViewModels
int i = 1;
var list = await _boxLastShotRecordServices.QueryAsync();
+ if (list == null) return;
list.OrderByDescending(d => d.LastTime);
foreach (var item in list.Take(50))
{
diff --git a/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs
index 2a4117b0..effedf03 100644
--- a/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs
+++ b/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs
@@ -267,6 +267,7 @@ namespace Aucma.Core.BoxFoam.ViewModels
{
int total = 0;
var list = await _boxFoamDataServices.QueryAsync();
+ if (list == null) return;
foreach (var item in list)
{
if (item.BoxFixturestatus == 1) StatusColor.Add("Green");
diff --git a/Aucma.Core.BoxFoam/ViewModels/FoamPlanPageViewModel.cs b/Aucma.Core.BoxFoam/ViewModels/FoamPlanPageViewModel.cs
index 6945073e..5498f639 100644
--- a/Aucma.Core.BoxFoam/ViewModels/FoamPlanPageViewModel.cs
+++ b/Aucma.Core.BoxFoam/ViewModels/FoamPlanPageViewModel.cs
@@ -32,6 +32,7 @@ namespace Aucma.Core.BoxFoam.ViewModels
public async void InitData()
{
var task =await _boxFoamPlanServices.QueryAsync();
+ if (task == null) return;
task.OrderBy(d=>d.ObjId);
foreach (var item in task)
{
diff --git a/Aucma.Core.DoorFoam/ViewModels/IndexPageViewModel.cs b/Aucma.Core.DoorFoam/ViewModels/IndexPageViewModel.cs
index 06533179..f63dabbd 100644
--- a/Aucma.Core.DoorFoam/ViewModels/IndexPageViewModel.cs
+++ b/Aucma.Core.DoorFoam/ViewModels/IndexPageViewModel.cs
@@ -28,9 +28,9 @@ namespace Aucma.Core.DoorFoam.ViewModels
_doorFoamRecordServices = App.ServiceProvider.GetService();
//var state = _doorFoamRecordServices.GetConnectionState();
StationName = "门体发泡";
- MaterialName = "SC-AUCMA-农夫山泉,SC 门体";
- OrderNo = "8512365486";
- BeginTime = DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss");
+ //MaterialName = "";
+ //OrderNo = "";
+ //BeginTime = DateTime.Now.ToString("yyyy-mm-dd HH:mm:ss");
_=InitEveryDayMethodAsync();
}
diff --git a/Aucma.Core.PLc/Model/PlcModel.cs b/Aucma.Core.PLc/Model/PlcModel.cs
index ff241e56..1c76ebf0 100644
--- a/Aucma.Core.PLc/Model/PlcModel.cs
+++ b/Aucma.Core.PLc/Model/PlcModel.cs
@@ -1,6 +1,9 @@
namespace Aucma.Core.PLc
{
+ ///
+ /// PLC
+ ///
public class PlcModel
{
///
@@ -10,7 +13,7 @@ namespace Aucma.Core.PLc
///
/// 设备名称
///
- public string? EquipName { get; set; }
+ public string EquipName { get; set; }
///
/// 设备IP
///
diff --git a/Aucma.Core.Palletiz/App.xaml b/Aucma.Core.Palletiz/App.xaml
index 0b01cab3..3d880bf4 100644
--- a/Aucma.Core.Palletiz/App.xaml
+++ b/Aucma.Core.Palletiz/App.xaml
@@ -26,14 +26,14 @@
-
+
+
+
+
diff --git a/Aucma.Core.Palletiz/Views/MainWindow.xaml b/Aucma.Core.Palletiz/Views/MainWindow.xaml
index 11330809..0be308b1 100644
--- a/Aucma.Core.Palletiz/Views/MainWindow.xaml
+++ b/Aucma.Core.Palletiz/Views/MainWindow.xaml
@@ -60,12 +60,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs b/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs
index 52ff4386..352e36bf 100644
--- a/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs
+++ b/Aucma.Core.SheetMetal/ViewModels/IndexPageViewModel.cs
@@ -48,8 +48,8 @@ namespace Aucma.Core.SheetMetal.ViewModels
{
_taskExecutionPlanInfoServices = App.ServiceProvider.GetService();
StationName = Appsettings.app("StoreInfo", "StationName");
- Job_SheetMetalTask_Quartz.SmEverDayDelegateEvent += InitEveryDayMethod;
- Job_SheetMetalTask_Quartz.SmTaskDelegateEvent += UpdatePlanSHow;//计划内容展示
+ Job_SheetMetalTask_Quartz.SmEverDayDelegateEvent += InitEveryDayMethod;
+ Job_SheetMetalTask_Quartz.SmTaskDelegateEvent += UpdatePlanSHow;//计划内容展示
WeakReferenceMessenger.Default.Register(this, Recive);
Task.WaitAll(LoadData(), InitExecMethod());
@@ -180,9 +180,11 @@ namespace Aucma.Core.SheetMetal.ViewModels
{
string productLineCode = Appsettings.app("StoreInfo", "ProductLineCode");
var list = await _taskExecutionPlanInfoServices.QueryAsync(d => d.ProductLineCode.Contains(productLineCode));
+ if (list == null) return;
var execList = list.OrderBy(d => d.ExecuteOrder);
int i = 1;
string planType = string.Empty;
+
foreach (var item in execList)
{
TaskExecModel task = new TaskExecModel();
@@ -209,7 +211,7 @@ namespace Aucma.Core.SheetMetal.ViewModels
}
task.PlanType = planType;
task.TaskCode = item.TaskCode;
- task.ExecuteStatus= item.ExecuteStatus;//执行状态
+ task.ExecuteStatus = item.ExecuteStatus;//执行状态
PlanInfoDataGrid.Add(task);
i++;
diff --git a/Aucma.Core.Tasks/AucamTaskService.cs b/Aucma.Core.Tasks/AucamTaskService.cs
index 63082d42..e8de383a 100644
--- a/Aucma.Core.Tasks/AucamTaskService.cs
+++ b/Aucma.Core.Tasks/AucamTaskService.cs
@@ -1,4 +1,7 @@
using Admin.Core.Common;
+using Admin.Core.IService;
+using Admin.Core.Model;
+using Admin.Core.Model.Model_New;
using Aucma.Core.PLc;
using log4net;
using System.Timers;
@@ -6,18 +9,42 @@ using System.Timers;
namespace Aucma.Core.Tasks
{
///
- /// 钣金实时任务列表
+ /// 钣金任务列表
///
public class AucamTaskService : IAucamTaskService
{
- //private static readonly log4net.ILog log = LogManager.GetLogger(typeof(AucamTaskService));
- 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);
-
- bool qFlay=true;
- bool hFlay = true;
- public Task AucamTaskAsync()
+ #region 钣金任务
+ ///
+ /// 实时任务信息-每日产量
+ ///
+ public delegate Task SmEverDayDelegate();
+ public static event SmEverDayDelegate SmEverDayDelegateEvent;
+
+ ///
+ /// 实时任务信息-展示
+ ///
+ public delegate Task SmShowDelegate(ExecutePlanInfo info);
+ public static event SmShowDelegate SmShowDelegateEvent;
+ #endregion
+
+ private static readonly log4net.ILog log = LogManager.GetLogger(typeof(AucamTaskService));
+ private readonly ISmTaskExecutionServices _smTaskExecutionServices;
+ private readonly ISMProductionCompletionRecordServices _smProductionCompletionRecordServices;
+
+ public AucamTaskService(ISmTaskExecutionServices smTaskExecutionServices, ISMProductionCompletionRecordServices smProductionCompletionRecordServices)
+ {
+ _smTaskExecutionServices= smTaskExecutionServices;
+ _smProductionCompletionRecordServices = smProductionCompletionRecordServices;
+ }
+
+ 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);
+
+ bool qFlay=true;//前板标识
+ bool hFlay = true;//后板标识
+
+ public void AucamTaskAsync()
{
timer1.Elapsed += new System.Timers.ElapsedEventHandler(Run1); //到达时间的时候执行事件;
timer1.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
@@ -25,16 +52,18 @@ namespace Aucma.Core.Tasks
timer1.Start();//timer.Start()的内部原理还是设置timer.Enabled = true;
timer2.Elapsed += new System.Timers.ElapsedEventHandler(Run2); //到达时间的时候执行事件;
- timer2.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
- timer2.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它,
- timer2.Start();//timer.Start()的内部原理还是设置timer.Enabled = true;
-
- timer3.Elapsed += new System.Timers.ElapsedEventHandler(Run3); //到达时间的时候执行事件;
- timer3.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
- timer3.Enabled = true;//需要调用 timer.Start()或者timer.Enabled = true来启动它,
- timer3.Start();//timer.Start()的内部原理还是设置timer.Enabled = true;
- return Task.CompletedTask;
+ timer2.AutoReset = true;
+ timer2.Enabled = true;
+ timer2.Start();
+
+ timer3.Elapsed += new System.Timers.ElapsedEventHandler(RealTimeTask);
+ timer3.AutoReset = true;
+ timer3.Enabled = true;
+ timer3.Start();
+
}
+
+ #region 钣金——前板
///
/// 钣金——前板
///
@@ -44,17 +73,50 @@ namespace Aucma.Core.Tasks
{
if (qFlay)
{
+ qFlay=false;
//执行存盘操作
- //计划编号
- //物料编号
- //计划完成数
- //计划下线数
- //设备状态
- //生产节拍
- qFlay = true;
+ var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("前板Plc"));
+ 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;
+ }
+ }
+ }
}
- Console.WriteLine("前板");
+
}
+
+ #endregion
+
+ #region 钣金——后板
///
/// 钣金——后板
///
@@ -64,27 +126,114 @@ namespace Aucma.Core.Tasks
{
if (hFlay)
{
+ hFlay = false;
//执行存盘操作
- //计划编号
- //物料编号
- //计划完成数
- //计划下线数
- //设备状态
- //生产节拍
- hFlay = true;
+ var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("后板Plc"));
+ 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;
+ }
+ }
+ }
}
- Console.WriteLine("后板");
}
+
+ #endregion
+
+ #region 钣金—实时任务列表
///
/// 钣金—实时任务列表
///
///
///
- private void Run3(object? sender, ElapsedEventArgs e)
+ private void RealTimeTask(object? sender, ElapsedEventArgs e)
{
-
-
+ var execTask = _smTaskExecutionServices.FirstAsync(d => d.IsExec == 0&&d.TaskSort==d.TaskSort).Result;
+ if (execTask.FrontPlateAmount == execTask.RearPanelAmount)
+ {
+ 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("执行实时任务刷新界面");
+ }
+ }
Console.WriteLine("实时任务列表");
}
+ #endregion
+
+ #region 实施当日产量和型号统计
+ public void Run()
+ {
+ //SmEverDayDelegateEvent?.Invoke();
+ }
+ #endregion
+
+ #region 实时计划显示
+ public void RealTimePlanRun()
+ {
+ var model = _taskExecutionServices.FirstAsync(d => d.ExecuteStatus == 2).Result;
+ SmShowDelegateEvent?.Invoke(model);
+ }
+ #endregion
+
+ #region 任务完成
+ public void CompleteRun()
+ {
+ var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("后板Plc"));
+ if (obj == null) return;
+
+ var val = obj.plc.ReadInt32("M100");//任务结束信号存盘
+ if (val == 1)
+ {
+ //1、存储当日完成记录表、计算节拍信息
+
+ //2、更新界面计划执行、当日产量、型号统计、计划列表
+
+ //3、更新日志记录
+
+ //4、更新数据统计列表
+ }
+ }
+ #endregion
}
}
diff --git a/Aucma.Core.Tasks/CommTask/Job_SheetMetalTask.cs b/Aucma.Core.Tasks/CommTask/Job_SheetMetalTask.cs
index 17a71f0a..57700be0 100644
--- a/Aucma.Core.Tasks/CommTask/Job_SheetMetalTask.cs
+++ b/Aucma.Core.Tasks/CommTask/Job_SheetMetalTask.cs
@@ -14,68 +14,10 @@ using Admin.Core.Model;
///
namespace Aucma.Core.Tasks
{
- public class Job_SheetMetalTask
+ public class JobSheetMetalTask
{
- #region 钣金任务
- ///
- /// 实时任务信息-每日产量
- ///
- public delegate Task SmEverDayDelegate();
- public static event SmEverDayDelegate SmEverDayDelegateEvent;
-
- ///
- /// 实时任务信息-展示
- ///
- public delegate Task SmShowDelegate(ExecutePlanInfo info);
- public static event SmShowDelegate SmShowDelegateEvent;
- #endregion
-
- private readonly ISmTaskExecutionServices _smTaskExecutionServices;
- private readonly IExecutePlanInfoServices _taskExecutionServices;
- public Job_SheetMetalTask(ISmTaskExecutionServices smTaskExecutionServices, IExecutePlanInfoServices taskExecutionServices)
- {
- _smTaskExecutionServices = smTaskExecutionServices;
- _taskExecutionServices = taskExecutionServices;
- }
- public async Task Execute()
- {
- await ShowRun();
- await CompleteRun();
- }
-
- #region 实施当日产量和型号统计
- public Task Run()
- {
- SmEverDayDelegateEvent?.Invoke();
- return Task.CompletedTask;
- }
- #endregion
-
- #region 实时计划显示
- public async Task ShowRun()
- {
- var model = await _taskExecutionServices.FirstAsync(d => d.ExecuteStatus == 2);
- SmShowDelegateEvent?.Invoke(model);
- }
- #endregion
-
- #region 任务完成
- public Task CompleteRun()
- {
- var obj = PlcHelper.melsecList.FirstOrDefault(d => d.EquipName.Equals("后板Plc"));
- var val = obj.plc.ReadInt32("M100");//任务结束信号存盘
- if (val == 1)
- {
- //1、存储当日完成记录表、计算节拍信息
-
- //2、更新界面计划执行、当日产量、型号统计、计划列表
-
- //3、更新日志记录
-
- //4、更新数据统计列表
- }
- return Task.CompletedTask;
- }
- #endregion
+
+
+
}
}
diff --git a/Aucma.Core.Tasks/IAucamTaskService.cs b/Aucma.Core.Tasks/IAucamTaskService.cs
index ac103f19..dc6644ab 100644
--- a/Aucma.Core.Tasks/IAucamTaskService.cs
+++ b/Aucma.Core.Tasks/IAucamTaskService.cs
@@ -3,6 +3,6 @@ namespace Aucma.Core.Tasks
{
public interface IAucamTaskService
{
- Task AucamTaskAsync();
+ void AucamTaskAsync();
}
}