You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

255 lines
11 KiB
C#

using DataBlockHelper.DBHelpers;
using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.LjDeliverControlBoard.Entity;
using Mesnac.Action.ChemicalWeighing.Util;
using Mesnac.Controls.ChemicalWeighing;
using Mesnac.Controls.Default;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Timer = System.Windows.Forms.Timer;
namespace Mesnac.Action.ChemicalWeighing.LjDeliverControlBoard
{
public class InitAction : ChemicalWeighingAction, IAction
{
Timer timer;
DB191Helper DB191 = new DB191Helper();
List<Control> Controls;
MCButtonEntity ButtonE = new MCButtonEntity();
MCRadioButtonEntity RadioButtonE = new MCRadioButtonEntity();
SwitchLightEntity SwitchLightE = new SwitchLightEntity();
public void Run(RuntimeParameter runtime)
{
RunIni(runtime);
Controls = GetAllControls();
SetAllControls();
InitOnce();
ButtonE.BoardStartA.MouseDown += MouseDown;
ButtonE.BoardStartB.MouseDown += MouseDown;
ButtonE.BoardStartC.MouseDown += MouseDown;
ButtonE.BoardStopA.MouseDown += MouseDown;
ButtonE.BoardStopB.MouseDown += MouseDown;
ButtonE.BoardStopC.MouseDown += MouseDown;
ButtonE.AlarmClearA.MouseDown += MouseDown;
ButtonE.AlarmClearB.MouseDown += MouseDown;
ButtonE.AlarmClearC.MouseDown += MouseDown;
ButtonE.BoardStartA.MouseUp += MouseUp;
ButtonE.BoardStartB.MouseUp += MouseUp;
ButtonE.BoardStartC.MouseUp += MouseUp;
ButtonE.BoardStopA.MouseUp += MouseUp;
ButtonE.BoardStopB.MouseUp += MouseUp;
ButtonE.BoardStopC.MouseUp += MouseUp;
ButtonE.AlarmClearA.MouseUp += MouseUp;
ButtonE.AlarmClearB.MouseUp += MouseUp;
ButtonE.AlarmClearC.MouseUp += MouseUp;
timer = new Timer();
timer.Interval = 1000;
timer.Enabled = true;
timer.Tick += GetPlcValue;//添加事件
}
private void MouseDown(object sender, MouseEventArgs e)
{
if (sender == ButtonE.BoardStartA)
{
DB191WriteHelper.SetStartA(true);
}
else if (sender == ButtonE.BoardStartB)
{
DB191WriteHelper.SetStartB(true);
}
else if (sender == ButtonE.BoardStartC)
{
DB191WriteHelper.SetStartC(true);
}
else if (sender == ButtonE.BoardStopA)
{
DB191WriteHelper.SetStopA(true);
}
else if (sender == ButtonE.BoardStopB)
{
DB191WriteHelper.SetStopB(true);
}
else if (sender == ButtonE.BoardStopC)
{
DB191WriteHelper.SetStopC(true);
}
else if (sender == ButtonE.AlarmClearA)
{
DB191WriteHelper.SetClearAlarmA(true);
}
else if (sender == ButtonE.AlarmClearB)
{
DB191WriteHelper.SetClearAlarmB(true);
}
else if (sender == ButtonE.AlarmClearC)
{
DB191WriteHelper.SetClearAlarmC(true);
}
}
private void MouseUp(object sender, MouseEventArgs e)
{
if (sender == ButtonE.BoardStartA)
{
DB191WriteHelper.SetStartA(false);
}
else if (sender == ButtonE.BoardStartB)
{
DB191WriteHelper.SetStartB(false);
}
else if (sender == ButtonE.BoardStartC)
{
DB191WriteHelper.SetStartC(false);
}
else if (sender == ButtonE.BoardStopA)
{
DB191WriteHelper.SetStopA(false);
}
else if (sender == ButtonE.BoardStopB)
{
DB191WriteHelper.SetStopB(false);
}
else if (sender == ButtonE.BoardStopC)
{
DB191WriteHelper.SetStopC(false);
}
else if (sender == ButtonE.AlarmClearA)
{
DB191WriteHelper.SetClearAlarmA(false);
}
else if (sender == ButtonE.AlarmClearB)
{
DB191WriteHelper.SetClearAlarmB(false);
}
else if (sender == ButtonE.AlarmClearC)
{
DB191WriteHelper.SetClearAlarmC(false);
}
}
private void SetAllControls()
{
ControlsImprot.ControlImport<MCButton>(ButtonE, Controls);
ControlsImprot.ControlImport<MCRadioButton>(RadioButtonE, Controls);
ControlsImprot.ControlImport<SwitchLight>(SwitchLightE, Controls);
}
private void InitOnce()
{
if (DB191.GetPanelOnOff()[0])
{
ButtonE.BoardOnA.Text = "关闭面板";
ButtonE.BoardOnA.BackColor = System.Drawing.Color.LightGreen;
}
else
{
ButtonE.BoardOnA.Text = "面板启用";
ButtonE.BoardOnA.BackColor = System.Drawing.Color.Yellow;
}
if (DB191.GetPanelOnOff()[1])
{
ButtonE.BoardOnB.Text = "关闭面板";
ButtonE.BoardOnB.BackColor = System.Drawing.Color.LightGreen;
}
else
{
ButtonE.BoardOnB.Text = "面板启用";
ButtonE.BoardOnB.BackColor = System.Drawing.Color.Yellow;
}
if (DB191.GetPanelOnOff()[2])
{
ButtonE.BoardOnC.Text = "关闭面板";
ButtonE.BoardOnC.BackColor = System.Drawing.Color.LightGreen;
}
else
{
ButtonE.BoardOnC.Text = "面板启用";
ButtonE.BoardOnC.BackColor = System.Drawing.Color.Yellow;
}
}
private void GetPlcValue(object sender, EventArgs e)
{
DB191 = new DB191Helper();
SetPanelA();
SetPanelB();
SetPanelC();
}
private void SetPanelA()
{
ControlsImprot.SetSwitchLight(SwitchLightE.SGLAA, DB191.ControlPanel_A.siloGroupLamp1);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLBA, DB191.ControlPanel_A.siloGroupLamp2);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLCA, DB191.ControlPanel_A.siloGroupLamp3);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLDA, DB191.ControlPanel_A.siloGroupLamp4);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLEA, DB191.ControlPanel_A.siloGroupLamp5);
ControlsImprot.SetSwitchLight(SwitchLightE.SLAA, DB191.ControlPanel_A.siloLamp1);
ControlsImprot.SetSwitchLight(SwitchLightE.SLBA, DB191.ControlPanel_A.siloLamp2);
ControlsImprot.SetSwitchLight(SwitchLightE.SLCA, DB191.ControlPanel_A.siloLamp3);
ControlsImprot.SetSwitchLight(SwitchLightE.SLDA, DB191.ControlPanel_A.siloLamp4);
ControlsImprot.SetSwitchLight(SwitchLightE.StartLightA, DB191.ControlPanel_A.startLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.StopLightA, DB191.ControlPanel_A.stopLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.RoadCorrectA, DB191.ControlPanel_A.pathOkLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.TubeCleanA, DB191.ControlPanel_A.cleanLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.ActionBottleFullA, DB191.ControlPanel_A.siloFullLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.AlarmLightA, false, DB191.ControlPanel_A.Buzzer);
}
private void SetPanelB()
{
ControlsImprot.SetSwitchLight(SwitchLightE.SGLAB, DB191.ControlPanel_B.siloGroupLamp1);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLBB, DB191.ControlPanel_B.siloGroupLamp2);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLCB, DB191.ControlPanel_B.siloGroupLamp3);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLDB, DB191.ControlPanel_B.siloGroupLamp4);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLEB, DB191.ControlPanel_B.siloGroupLamp5);
ControlsImprot.SetSwitchLight(SwitchLightE.SLAB, DB191.ControlPanel_B.siloLamp1);
ControlsImprot.SetSwitchLight(SwitchLightE.SLBB, DB191.ControlPanel_B.siloLamp2);
ControlsImprot.SetSwitchLight(SwitchLightE.SLCB, DB191.ControlPanel_B.siloLamp3);
ControlsImprot.SetSwitchLight(SwitchLightE.SLDB, DB191.ControlPanel_B.siloLamp4);
ControlsImprot.SetSwitchLight(SwitchLightE.StartLightB, DB191.ControlPanel_B.startLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.StopLightB, DB191.ControlPanel_B.stopLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.RoadCorrectB, DB191.ControlPanel_B.pathOkLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.TubeCleanB, DB191.ControlPanel_B.cleanLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.ActionBottleFullB, DB191.ControlPanel_B.siloFullLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.AlarmLightB, false, DB191.ControlPanel_B.Buzzer);
}
private void SetPanelC()
{
ControlsImprot.SetSwitchLight(SwitchLightE.SGLAC, DB191.ControlPanel_C.siloGroupLamp1);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLBC, DB191.ControlPanel_C.siloGroupLamp2);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLCC, DB191.ControlPanel_C.siloGroupLamp3);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLDC, DB191.ControlPanel_C.siloGroupLamp4);
ControlsImprot.SetSwitchLight(SwitchLightE.SGLEC, DB191.ControlPanel_C.siloGroupLamp5);
ControlsImprot.SetSwitchLight(SwitchLightE.SLAC, DB191.ControlPanel_C.siloLamp1);
ControlsImprot.SetSwitchLight(SwitchLightE.SLBC, DB191.ControlPanel_C.siloLamp2);
ControlsImprot.SetSwitchLight(SwitchLightE.SLCC, DB191.ControlPanel_C.siloLamp3);
ControlsImprot.SetSwitchLight(SwitchLightE.SLDC, DB191.ControlPanel_C.siloLamp4);
ControlsImprot.SetSwitchLight(SwitchLightE.StartLightC, DB191.ControlPanel_C.startLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.StopLightC, DB191.ControlPanel_C.stopLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.RoadCorrectC, DB191.ControlPanel_C.pathOkLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.TubeCleanC, DB191.ControlPanel_C.cleanLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.ActionBottleFullC, DB191.ControlPanel_C.siloFullLamp);
ControlsImprot.SetSwitchLight(SwitchLightE.AlarmLightC, false, DB191.ControlPanel_C.Buzzer);
}
}
}