using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data; using ICSharpCode.Core; using Mesnac.Equips; using Mesnac.Codd.Session; using Mesnac.Controls.Base; using System.Threading.Tasks; namespace Mesnac.Action.ChemicalWeighing.FinishBatch { /// /// 生产管理-后台业务-生产数据存盘业务服务类 /// public class FinishBatchService { #region 字段定义 /// /// 运行状态,true:已运行,false:未运行 /// private bool runState = false; #endregion #region 单例实现 private static FinishBatchService _instance = null; private FinishBatchService() { } public static FinishBatchService Instance { get { lock (String.Empty) { if (_instance == null) { _instance = new FinishBatchService(); } return _instance; } } } #endregion #region 启动服务 public void Start() { try { if (this.runState) { return; } lock (String.Empty) { //BasePlcHelper.Instance.PlcRead(BasePlcHelper.Instance.read_data, out int[] p); Mesnac.Equips.Factory.Instance.SetMinHZReadDataEvent(ReadData); this.runState = true; } } catch(Exception ex) { ICSharpCode.Core.LoggingService.Error("自动更新计划状态服务异常:" + ex.Message, ex); } } #endregion #region 停止服务 public void Stop() { try { if (!this.runState) { return; } lock (String.Empty) { ICSharpCode.Core.LoggingService.Debug("开始停止生产数据存盘服务..."); //Mesnac.Equips.Factory.Instance.ClearMinHZReadDataEvent(ReadData); ICSharpCode.Core.LoggingService.Debug("停止生产数据存盘服务完毕!"); this.runState = false; } } catch (Exception ex) { ICSharpCode.Core.LoggingService.Error("停止生产数据存盘业务服务异常:" + ex.Message, ex); } } #endregion #region 事件处理 普力通物料下传2023-06-12 private void ReadData(object sender, Mesnac.Equips.ReadEventArgs e) { try { lock(String.Empty) { //XlPlcHelper.PlcPlanHelper.ExecPlanState(); #region 更新溶剂称量计划状态地磅 Task.Run(async () => { await ChemicalWeighingPlc.PlcPlanHelper.UpdateWeighbridge1PlanData(); }); Task.Run(async () => { await ChemicalWeighingPlc.PlcPlanHelper.UpdateWeighbridge2PlanData(); }); #endregion } } catch(Exception ex) { ICSharpCode.Core.LoggingService.Error(ex.Message, ex); } finally { } } #endregion } }