using DataBlockHelper; using Mesnac.Action.Base; using Mesnac.Controls.Base; using Mesnac.Controls.Default; using Mesnac.Core.Service; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Mesnac.Action.ChemicalWeighing.ManualControl { class ManualControlAction : ChemicalWeighingAction, IAction { private List McControllist; private byte GelChooseA; private byte GelChooseB; private byte WetChoose1; private byte WetChoose2; private byte WetChoose3; private byte WetChoose4; public void Run(RuntimeParameter runtime) { base.RunIni(runtime); //必须要调用 #region 控件导入 McControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件 IBaseControl StartMetage1 = GetBaseControl("StartMetage1"); IBaseControl StopMetage1 = GetBaseControl("StopMetage1"); IBaseControl StartMetage2 = GetBaseControl("StartMetage2"); IBaseControl StopMetage2 = GetBaseControl("StopMetage2"); IBaseControl StartMetage3 = GetBaseControl("StartMetage3"); IBaseControl StopMetage3 = GetBaseControl("StopMetage3"); IBaseControl StartMetage4 = GetBaseControl("StartMetage4"); IBaseControl StopMetage4 = GetBaseControl("StopMetage4"); IBaseControl WaterOut1 = GetBaseControl("WaterOut1"); IBaseControl WaterOut2 = GetBaseControl("WaterOut2"); IBaseControl WaterOut3 = GetBaseControl("WaterOut3"); IBaseControl WaterOut4 = GetBaseControl("WaterOut4"); IBaseControl SpiralOn1 = GetBaseControl("SpiralOn1"); IBaseControl SpiralOn2 = GetBaseControl("SpiralOn2"); IBaseControl SpiralOn3 = GetBaseControl("SpiralOn3"); IBaseControl SpiralOn4 = GetBaseControl("SpiralOn4"); IBaseControl Gel1 = GetBaseControl("Gel1"); IBaseControl Gel2 = GetBaseControl("Gel2"); IBaseControl Gel3 = GetBaseControl("Gel3"); IBaseControl Gel4 = GetBaseControl("Gel4"); IBaseControl Gel5 = GetBaseControl("Gel5"); IBaseControl Gel6 = GetBaseControl("Gel6"); IBaseControl Gel7 = GetBaseControl("Gel7"); IBaseControl Gel8 = GetBaseControl("Gel8"); IBaseControl Wet1 = GetBaseControl("Wet1"); IBaseControl Wet2 = GetBaseControl("Wet2"); IBaseControl Wet3 = GetBaseControl("Wet3"); IBaseControl Wet4 = GetBaseControl("Wet4"); IBaseControl Wet5 = GetBaseControl("Wet5"); IBaseControl Wet6 = GetBaseControl("Wet6"); IBaseControl Wet7 = GetBaseControl("Wet7"); IBaseControl Wet8 = GetBaseControl("Wet8"); IBaseControl SetWaterValue1 = GetBaseControl("SetWaterValue1"); IBaseControl SetWaterValue2 = GetBaseControl("SetWaterValue2"); IBaseControl SetWaterValue3 = GetBaseControl("SetWaterValue3"); IBaseControl SetWaterValue4 = GetBaseControl("SetWaterValue4"); IBaseControl SetSpiralValue1 = GetBaseControl("SetSpiralValue1"); IBaseControl SetSpiralValue2 = GetBaseControl("SetSpiralValue2"); IBaseControl SetSpiralValue3 = GetBaseControl("SetSpiralValue3"); IBaseControl SetSpiralValue4 = GetBaseControl("SetSpiralValue4"); #endregion #region 单选判断 if (Convert.ToBoolean(Gel1.MCValue) == true) { GelChooseA = 1; } if (Convert.ToBoolean(Gel2.MCValue) == true) { GelChooseA = 2; } if (Convert.ToBoolean(Gel3.MCValue) == true) { GelChooseA = 3; } if (Convert.ToBoolean(Gel4.MCValue) == true) { GelChooseA = 4; } if (Convert.ToBoolean(Gel5.MCValue) == true) { GelChooseB = 5; } if (Convert.ToBoolean(Gel6.MCValue) == true) { GelChooseB = 6; } if (Convert.ToBoolean(Gel7.MCValue) == true) { GelChooseB = 7; } if (Convert.ToBoolean(Gel8.MCValue) == true) { GelChooseB = 8; } if (Convert.ToBoolean(Wet1.MCValue) == true) { WetChoose1 = 1; } if (Convert.ToBoolean(Wet2.MCValue) == true) { WetChoose1 = 2; } if (Convert.ToBoolean(Wet3.MCValue) == true) { WetChoose2 = 3; } if (Convert.ToBoolean(Wet4.MCValue) == true) { WetChoose2 = 4; } if (Convert.ToBoolean(Wet5.MCValue) == true) { WetChoose3 = 5; } if (Convert.ToBoolean(Wet6.MCValue) == true) { WetChoose3 = 6; } if (Convert.ToBoolean(Wet7.MCValue) == true) { WetChoose4 = 7; } if (Convert.ToBoolean(Wet8.MCValue) == true) { WetChoose4 = 8; } #endregion #region 按钮选择 if (StartMetage1 == runtime.Sender) { float value; if (float.TryParse(Convert.ToString(SetWaterValue1.MCValue), out value)) { if (MessageBox.Show("冷水称A确认开始称量?", "称量确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("冷水称A开始称量"); PlcConnect.Instance.Write("DB2119.20.0", Convert.ToUInt16(value)); PlcConnect.Instance.Write("DB2119.28.0", true); } else { MesnacServiceManager.Instance.LoggingService.Info("冷水称A输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } } if (StopMetage1 == runtime.Sender) { PlcConnect.Instance.Write("DB2119.28.1", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称A称量已手动停止"); MessageBox.Show("称量已停止!"); } if (StartMetage2 == runtime.Sender) { float value; if (float.TryParse(Convert.ToString(SetWaterValue2.MCValue), out value)) { if (MessageBox.Show("热水称A确认开始称量?", "称量确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("热水称A开始称量"); PlcConnect.Instance.Write("DB2119.0.0", Convert.ToUInt16(value)); PlcConnect.Instance.Write("DB2119.8.0", true); } else { MesnacServiceManager.Instance.LoggingService.Info("热水称A输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } } if (StopMetage2 == runtime.Sender) { PlcConnect.Instance.Write("DB2119.8.1", true); MesnacServiceManager.Instance.LoggingService.Info("热水称A称量已手动停止"); MessageBox.Show("称量已停止!"); } if (StartMetage3 == runtime.Sender) { float value; if (float.TryParse(Convert.ToString(SetWaterValue3.MCValue), out value)) { if (MessageBox.Show("冷水称B确认开始称量?", "称量确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("冷水称B开始称量"); PlcConnect.Instance.Write("DB2119.30.0", Convert.ToUInt16(value)); PlcConnect.Instance.Write("DB2119.38.0", true); } else { MesnacServiceManager.Instance.LoggingService.Info("冷水称B输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } } if (StopMetage3 == runtime.Sender) { PlcConnect.Instance.Write("DB2119.38.1", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称B称量已手动停止"); MessageBox.Show("称量已停止!"); } if (StartMetage4 == runtime.Sender) { float value; if (float.TryParse(Convert.ToString(SetWaterValue4.MCValue), out value)) { if (MessageBox.Show("热水称B确认开始称量?", "称量确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("热水称B开始称量"); PlcConnect.Instance.Write("DB2119.10.0", Convert.ToUInt16(value)); PlcConnect.Instance.Write("DB2119.18.0", true); } else { MesnacServiceManager.Instance.LoggingService.Info("热水称B输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } } if (StopMetage4 == runtime.Sender) { PlcConnect.Instance.Write("DB2119.18.1", true); MesnacServiceManager.Instance.LoggingService.Info("热水称B称量已手动停止"); MessageBox.Show("称量已停止!"); } if (WaterOut1 == runtime.Sender) { if (MessageBox.Show("冷水称A确认开始排水?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("冷水称A开始排水"); switch (GelChooseA) { case 1: PlcConnect.Instance.Write("DB2119.26.0", Convert.ToUInt16(1)); PlcConnect.Instance.Write("DB2119.28.4", true); break; case 2: PlcConnect.Instance.Write("DB2119.26.0", Convert.ToUInt16(2)); PlcConnect.Instance.Write("DB2119.28.4", true); break; case 3: PlcConnect.Instance.Write("DB2119.26.0", Convert.ToUInt16(3)); PlcConnect.Instance.Write("DB2119.28.4", true); break; case 4: PlcConnect.Instance.Write("DB2119.26.0", Convert.ToUInt16(4)); PlcConnect.Instance.Write("DB2119.28.4", true); break; default: break; } } if (WaterOut2 == runtime.Sender) { if (MessageBox.Show("热水称A确认开始排水?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("热水称A开始排水"); switch (GelChooseA) { case 1: PlcConnect.Instance.Write("DB2119.6.0", Convert.ToUInt16(1)); PlcConnect.Instance.Write("DB2119.8.4", true); break; case 2: PlcConnect.Instance.Write("DB2119.6.0", Convert.ToUInt16(2)); PlcConnect.Instance.Write("DB2119.8.4", true); break; case 3: PlcConnect.Instance.Write("DB2119.6.0", Convert.ToUInt16(3)); PlcConnect.Instance.Write("DB2119.8.4", true); break; case 4: PlcConnect.Instance.Write("DB2119.6.0", Convert.ToUInt16(4)); PlcConnect.Instance.Write("DB2119.8.4", true); break; default: break; } } if (WaterOut3 == runtime.Sender) { if (MessageBox.Show("冷水称B确认开始排水?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("冷水称B开始排水"); switch (GelChooseB) { case 5: PlcConnect.Instance.Write("DB2119.36.0", Convert.ToUInt16(1)); PlcConnect.Instance.Write("DB2119.38.4", true); break; case 6: PlcConnect.Instance.Write("DB2119.36.0", Convert.ToUInt16(2)); PlcConnect.Instance.Write("DB2119.8.4", true); break; case 7: PlcConnect.Instance.Write("DB2119.36.0", Convert.ToUInt16(3)); PlcConnect.Instance.Write("DB2119.8.4", true); break; case 8: PlcConnect.Instance.Write("DB2119.36.0", Convert.ToUInt16(4)); PlcConnect.Instance.Write("DB2119.8.4", true); break; default: break; } } if (WaterOut4 == runtime.Sender) { if (MessageBox.Show("热水称B确认开始排水?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("热水称B开始排水"); switch (GelChooseB) { case 5: PlcConnect.Instance.Write("DB2119.16.0", Convert.ToUInt16(1)); PlcConnect.Instance.Write("DB2119.18.4", true); break; case 6: PlcConnect.Instance.Write("DB2119.16.0", Convert.ToUInt16(2)); PlcConnect.Instance.Write("DB2119.18.4", true); break; case 7: PlcConnect.Instance.Write("DB2119.16.0", Convert.ToUInt16(3)); PlcConnect.Instance.Write("DB2119.18.4", true); break; case 8: PlcConnect.Instance.Write("DB2119.16.0", Convert.ToUInt16(4)); PlcConnect.Instance.Write("DB2119.18.4", true); break; default: break; } } if (SpiralOn1 == runtime.Sender) { float value; if (float.TryParse(Convert.ToString(SetSpiralValue1.MCValue), out value)) { if (MessageBox.Show("螺旋1确认启动?", "螺旋启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("螺旋1启动"); } else { MesnacServiceManager.Instance.LoggingService.Info("螺旋1输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } switch (WetChoose1) { case 1: break; case 2: break; default: break; } } if (SpiralOn2 == runtime.Sender) { float value; if (float.TryParse(Convert.ToString(SetSpiralValue2.MCValue), out value)) { if (MessageBox.Show("螺旋2确认启动?", "螺旋启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("螺旋2启动"); } else { MesnacServiceManager.Instance.LoggingService.Info("螺旋2输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } switch (WetChoose2) { case 3: break; case 4: break; default: break; } } if (SpiralOn3 == runtime.Sender) { float value; if (float.TryParse(Convert.ToString(SetSpiralValue3.MCValue), out value)) { if (MessageBox.Show("螺旋3确认启动?", "螺旋启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("螺旋3启动"); } else { MesnacServiceManager.Instance.LoggingService.Info("螺旋3输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } switch (WetChoose3) { case 5: break; case 6: break; default: break; } } if (SpiralOn4 == runtime.Sender) { MessageBox.Show("二期工程,敬请期待!"); //float value; //if (float.TryParse(Convert.ToString(SetSpiralValue4.MCValue), out value)) //{ // if (MessageBox.Show("螺旋4确认启动?", "螺旋启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) // { // return; // } // MesnacServiceManager.Instance.LoggingService.Info("螺旋4启动"); //} //else //{ // MesnacServiceManager.Instance.LoggingService.Info("螺旋4输入数值的格式有误"); // MessageBox.Show("输入数值的格式有误!"); // return; //} //switch (WetChoose4) //{ // case 7: // break; // case 8: // break; // default: break; //} } #endregion } private IBaseControl GetBaseControl(string name) { return McControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey == name).FirstOrDefault().BaseControl; } } }