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 StopWeight : 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 (StopWeight.ExecStopWeight())
{
ShowMsg("写入终止称量至PLC成功...", Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
ShowMsg("写入终止称量至PLC失败...", Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
///
/// 把终止称量信号下传至PLC(位运算:位或2 )
///
/// 下传成功返回true,否则返回false
public static bool ExecStopWeight()
{
try
{
int readword = 0;
//Mesnac.Equips.Factory.Instance.Read();
if (int.TryParse(PlcData.Instance.AbortWeight.EquipData.LastBeforeMathValue.FirstOrDefault().ToString(), out readword))
{
readword = readword | 2;
if (PlcData.Instance.PlcWriteByDataKey(PlcData.Instance.AbortWeight, 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;
}
}
}
}