using System; using System.Collections.Generic; using System.Net.NetworkInformation; using System.Text; using System.Linq; using System.Data; using System.Threading; using Mesnac.Action.Base; using Mesnac.Controls.Base; using System.Windows.Forms; using Mesnac.Codd.Session; using System.IO; using Mesnac.Action.Feeding.BasicInfo; namespace Mesnac.Action.Feeding.FeedingPlc { /// /// 终止密炼 /// public class StopMixing : FeedingAction, IAction { /// /// 终止密炼业务入口 /// /// public void Run(RuntimeParameter runtime) { base.LogDebug("终止密炼..."); string msg = String.Empty; #region 判断当班计划界面是否打开 if (PlanCommon.IsInit == false) { msg = "当班计划还为初始化,请先打开当班计划,再进行此操作!"; ShowMsg(msg, Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information); return; } #endregion if (MessageBox.Show("确认终止密炼吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } string recipeName = new RecipeData().GetCurrentRecipeInfo().RecipeName; base.LogInfo("终止密炼:" + recipeName); if (StopMixing.ExecStopMixing()) { ShowMsg("写入终止密炼成功至PLC成功!", Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information); } else { ShowMsg("写入终止密炼至PLC失败!", Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information); } } /// /// 把终止密炼信号下传至PLC(位运算:位或1 ) /// /// 下传成功返回true,否则返回false public static bool ExecStopMixing() { try { int readword = 0; //Mesnac.Equips.Factory.Instance.Read(); if (int.TryParse(PlcData.Instance.AbortMixing.EquipData.LastBeforeMathValue.FirstOrDefault().ToString(), out readword)) { readword = readword | 1; if (PlcData.Instance.PlcWriteByDataKey(PlcData.Instance.AbortMixing, new object[] { readword })) { ICSharpCode.Core.LoggingService.Debug("写入终止密炼成功..."); return true; } } ICSharpCode.Core.LoggingService.Warn("写入终止密炼失败..."); return false; } catch (Exception ex) { ICSharpCode.Core.LoggingService.Error("写入终止密炼失败:" + ex.Message, ex); return false; } } } }