using DataBlockHelper.DBHelpers; using DevExpress.DataAccess.Wizard.Presenters; using Mesnac.Action.Base; using Mesnac.Action.ChemicalWeighing.AutoControl.DB; using Mesnac.Action.ChemicalWeighing.AutoControl.Entity; using Mesnac.Action.ChemicalWeighing.FreeDb; using Mesnac.Action.ChemicalWeighing.LjMixManager; using Mesnac.Action.ChemicalWeighing.LjPlanning; using Mesnac.Controls.Base; using Mesnac.Controls.Default; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using IAction = Mesnac.Action.Base.IAction; namespace Mesnac.Action.ChemicalWeighing.AutoControl { public class InitAction : ChemicalWeighingAction, IAction { private List McControls; Color backColor = Color.Transparent; MCTextBoxEntity TextE = new MCTextBoxEntity(); ButtonEntity ButtonE = new ButtonEntity(); MCLabelEntity LabelE = new MCLabelEntity(); MCComboBoxEntity ComboE = new MCComboBoxEntity(); MCRadioButtonEntity RadioE = new MCRadioButtonEntity(); public Timer timer; public void Run(RuntimeParameter runtime) { base.RunIni(runtime); //必须要调用 McControls = GetAllControls(); ControlsHelper.ControlImport(TextE, McControls); ControlsHelper.ControlImport(ButtonE, McControls); ControlsHelper.ControlImport(ComboE, McControls); ControlsHelper.ControlImport(LabelE, McControls); ControlsHelper.ControlImport(RadioE, McControls); ControlInit(); RadioE.Line1.CheckedChanged += Mcradion_CheckedChanged; RadioE.Line2.CheckedChanged += Mcradion_CheckedChanged; RadioE.Line3.CheckedChanged += Mcradion_CheckedChanged; RadioE.Line4.CheckedChanged += Mcradion_CheckedChanged; RadioE.Line5.CheckedChanged += Mcradion_CheckedChanged; RadioE.Line6.CheckedChanged += Mcradion_CheckedChanged; RadioE.Line7.CheckedChanged += Mcradion_CheckedChanged; RadioE.Line8.CheckedChanged += Mcradion_CheckedChanged; RadioE.Dry1.CheckedChanged += DMcradion_CheckedChanged; RadioE.Dry2.CheckedChanged += DMcradion_CheckedChanged; RadioE.Dry3.CheckedChanged += DMcradion_CheckedChanged; RadioE.Dry4.CheckedChanged += DMcradion_CheckedChanged; RadioE.Line1.MCValue = true; RadioE.Dry1.MCValue = true; timer = new Timer(); timer.Interval = 1000; timer.Enabled = true; timer.Tick += new EventHandler(StateRefresh);//添加事件 } #region 前端Timer状态刷新 private void StateRefresh(object sender, EventArgs e) { if (GetAllDbMCControlsByOption(DbOptionTypes.QueryAndModify).Count == 0) { timer.Stop(); timer.Dispose(); } DB2105Helper dB2105Helper = new DB2105Helper(); var startJob = dB2105Helper.GetStartJob; LabelE.State1.MCValue = ConvertOnOff(startJob[0].Val); LabelE.State2.MCValue = ConvertOnOff(startJob[1].Val); LabelE.State3.MCValue = ConvertOnOff(startJob[2].Val); LabelE.State4.MCValue = ConvertOnOff(startJob[3].Val); LabelE.State5.MCValue = ConvertOnOff(startJob[4].Val); LabelE.State6.MCValue = ConvertOnOff(startJob[5].Val); LabelE.State7.MCValue = ConvertOnOff(startJob[6].Val); LabelE.State8.MCValue = ConvertOnOff(startJob[7].Val); LabelE.State1.BackColor = ConvertColor(startJob[0].Val); LabelE.State2.BackColor = ConvertColor(startJob[1].Val); LabelE.State3.BackColor = ConvertColor(startJob[2].Val); LabelE.State4.BackColor = ConvertColor(startJob[3].Val); LabelE.State5.BackColor = ConvertColor(startJob[4].Val); LabelE.State6.BackColor = ConvertColor(startJob[5].Val); LabelE.State7.BackColor = ConvertColor(startJob[6].Val); LabelE.State8.BackColor = ConvertColor(startJob[7].Val); var rd = Db3000Helper.ReadModel(); if (rd[ControlsHelper.SingleSelect(RadioE) - 1]) { LabelE.RepairState.MCValue = "开"; } else { LabelE.RepairState.MCValue = "关"; } } private string ConvertOnOff(bool state) { if (state) { return "启动"; } else { return "停止"; } } private Color ConvertColor(bool state) { if (state) { return Color.LightGreen; } else { return Color.Transparent; } } #endregion #region PLC读数刷新控件 private void Mcradion_CheckedChanged(object sender, EventArgs e) { MCRadioButton mCRadio = sender as MCRadioButton; RadioE.Line1.BackColor = backColor; RadioE.Line2.BackColor = backColor; RadioE.Line3.BackColor = backColor; RadioE.Line4.BackColor = backColor; RadioE.Line5.BackColor = backColor; RadioE.Line6.BackColor = backColor; RadioE.Line7.BackColor = backColor; RadioE.Line8.BackColor = backColor; mCRadio.BackColor = Color.LightSkyBlue; int select = ControlsHelper.SingleSelect(RadioE); GWInit(select); switch (select) { case 1: case 2: RadioE.Dry1.MCValue = true; break; case 3: case 4: RadioE.Dry2.MCValue = true; break; case 5: case 6: RadioE.Dry3.MCValue = true; break; case 7: case 8: RadioE.Dry4.MCValue = true; break; default: break; } } private void DMcradion_CheckedChanged(object sender, EventArgs e) { MCRadioButton mCRadio = sender as MCRadioButton; RadioE.Dry1.BackColor = backColor; RadioE.Dry2.BackColor = backColor; RadioE.Dry3.BackColor = backColor; RadioE.Dry4.BackColor = backColor; mCRadio.BackColor = Color.LightSkyBlue; DInit(ControlsHelper.DrySelect(RadioE)); } private void GWInit(int select) { var selected = FreeSqlUnit.Instance.Select().Where(x => x.DeviceId == select && x.Type == 2).ToList(); if (selected.Count != 0) { ComboE.ChooseMaterial1.SelectedValue = selected[0].MaterrialId; ComboE.ChooseMaterial2.SelectedValue = selected[1].MaterrialId; } else { ComboE.ChooseMaterial1.SelectedIndex = 0; ComboE.ChooseMaterial2.SelectedIndex = 0; } var getGelatG1 = LjPlanningPlcHelp.GetGelatG1; var getWeterM1 = LjPlanningPlcHelp.GetWeterM1; var getGelatG2 = LjPlanningPlcHelp.GetGelatG2; var getWeterM2 = LjPlanningPlcHelp.GetWeterM2; var getGelatG3 = LjPlanningPlcHelp.GetGelatG3; var getWeterM3 = LjPlanningPlcHelp.GetWeterM3; var getGelatG4 = LjPlanningPlcHelp.GetGelatG4; var getWeterM4 = LjPlanningPlcHelp.GetWeterM4; var getGelatG5 = LjPlanningPlcHelp.GetGelatG5; var getWeterM5 = LjPlanningPlcHelp.GetWeterM5; var getGelatG6 = LjPlanningPlcHelp.GetGelatG6; var getWeterM6 = LjPlanningPlcHelp.GetWeterM6; var getGelatG7 = LjPlanningPlcHelp.GetGelatG7; var getWeterM7 = LjPlanningPlcHelp.GetWeterM7; var getGelatG8 = LjPlanningPlcHelp.GetGelatG8; var getWeterM8 = LjPlanningPlcHelp.GetWeterM8; switch (select) { case 1: GWDataShow(getGelatG1, getWeterM1); break; case 2: GWDataShow(getGelatG2, getWeterM2); break; case 3: GWDataShow(getGelatG3, getWeterM3); break; case 4: GWDataShow(getGelatG4, getWeterM4); break; case 5: GWDataShow(getGelatG5, getWeterM5); break; case 6: GWDataShow(getGelatG6, getWeterM6); break; case 7: GWDataShow(getGelatG7, getWeterM7); break; case 8: GWDataShow(getGelatG8, getWeterM8); break; default: return; } } private void DInit(int select) { var drtSelected = FreeSqlUnit.Instance.Select(). Where(x => x.DeviceId == select && x.Type == 1).ToList(); if (drtSelected.Count != 0) { ComboE.DryM1.SelectedValue = drtSelected[0].MaterrialId; ComboE.DryM2.SelectedValue = drtSelected[1].MaterrialId; ComboE.DryM3.SelectedValue = drtSelected[2].MaterrialId; ComboE.DryM4.SelectedValue = drtSelected[3].MaterrialId; ComboE.DryM5.SelectedValue = drtSelected[4].MaterrialId; ComboE.DryM6.SelectedValue = drtSelected[5].MaterrialId; ComboE.DryM7.SelectedValue = drtSelected[6].MaterrialId; ComboE.DryM8.SelectedValue = drtSelected[7].MaterrialId; ComboE.DryM9.SelectedValue = drtSelected[8].MaterrialId; ComboE.DryM10.SelectedValue = drtSelected[9].MaterrialId; ComboE.DryM11.SelectedValue = drtSelected[10].MaterrialId; ComboE.DryM12.SelectedValue = drtSelected[11].MaterrialId; } else { ComboE.DryM1.SelectedIndex = 0; ComboE.DryM2.SelectedIndex = 0; ComboE.DryM3.SelectedIndex = 0; ComboE.DryM4.SelectedIndex = 0; ComboE.DryM5.SelectedIndex = 0; ComboE.DryM6.SelectedIndex = 0; ComboE.DryM7.SelectedIndex = 0; ComboE.DryM8.SelectedIndex = 0; ComboE.DryM9.SelectedIndex = 0; ComboE.DryM10.SelectedIndex = 0; ComboE.DryM11.SelectedIndex = 0; ComboE.DryM12.SelectedIndex = 0; } var getDryerD1 = LjPlanningPlcHelp.GetDryerD1; var getDryerD2 = LjPlanningPlcHelp.GetDryerD2; var getDryerD3 = LjPlanningPlcHelp.GetDryerD3; var getDryerD4 = LjPlanningPlcHelp.GetDryerD4; switch (select) { case 1: DryDataShow(getDryerD1); break; case 2: DryDataShow(getDryerD2); break; case 3: DryDataShow(getDryerD3); break; case 4: DryDataShow(getDryerD4); break; default: return; } } /// /// 控件从Plc初始化 /// private void ControlInit() { ComboE.ChooseMaterial1.DataSource = StockMaterrialDbHelp.GetSiloMaterrial(); ComboE.ChooseMaterial2.DataSource = StockMaterrialDbHelp.GetSiloMaterrial(); DB2104Helper waterData = new DB2104Helper(); TextE.ColdValueA.MCValue = waterData.GetAColWater.Set; TextE.ColdValueB.MCValue = waterData.GetBColWater.Set; TextE.HotValueA.MCValue = waterData.GetAHotWater.Set; TextE.HotValueB.MCValue = waterData.GetBHotWater.Set; TextE.ColdToleranceA.MCValue = waterData.GetAColWater.Tolerance; TextE.ColdToleranceB.MCValue = waterData.GetBColWater.Tolerance; TextE.HotToleranceA.MCValue = waterData.GetAHotWater.Tolerance; TextE.HotToleranceB.MCValue = waterData.GetBHotWater.Tolerance; ComboE.DryM1.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM2.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM3.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM4.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM5.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM6.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM7.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM8.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM9.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM10.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM11.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); ComboE.DryM12.DataSource = StockMaterrialDbHelp.GetDryerMaterrial(); } private void DryDataShow(DryerView Dry) { TextE.DryW1.MCValue = Dry.RecipePlcViews[0].Set; TextE.DryW2.MCValue = Dry.RecipePlcViews[1].Set; TextE.DryW3.MCValue = Dry.RecipePlcViews[2].Set; TextE.DryW4.MCValue = Dry.RecipePlcViews[3].Set; TextE.DryW5.MCValue = Dry.RecipePlcViews[4].Set; TextE.DryW6.MCValue = Dry.RecipePlcViews[5].Set; TextE.DryW7.MCValue = Dry.RecipePlcViews[6].Set; TextE.DryW8.MCValue = Dry.RecipePlcViews[7].Set; TextE.DryW9.MCValue = Dry.RecipePlcViews[8].Set; TextE.DryW10.MCValue = Dry.RecipePlcViews[9].Set; TextE.DryW11.MCValue = Dry.RecipePlcViews[10].Set; TextE.DryW12.MCValue = Dry.RecipePlcViews[11].Set; } private void GWDataShow(DryerView Gel, List Wet) { TextE.MaterialWeight1.MCValue = Gel.RecipePlcViews[0].Set; TextE.MaterialWeight2.MCValue = Gel.RecipePlcViews[1].Set; TextE.GelSpeedSet.MCValue = Gel.RecipeSteps[0].MixSpeed; TextE.GelPosTimeA.MCValue = Gel.RecipeSteps[2].MixTemp; TextE.GelNagTimeB.MCValue = Gel.RecipeSteps[2].MixSpeed; TextE.GelPosTimeC.MCValue = Gel.RecipeSteps[2].MixTime; TextE.GelWaterTime.MCValue = Gel.RecipeSteps[4].MixTime; TextE.GelWaitTime.MCValue = Gel.RecipeSteps[6].MixTime; TextE.GelCloseHeatTime.MCValue = Gel.RecipeSteps[7].MixTime; TextE.GelOutDelayTime.MCValue = Gel.RecipeSteps[7].MixTemp; TextE.WetDryWeight.MCValue = Wet[1].SetValue; TextE.WetMixTime.MCValue = Wet[2].MixTime; TextE.WetOutDelayTime.MCValue = Wet[4].MixTime; } #endregion } }