using DataBlockHelper; using DevExpress.DataAccess.Native.Json; using DevExpress.Utils.About; using ICSharpCode.Core; using Mesnac.Action.Base; using Mesnac.Action.ChemicalWeighing.Entity; using Mesnac.Action.ChemicalWeighing.FreeDb; using Mesnac.Action.ChemicalWeighing.InterfaceDocking; using Mesnac.Action.ChemicalWeighing.InterfaceDocking.DockingEntity; using Mesnac.Action.ChemicalWeighing.LjReport.DayWhiteEmbryo; using Mesnac.Basic; using Mesnac.Controls.Base; using Mesnac.Controls.Default; using Mesnac.Core.Service; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Mesnac.Action.ChemicalWeighing.LjMaterial; using Mesnac.Action.ChemicalWeighing.MinAn; using System.Xml.Serialization; using System.Threading; namespace Mesnac.Action.ChemicalWeighing.ManualControl { class ManualControlAction : ChemicalWeighingAction, IAction { private List McControllist; private List _McControllist; private byte GelChooseA; private byte GelChooseB; private byte WetChoose1; private byte WetChoose2; private byte WetChoose3; private byte WetChoose4; #region 控件属性定义 MCButton StartMetage1; MCButton StopMetage1; MCButton StartMetage2; MCButton StopMetage2; MCButton StartMetage3; MCButton StopMetage3; MCButton StartMetage4; MCButton StopMetage4; MCButton WaterOut1; MCButton WaterOut2; MCButton WaterOut3; MCButton WaterOut4; MCButton WaterStop1; MCButton WaterStop2; MCButton WaterStop3; MCButton WaterStop4; MCButton SpiralOn1; MCButton SpiralOn2; MCButton SpiralOn3; MCButton SpiralOn4; MCButton SpiralOff1; MCButton SpiralOff2; MCButton SpiralOff3; MCButton SpiralOff4; IBaseControl Gel1; IBaseControl Gel2; IBaseControl Gel3; IBaseControl Gel4; IBaseControl Gel5; IBaseControl Gel6; IBaseControl Gel7; IBaseControl Gel8; IBaseControl Wet1; IBaseControl Wet2; IBaseControl Wet3; IBaseControl Wet4; IBaseControl Wet5; IBaseControl Wet6; IBaseControl Wet7; IBaseControl Wet8; IBaseControl SetWaterValue1; IBaseControl SetWaterValue2; IBaseControl SetWaterValue3; IBaseControl SetWaterValue4; IBaseControl SetSpiralValue1; IBaseControl SetSpiralValue2; IBaseControl SetSpiralValue3; IBaseControl SetSpiralValue4; IBaseControl FastSpiralValue1; IBaseControl FastSpiralValue2; IBaseControl FastSpiralValue3; IBaseControl FastSpiralValue4; IBaseControl PointSpiralValue1; IBaseControl PointSpiralValue2; IBaseControl PointSpiralValue3; IBaseControl PointSpiralValue4; IBaseControl FastSpeedSpiralValue1; IBaseControl FastSpeedSpiralValue2; IBaseControl FastSpeedSpiralValue3; IBaseControl FastSpeedSpiralValue4; IBaseControl LowSpeedSpiralValue1; IBaseControl LowSpeedSpiralValue2; IBaseControl LowSpeedSpiralValue3; IBaseControl LowSpeedSpiralValue4; IBaseControl PointSpeedSpiralValue1; IBaseControl PointSpeedSpiralValue2; IBaseControl PointSpeedSpiralValue3; IBaseControl PointSpeedSpiralValue4; MCButton WetRequest1; // MCButton WetRequest2; // MCButton WetRequest3; // MCButton WetRequest4; // MCButton WetRequest5; // MCButton WetRequest6; // MCButton WetRequest7; // MCButton WetRequest8; MCButton Focus; MCButton SaveSetting; MCButton LoadSetting; #endregion DbMCControl materialGridControl; //keywords IBaseControl keywords; public void Run(RuntimeParameter runtime) { base.RunIni(runtime); //必须要调用 materialGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "ManualLogGridView").FirstOrDefault(); ManualLogSelect(""); ControlImport(); SingleSelect(); BottomSelect(runtime); } #region 控件获取导入 /// /// 控件导入 /// private void ControlImport() { McControllist = GetAllDbMCControlsByOption(DbOptionTypes.Query);//获取所有待初始化控件 _McControllist = GetAllDbMCControlsByOption(DbOptionTypes.Modify);//获取所有待初始化控件 StartMetage1 = GetButtonControl("StartMetage1"); StopMetage1 = GetButtonControl("StopMetage1"); StartMetage2 = GetButtonControl("StartMetage2"); StopMetage2 = GetButtonControl("StopMetage2"); StartMetage3 = GetButtonControl("StartMetage3"); StopMetage3 = GetButtonControl("StopMetage3"); StartMetage4 = GetButtonControl("StartMetage4"); StopMetage4 = GetButtonControl("StopMetage4"); WaterOut1 = GetButtonControl("WaterOut1"); WaterOut2 = GetButtonControl("WaterOut2"); WaterOut3 = GetButtonControl("WaterOut3"); WaterOut4 = GetButtonControl("WaterOut4"); WaterStop1 = GetButtonControl("WaterStop1"); WaterStop2 = GetButtonControl("WaterStop2"); WaterStop3 = GetButtonControl("WaterStop3"); WaterStop4 = GetButtonControl("WaterStop4"); SpiralOn1 = GetButtonControl("SpiralOn1"); SpiralOn2 = GetButtonControl("SpiralOn2"); SpiralOn3 = GetButtonControl("SpiralOn3"); SpiralOn4 = GetButtonControl("SpiralOn4"); SpiralOff1 = GetButtonControl("SpiralOff1"); SpiralOff2 = GetButtonControl("SpiralOff2"); SpiralOff3 = GetButtonControl("SpiralOff3"); SpiralOff4 = GetButtonControl("SpiralOff4"); Gel1 = GetBaseControl("Gel1"); Gel2 = GetBaseControl("Gel2"); Gel3 = GetBaseControl("Gel3"); Gel4 = GetBaseControl("Gel4"); Gel5 = GetBaseControl("Gel5"); Gel6 = GetBaseControl("Gel6"); Gel7 = GetBaseControl("Gel7"); Gel8 = GetBaseControl("Gel8"); Wet1 = GetBaseControl("Wet1"); Wet2 = GetBaseControl("Wet2"); Wet3 = GetBaseControl("Wet3"); Wet4 = GetBaseControl("Wet4"); Wet5 = GetBaseControl("Wet5"); Wet6 = GetBaseControl("Wet6"); Wet7 = GetBaseControl("Wet7"); Wet8 = GetBaseControl("Wet8"); SetWaterValue1 = GetBaseControl("SetWaterValue1"); SetWaterValue2 = GetBaseControl("SetWaterValue2"); SetWaterValue3 = GetBaseControl("SetWaterValue3"); SetWaterValue4 = GetBaseControl("SetWaterValue4"); SetSpiralValue1 = GetBaseControl("SetSpiralValue1"); SetSpiralValue2 = GetBaseControl("SetSpiralValue2"); SetSpiralValue3 = GetBaseControl("SetSpiralValue3"); SetSpiralValue4 = GetBaseControl("SetSpiralValue4"); FastSpiralValue1 = GetBaseControl("FastSpiralValue1"); FastSpiralValue2 = GetBaseControl("FastSpiralValue2"); FastSpiralValue3 = GetBaseControl("FastSpiralValue3"); FastSpiralValue4 = GetBaseControl("FastSpiralValue4"); PointSpiralValue1 = GetBaseControl("PointSpiralValue1"); PointSpiralValue2 = GetBaseControl("PointSpiralValue2"); PointSpiralValue3 = GetBaseControl("PointSpiralValue3"); PointSpiralValue4 = GetBaseControl("PointSpiralValue4"); FastSpeedSpiralValue1 = GetBaseControl("FastSpeedSpiralValue1"); FastSpeedSpiralValue2 = GetBaseControl("FastSpeedSpiralValue2"); FastSpeedSpiralValue3 = GetBaseControl("FastSpeedSpiralValue3"); FastSpeedSpiralValue4 = GetBaseControl("FastSpeedSpiralValue4"); LowSpeedSpiralValue1 = GetBaseControl("LowSpeedSpiralValue1"); LowSpeedSpiralValue2 = GetBaseControl("LowSpeedSpiralValue2"); LowSpeedSpiralValue3 = GetBaseControl("LowSpeedSpiralValue3"); LowSpeedSpiralValue4 = GetBaseControl("LowSpeedSpiralValue4"); PointSpeedSpiralValue1 = GetBaseControl("PointSpeedSpiralValue1"); PointSpeedSpiralValue2 = GetBaseControl("PointSpeedSpiralValue2"); PointSpeedSpiralValue3 = GetBaseControl("PointSpeedSpiralValue3"); PointSpeedSpiralValue4 = GetBaseControl("PointSpeedSpiralValue4"); WetRequest1 = GetButtonControl("WetRequest1"); keywords = GetBaseControl("keywords"); // WetRequest2 = GetButtonControl("WetRequest2"); // WetRequest3 = GetButtonControl("WetRequest3"); // WetRequest4 = GetButtonControl("WetRequest4"); // WetRequest5 = GetButtonControl("WetRequest5"); // WetRequest6 = GetButtonControl("WetRequest6"); // WetRequest7 = GetButtonControl("WetRequest7"); // WetRequest8 = GetButtonControl("WetRequest8"); Focus = GetButtonControl("Focus"); SaveSetting = GetButtonControl("SaveSetting"); LoadSetting = GetButtonControl("LoadSetting"); } #endregion #region 单选框选择扫描 /// /// 单选框选择操作机台 /// private void SingleSelect() { 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 按钮事件 /// /// 按钮选择事件 /// /// 运行时参数 private void BottomSelect(RuntimeParameter runtime) { Focus.Focus(); #region 水称称量按钮 if (StartMetage1 == runtime.Sender) { short value; if (short.TryParse(Convert.ToString(SetWaterValue1.MCValue), out value)) { if (MessageBox.Show("冷水称A确认开始称量?", "称量确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } PlcControl("DB2119.20.0", value); PlcControl("DB2119.28.0", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称A开始称量" + value); ManualLogControl("冷水称A开始称量", value, 1, 3, 1); } else { MesnacServiceManager.Instance.LoggingService.Info("冷水称A输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } } if (StopMetage1 == runtime.Sender) { PlcControl("DB2119.28.1", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称A称量已手动停止"); ManualLogControl("冷水称A称量已手动停止", 3, 1); MessageBox.Show("冷水称A称量已停止!"); } if (StartMetage2 == runtime.Sender) { short value; if (short.TryParse(Convert.ToString(SetWaterValue2.MCValue), out value)) { if (MessageBox.Show("热水称A确认开始称量?", "称量确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } PlcControl("DB2119.0.0", value); PlcControl("DB2119.8.0", true); MesnacServiceManager.Instance.LoggingService.Info("热水称A开始称量" + value); ManualLogControl("热水称A开始称量", value, 1, 1, 1); PlcControl("DB2119.0.0", value); } else { MesnacServiceManager.Instance.LoggingService.Info("热水称A输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } } if (StopMetage2 == runtime.Sender) { PlcControl("DB2119.8.1", true); MesnacServiceManager.Instance.LoggingService.Info("热水称A称量已手动停止"); ManualLogControl("热水称A称量已手动停止", 1, 1); MessageBox.Show("热水称A称量已停止!"); } if (StartMetage3 == runtime.Sender) { short value; if (short.TryParse(Convert.ToString(SetWaterValue3.MCValue), out value)) { if (MessageBox.Show("冷水称B确认开始称量?", "称量确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("冷水称B开始称量" + value); ManualLogControl("冷水称B开始称量", value, 1, 4, 1); PlcControl("DB2119.30.0", value); PlcControl("DB2119.38.0", true); } else { MesnacServiceManager.Instance.LoggingService.Info("冷水称B输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } } if (StopMetage3 == runtime.Sender) { PlcControl("DB2119.38.1", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称B称量已手动停止"); ManualLogControl("冷水称B称量已手动停止", 4, 1); MessageBox.Show("冷水称B称量已停止!"); } if (StartMetage4 == runtime.Sender) { short value; if (short.TryParse(Convert.ToString(SetWaterValue4.MCValue), out value)) { if (MessageBox.Show("热水称B确认开始称量?", "称量确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } MesnacServiceManager.Instance.LoggingService.Info("热水称B开始称量" + value); ManualLogControl("热水称B开始称量", value, 1, 2, 1); PlcControl("DB2119.10.0", value); PlcControl("DB2119.18.0", true); } else { MesnacServiceManager.Instance.LoggingService.Info("热水称B输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } } if (StopMetage4 == runtime.Sender) { PlcControl("DB2119.18.1", true); MesnacServiceManager.Instance.LoggingService.Info("热水称B称量已手动停止"); ManualLogControl("热水称B称量已手动停止", 2, 1); MessageBox.Show("热水称B称量已停止!"); } #endregion #region 排水按钮 if (WaterOut1 == runtime.Sender) { if (MessageBox.Show("冷水称A确认开始排水?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } switch (GelChooseA) { case 1: if(SelectAddWaterControl(1) == 2) { if (MessageBox.Show("上次糊化锅1已经加过冷水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.26.0", 1); PlcControl("DB2119.28.4", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称A开始向糊化锅1排水"); AdddWaterLogControl(1, 2); ManualLogControl("冷水称A开始向糊化锅1排水"); break; case 2: if (SelectAddWaterControl(2) == 2) { if (MessageBox.Show("上次糊化锅2已经加过冷水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.26.0", 2); PlcControl("DB2119.28.4", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称A开始向糊化锅2排水"); AdddWaterLogControl(2, 2); ManualLogControl("冷水称A开始向糊化锅2排水"); break; case 3: if (SelectAddWaterControl(3) == 2) { if (MessageBox.Show("上次糊化锅3已经加过冷水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.26.0", 3); PlcControl("DB2119.28.4", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称A开始向糊化锅3排水"); AdddWaterLogControl(3, 2); ManualLogControl("冷水称A开始向糊化锅3排水"); break; case 4: if (SelectAddWaterControl(4) == 2) { if (MessageBox.Show("上次糊化锅4已经加过冷水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.26.0", 4); PlcControl("DB2119.28.4", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称A开始向糊化锅4排水"); AdddWaterLogControl(4, 2); ManualLogControl("冷水称A开始向糊化锅4排水"); break; default: MessageBox.Show("请选择一个糊化锅!"); return; } } if (WaterOut2 == runtime.Sender) { if (MessageBox.Show("热水称A确认开始排水?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } switch (GelChooseA) { case 1: if (SelectAddWaterControl(1) == 0 || SelectAddWaterControl(1) == 1) { if (MessageBox.Show("上次糊化锅1已经加过热水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.6.0", 1); PlcControl("DB2119.8.4", true); MesnacServiceManager.Instance.LoggingService.Info("热水称A开始向糊化锅1排水"); AdddWaterLogControl(1, 1); ManualLogControl("热水称A开始向糊化锅1排水"); break; case 2: if (SelectAddWaterControl(2) == 0 || SelectAddWaterControl(2) == 1) { if (MessageBox.Show("上次糊化锅2已经加过热水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.6.0", 2); PlcControl("DB2119.8.4", true); MesnacServiceManager.Instance.LoggingService.Info("热水称A开始向糊化锅2排水"); AdddWaterLogControl(2, 1); ManualLogControl("热水称A开始向糊化锅2排水"); break; case 3: if (SelectAddWaterControl(3) == 0 || SelectAddWaterControl(3) == 1) { if (MessageBox.Show("上次糊化锅3已经加过热水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.6.0", 3); PlcControl("DB2119.8.4", true); MesnacServiceManager.Instance.LoggingService.Info("热水称A开始向糊化锅3排水"); AdddWaterLogControl(3, 1); ManualLogControl("热水称A开始向糊化锅3排水"); break; case 4: if (SelectAddWaterControl(4) == 0 || SelectAddWaterControl(4) == 1) { if (MessageBox.Show("上次糊化锅4已经加过热水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.6.0", 4); PlcControl("DB2119.8.4", true); MesnacServiceManager.Instance.LoggingService.Info("热水称A开始向糊化锅4排水"); AdddWaterLogControl(4, 1); ManualLogControl("热水称A开始向糊化锅4排水"); break; default: MessageBox.Show("请选择一个糊化锅!"); return; } } if (WaterOut3 == runtime.Sender) { if (MessageBox.Show("冷水称B确认开始排水?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } switch (GelChooseB) { case 5: if (SelectAddWaterControl(5) == 2) { if (MessageBox.Show("上次糊化锅5已经加过冷水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.36.0", 1); PlcControl("DB2119.38.4", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称B开始向糊化锅5排水"); AdddWaterLogControl(5, 2); ManualLogControl("冷水称B开始向糊化锅5排水"); break; case 6: if (SelectAddWaterControl(6) == 2) { if (MessageBox.Show("上次糊化锅6已经加过冷水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.36.0", 2); PlcControl("DB2119.38.4", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称B开始向糊化锅6排水"); AdddWaterLogControl(6, 2); ManualLogControl("冷水称B开始向糊化锅6排水"); break; case 7: if (SelectAddWaterControl(7) == 2) { if (MessageBox.Show("上次糊化锅7已经加过冷水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.36.0", 3); PlcControl("DB2119.38.4", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称B开始向糊化锅7排水"); AdddWaterLogControl(7, 2); ManualLogControl("冷水称B开始向糊化锅7排水"); break; case 8: if (SelectAddWaterControl(8) == 2) { if (MessageBox.Show("上次糊化锅8已经加过冷水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.36.0", 4); PlcControl("DB2119.38.4", true); MesnacServiceManager.Instance.LoggingService.Info("冷水称B开始向糊化锅8排水"); AdddWaterLogControl(8, 2); ManualLogControl("冷水称B开始向糊化锅8排水"); break; default: MessageBox.Show("请选择一个糊化锅!"); return; } } if (WaterOut4 == runtime.Sender) { if (MessageBox.Show("热水称B确认开始排水?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } switch (GelChooseB) { case 5: if (SelectAddWaterControl(5) == 0 || SelectAddWaterControl(5) == 1) { if (MessageBox.Show("上次糊化锅5已经加过热水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.16.0", 1); PlcControl("DB2119.18.4", true); MesnacServiceManager.Instance.LoggingService.Info("热水称B开始向糊化锅5排水"); AdddWaterLogControl(5, 1); ManualLogControl("热水称B开始向糊化锅5排水"); break; case 6: if (SelectAddWaterControl(6) == 0 || SelectAddWaterControl(6) == 1) { if (MessageBox.Show("上次糊化锅6已经加过热水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.16.0", 2); PlcControl("DB2119.18.4", true); MesnacServiceManager.Instance.LoggingService.Info("热水称B开始向糊化锅6排水"); AdddWaterLogControl(6, 1); ManualLogControl("热水称B开始向糊化锅6排水"); break; case 7: if (SelectAddWaterControl(7) == 0 || SelectAddWaterControl(7) == 1) { if (MessageBox.Show("上次糊化锅7已经加过热水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.16.0", 3); PlcControl("DB2119.18.4", true); MesnacServiceManager.Instance.LoggingService.Info("热水称B开始向糊化锅7排水"); AdddWaterLogControl(7, 1); ManualLogControl("热水称B开始向糊化锅7排水"); break; case 8: if (SelectAddWaterControl(8) == 0 || SelectAddWaterControl(8) == 1) { if (MessageBox.Show("上次糊化锅8已经加过热水,确认再次添加?", "排水确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } PlcControl("DB2119.16.0", 4); PlcControl("DB2119.18.4", true); MesnacServiceManager.Instance.LoggingService.Info("热水称B开始向糊化锅8排水"); AdddWaterLogControl(8, 1); ManualLogControl("热水称B开始向糊化锅8排水"); break; default: MessageBox.Show("请选择一个糊化锅!"); return; } } if (WaterStop1 == runtime.Sender) { switch (GelChooseA) { case 1: PlcControl("DB2119.26.0", 1); PlcControl("DB2119.28.5", true); break; case 2: PlcControl("DB2119.26.0", 2); PlcControl("DB2119.28.5", true); break; case 3: PlcControl("DB2119.26.0", 3); PlcControl("DB2119.28.5", true); break; case 4: PlcControl("DB2119.26.0", 4); PlcControl("DB2119.28.5", true); break; default: MessageBox.Show("请选择一个糊化锅!"); return; } MessageBox.Show("冷水称A已停止排水"); ManualLogControl("冷水称A停止排水"); MesnacServiceManager.Instance.LoggingService.Info("冷水称A停止排水"); } if (WaterStop2 == runtime.Sender) { switch (GelChooseA) { case 1: PlcControl("DB2119.6.0", 1); PlcControl("DB2119.8.5", true); break; case 2: PlcControl("DB2119.6.0", 2); PlcControl("DB2119.8.5", true); break; case 3: PlcControl("DB2119.6.0", 3); PlcControl("DB2119.8.5", true); break; case 4: PlcControl("DB2119.6.0", 4); PlcControl("DB2119.8.5", true); break; default: MessageBox.Show("请选择一个糊化锅!"); return; } MessageBox.Show("热水称A已停止排水"); ManualLogControl("热水称A停止排水"); MesnacServiceManager.Instance.LoggingService.Info("热水称A停止排水"); } if (WaterStop3 == runtime.Sender) { switch (GelChooseB) { case 5: PlcControl("DB2119.36.0", 1); PlcControl("DB2119.38.5", true); break; case 6: PlcControl("DB2119.36.0", 2); PlcControl("DB2119.38.5", true); break; case 7: PlcControl("DB2119.36.0", 3); PlcControl("DB2119.38.5", true); break; case 8: PlcControl("DB2119.36.0", 4); PlcControl("DB2119.38.5", true); break; default: MessageBox.Show("请选择一个糊化锅!"); return; } MessageBox.Show("冷水称B已停止排水"); ManualLogControl("冷水称B停止排水"); MesnacServiceManager.Instance.LoggingService.Info("冷水称B停止排水"); } if (WaterStop4 == runtime.Sender) { switch (GelChooseB) { case 5: PlcControl("DB2119.16.0", 1); PlcControl("DB2119.18.5", true); break; case 6: PlcControl("DB2119.16.0", 2); PlcControl("DB2119.18.5", true); break; case 7: PlcControl("DB2119.16.0", 3); PlcControl("DB2119.18.5", true); break; case 8: PlcControl("DB2119.16.0", 4); PlcControl("DB2119.18.5", true); break; default: MessageBox.Show("请选择一个糊化锅!"); return; } MessageBox.Show("热水称B已停止排水"); ManualLogControl("热水称B停止排水"); MesnacServiceManager.Instance.LoggingService.Info("热水称B停止排水"); } #endregion #region 螺旋控制按钮 if (SpiralOn1 == runtime.Sender) { if (MinAnPlc.Heir1) { DialogResult result1 = MessageBox.Show("1号罐正在上料", "温馨提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); if (result1 == DialogResult.OK) { return; } } short valueSet; short valueFast; short valuePoint; short valueSpeedFast; short valueSpeedLow; short valueSpeedPoint; if (short.TryParse(Convert.ToString(SetSpiralValue1.MCValue), out valueSet) && short.TryParse(Convert.ToString(FastSpiralValue1.MCValue), out valueFast) && short.TryParse(Convert.ToString(PointSpiralValue1.MCValue), out valuePoint) && short.TryParse(Convert.ToString(FastSpeedSpiralValue1.MCValue), out valueSpeedFast) && short.TryParse(Convert.ToString(LowSpeedSpiralValue1.MCValue), out valueSpeedLow) && short.TryParse(Convert.ToString(PointSpeedSpiralValue1.MCValue), out valueSpeedPoint)) { if (MessageBox.Show("螺旋1确认启动?", "螺旋启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } else { MesnacServiceManager.Instance.LoggingService.Info("螺旋1输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } switch (WetChoose1) { case 1: PlcControl("DB2119.40.0", valueSet); PlcControl("DB2119.44.0", valueFast); PlcControl("DB2119.46.0", valuePoint); PlcControl("DB2119.50.0", valueSpeedFast); PlcControl("DB2119.52.0", valueSpeedLow); PlcControl("DB2119.54.0", valueSpeedPoint); PlcControl("DB2119.58.0", 1); PlcControl("DB2119.60.0", true); MesnacServiceManager.Instance.LoggingService.Info("螺旋1启动向湿混机1 " + valueSet); ManualLogControl("螺旋1启动向湿混机1", valueSet, 3, 1, 2); break; case 2: PlcControl("DB2119.40.0", valueSet); PlcControl("DB2119.44.0", valueFast); PlcControl("DB2119.46.0", valuePoint); PlcControl("DB2119.50.0", valueSpeedFast); PlcControl("DB2119.52.0", valueSpeedLow); PlcControl("DB2119.54.0", valueSpeedPoint); PlcControl("DB2119.58.0", 2); PlcControl("DB2119.60.0", true); MesnacServiceManager.Instance.LoggingService.Info("螺旋1启动向湿混机2 " + valueSet); ManualLogControl("螺旋1启动向湿混机2", valueSet, 3, 2, 2); break; default: MessageBox.Show("请选择一个湿混机!"); return; } } if (SpiralOn2 == runtime.Sender) { if (MinAnPlc.Heir2) { DialogResult result2 = MessageBox.Show("2号罐正在上料", "温馨提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); if (result2 == DialogResult.OK) { return; } } short valueSet; short valueFast; short valuePoint; short valueSpeedFast; short valueSpeedLow; short valueSpeedPoint; if (short.TryParse(Convert.ToString(SetSpiralValue2.MCValue), out valueSet) && short.TryParse(Convert.ToString(FastSpiralValue2.MCValue), out valueFast) && short.TryParse(Convert.ToString(PointSpiralValue2.MCValue), out valuePoint) && short.TryParse(Convert.ToString(FastSpeedSpiralValue2.MCValue), out valueSpeedFast) && short.TryParse(Convert.ToString(LowSpeedSpiralValue2.MCValue), out valueSpeedLow) && short.TryParse(Convert.ToString(PointSpeedSpiralValue2.MCValue), out valueSpeedPoint)) { if (MessageBox.Show("螺旋2确认启动?", "螺旋启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } else { MesnacServiceManager.Instance.LoggingService.Info("螺旋2输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } switch (WetChoose2) { case 3: PlcControl("DB2119.62.0", valueSet); PlcControl("DB2119.66.0", valueFast); PlcControl("DB2119.68.0", valuePoint); PlcControl("DB2119.72.0", valueSpeedFast); PlcControl("DB2119.74.0", valueSpeedLow); PlcControl("DB2119.76.0", valueSpeedPoint); PlcControl("DB2119.80.0", 1); PlcControl("DB2119.82.0", true); MesnacServiceManager.Instance.LoggingService.Info("螺旋2启动向湿混机3 " + valueSet); ManualLogControl("螺旋2启动向湿混机3", valueSet, 3, 3, 2); break; case 4: PlcControl("DB2119.62.0", valueSet); PlcControl("DB2119.66.0", valueFast); PlcControl("DB2119.68.0", valuePoint); PlcControl("DB2119.72.0", valueSpeedFast); PlcControl("DB2119.74.0", valueSpeedLow); PlcControl("DB2119.76.0", valueSpeedPoint); PlcControl("DB2119.80.0", 2); PlcControl("DB2119.82.0", true); MesnacServiceManager.Instance.LoggingService.Info("螺旋2启动向湿混机4 " + valueSet); ManualLogControl("螺旋2启动向湿混机4", valueSet, 3, 4, 2); break; default: MessageBox.Show("请选择一个湿混机!"); return; } } if (SpiralOn3 == runtime.Sender) { if (MinAnPlc.Heir3) { DialogResult result3 = MessageBox.Show("3号罐正在上料", "温馨提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); if (result3 == DialogResult.OK) { return; } } short valueSet; short valueFast; short valuePoint; short valueSpeedFast; short valueSpeedLow; short valueSpeedPoint; if (short.TryParse(Convert.ToString(SetSpiralValue3.MCValue), out valueSet) && short.TryParse(Convert.ToString(FastSpiralValue3.MCValue), out valueFast) && short.TryParse(Convert.ToString(PointSpiralValue3.MCValue), out valuePoint) && short.TryParse(Convert.ToString(FastSpeedSpiralValue3.MCValue), out valueSpeedFast) && short.TryParse(Convert.ToString(LowSpeedSpiralValue3.MCValue), out valueSpeedLow) && short.TryParse(Convert.ToString(PointSpeedSpiralValue3.MCValue), out valueSpeedPoint)) { if (MessageBox.Show("螺旋3确认启动?", "螺旋启动确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } else { MesnacServiceManager.Instance.LoggingService.Info("螺旋3输入数值的格式有误"); MessageBox.Show("输入数值的格式有误!"); return; } switch (WetChoose3) { case 5: PlcControl("DB2119.84.0", valueSet); PlcControl("DB2119.88.0", valueFast); PlcControl("DB2119.90.0", valuePoint); PlcControl("DB2119.94.0", valueSpeedFast); PlcControl("DB2119.96.0", valueSpeedLow); PlcControl("DB2119.98.0", valueSpeedPoint); PlcControl("DB2119.102.0", 1); PlcControl("DB2119.104.0", true); MesnacServiceManager.Instance.LoggingService.Info("螺旋3启动向湿混机5 " + valueSet); ManualLogControl("螺旋3启动向湿混机5", valueSet, 3, 5, 2); break; case 6: PlcControl("DB2119.84.0", valueSet); PlcControl("DB2119.88.0", valueFast); PlcControl("DB2119.90.0", valuePoint); PlcControl("DB2119.94.0", valueSpeedFast); PlcControl("DB2119.96.0", valueSpeedLow); PlcControl("DB2119.98.0", valueSpeedPoint); PlcControl("DB2119.102.0", 2); PlcControl("DB2119.104.0", true); MesnacServiceManager.Instance.LoggingService.Info("螺旋3启动向湿混机6 " + valueSet); ManualLogControl("螺旋3启动向湿混机6", valueSet, 3, 6, 2); break; default: MessageBox.Show("请选择一个湿混机!"); return; } } if (SpiralOn4 == runtime.Sender) { MessageBox.Show("二期工程,敬请期待!"); //short valueSet; //short valueFast; //short valuePoint; //short valueSpeedFast; //short valueSpeedLow; //short valueSpeedPoint; //if (short.TryParse(Convert.ToString(SetSpiralValue4.MCValue), out valueSet) && // short.TryParse(Convert.ToString(FastSpiralValue4.MCValue), out valueFast) && // short.TryParse(Convert.ToString(PointSpiralValue4.MCValue), out valuePoint) && // short.TryParse(Convert.ToString(FastSpeedSpiralValue4.MCValue), out valueSpeedFast) && // short.TryParse(Convert.ToString(LowSpeedSpiralValue4.MCValue), out valueSpeedLow) && // short.TryParse(Convert.ToString(PointSpeedSpiralValue4.MCValue), out valueSpeedPoint)) //{ // 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: // PlcControl("DB2119..0", valueSet); // PlcControl("DB2119..0", valueFast); // PlcControl("DB2119..0", valuePoint); // PlcControl("DB2119..0", valueSpeedFast); // PlcControl("DB2119..0", valueSpeedLow); // PlcControl("DB2119..0", valueSpeedPoint); // PlcControl("DB2119..0", 1); // PlcControl("DB2119..0", true); // break; // case 8: // PlcControl("DB2119..0", valueSet); // PlcControl("DB2119..0", valueFast); // PlcControl("DB2119..0", valuePoint); // PlcControl("DB2119..0", valueSpeedFast); // PlcControl("DB2119..0", valueSpeedLow); // PlcControl("DB2119..0", valueSpeedPoint); // PlcControl("DB2119..0", 2); // PlcControl("DB2119..0", true); // break; // default: return; //} } if (SpiralOff1 == runtime.Sender) { PlcControl("DB2119.60.1", true); MesnacServiceManager.Instance.LoggingService.Info("螺旋1已手动停止"); ManualLogControl("螺旋1已手动停止"); MessageBox.Show("螺旋1已停止!"); } if (SpiralOff2 == runtime.Sender) { PlcControl("DB2119.82.1", true); MesnacServiceManager.Instance.LoggingService.Info("螺旋2已手动停止"); ManualLogControl("螺旋2已手动停止"); MessageBox.Show("螺旋2已停止!"); } if (SpiralOff3 == runtime.Sender) { PlcControl("DB2119.104.1", true); MesnacServiceManager.Instance.LoggingService.Info("螺旋3已手动停止"); ManualLogControl("螺旋3已手动停止"); MessageBox.Show("螺旋3已停止!"); } if (SpiralOff4 == runtime.Sender) { MessageBox.Show("二期工程,敬请期待!"); //PlcControl("DB2119..1", true); //MesnacServiceManager.Instance.LoggingService.Info("螺旋4已手动停止"); //MessageBox.Show("螺旋4已停止!"); } #endregion #region 日志查询 配置加载 //点击日志查询 if (WetRequest1 == runtime.Sender) { string key = keywords.MCValue.ToString(); ManualLogSelect(key); } if(SaveSetting == runtime.Sender) { short value1; short value2; short value3; short value4; short value5; short value6; short value7; short value8; if (short.TryParse(Convert.ToString(SetWaterValue1.MCValue), out value1) && short.TryParse(Convert.ToString(SetWaterValue2.MCValue), out value2) && short.TryParse(Convert.ToString(SetWaterValue3.MCValue), out value3) && short.TryParse(Convert.ToString(SetWaterValue4.MCValue), out value4) && short.TryParse(Convert.ToString(SetSpiralValue1.MCValue), out value5) && short.TryParse(Convert.ToString(SetSpiralValue2.MCValue), out value6) && short.TryParse(Convert.ToString(SetSpiralValue3.MCValue), out value7) && short.TryParse(Convert.ToString(SetSpiralValue4.MCValue), out value8)) { if (MessageBox.Show("是否保存当前配置?", "保存确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } Setting.Default.SetWaterValue1 = value1; Setting.Default.SetWaterValue2 = value2; Setting.Default.SetWaterValue3 = value3; Setting.Default.SetWaterValue4 = value4; Setting.Default.SetSpiralValue1 = value5; Setting.Default.SetSpiralValue2 = value6; Setting.Default.SetSpiralValue3 = value7; Setting.Default.SetSpiralValue4 = value8; MesnacServiceManager.Instance.LoggingService.Info("配置已保存"); ManualLogControl("配置已保存 " + value1 + value2 + value3 + value4 + value5 + value6 + value7 + value8); } } if (LoadSetting == runtime.Sender) { if (MessageBox.Show("是否加载上次保存的配置?", "加载确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } SetWaterValue1.MCValue = Setting.Default.SetWaterValue1; SetWaterValue2.MCValue = Setting.Default.SetWaterValue2; SetWaterValue3.MCValue = Setting.Default.SetWaterValue3; SetWaterValue4.MCValue = Setting.Default.SetWaterValue4; SetSpiralValue1.MCValue = Setting.Default.SetSpiralValue1; SetSpiralValue2.MCValue = Setting.Default.SetSpiralValue2; SetSpiralValue3.MCValue = Setting.Default.SetSpiralValue3; SetSpiralValue4.MCValue = Setting.Default.SetSpiralValue4; MesnacServiceManager.Instance.LoggingService.Info("配置已加载"); ManualLogControl("配置已加载 "); } #endregion } #endregion #region plc插入控制 private void PlcControl(string address, short binNo) { if(!PlcConnect.Instance.Write(address, binNo).IsSuccess) { if(PlcConnect.Instance.ReadInt16(address).Content == binNo) { return; } for(int i = 0; i < 3; i++) { Thread.Sleep(100); if(PlcConnect.Instance.Write(address, binNo).IsSuccess) { return; } } MessageBox.Show(address + "写入失败!"); } } private void PlcControl(string address, bool state) { if (!PlcConnect.Instance.Write(address, state).IsSuccess) { if (PlcConnect.Instance.ReadBool(address).Content == state) { return; } for (int i = 0; i < 3; i++) { Thread.Sleep(100); if (PlcConnect.Instance.Write(address, state).IsSuccess) { return; } } MessageBox.Show(address + "写入失败!"); } } #endregion #region 控件获取 private IBaseControl GetBaseControl(string name) { return _McControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey == name).FirstOrDefault().BaseControl; } private MCButton GetButtonControl(string name) { return McControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey == name).FirstOrDefault().BaseControl as MCButton; } #endregion #region 数据库日志控制 /// /// 日志查询 /// /// 查询关键字 private void ManualLogSelect(string txt) { string sql = "select top 500 id, logtext, logtime, value from Manual_Log "; if (!string.IsNullOrEmpty(txt)) { sql += $" where logtext like '%{txt}%'"; } sql += " order by id desc"; DataTable table = DBHelp.GetTable(sql); if (this.materialGridControl != null && this.materialGridControl.BaseControl != null) { this.materialGridControl.BaseControl.BindDataSource = null; this.materialGridControl.BaseControl.BindDataSource = table; } else { ICSharpCode.Core.LoggingService.Warn("ManualContrlolAction 手动操作日志信息控件为Null..."); } } /// /// 日志插入 /// /// 日志内容 /// 值 /// 值类型 0无 1水称设定值 2水称称量值 3螺旋设定值 4螺旋称量值 /// 设备编号 /// 设备类型 0无 1水称 2螺旋 private void ManualLogControl(string logName, int value, int valuekind, int deviceno, int devicekind) { var Log = new ManualLogEntity() { logtext = logName, logtime = DateTime.Now, userid = string.IsNullOrWhiteSpace(UserInfo.Instance.UserName) ? "Edit" : UserInfo.Instance.UserName, value = value, deviceno = deviceno, devicekind = devicekind, valuekind = valuekind, createdate = DateTime.Now.ToString("yyyyMMdd") }; FreeSqlUnit.Instance.Insert(Log).ExecuteIdentity(); ManualLogSelect(""); } private void ManualLogControl(string logName, int deviceno, int devicekind) { var Log = new ManualLogEntity() { logtext = logName, logtime = DateTime.Now, userid = string.IsNullOrWhiteSpace(UserInfo.Instance.UserName) ? "Edit" : UserInfo.Instance.UserName, value = 0, deviceno = deviceno, devicekind = devicekind, valuekind = 0, createdate = DateTime.Now.ToString("yyyyMMdd") }; FreeSqlUnit.Instance.Insert(Log).ExecuteIdentity(); ManualLogSelect(""); } private void ManualLogControl(string logName) { var Log = new ManualLogEntity() { logtext = logName, logtime = DateTime.Now, userid = string.IsNullOrWhiteSpace(UserInfo.Instance.UserName) ? "Edit" : UserInfo.Instance.UserName, value = 0, deviceno = 0, devicekind = 0, valuekind = 0, createdate = DateTime.Now.ToString("yyyyMMdd") }; FreeSqlUnit.Instance.Insert(Log).ExecuteIdentity(); ManualLogSelect(""); } /// /// /// /// /// 1是热水 2是冷水 0为空 private void AdddWaterLogControl(int deviceNo, int isHot) { var log = new AddWaterLog() { DeviceId = deviceNo, Hot = isHot, CreateTime = DateTime.Now, }; FreeSqlUnit.Instance.Insert(log).ExecuteIdentity(); } private int SelectAddWaterControl(int deviceNo) { var list = FreeSqlUnit.Instance.Select().Where(x => x.DeviceId == deviceNo).ToList(); if (list.Count == 0) { return 0; } return Convert.ToInt32(list.LastOrDefault().Hot); } #endregion } }