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.
lj_plc/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/ManualControl/InitAction.cs

903 lines
30 KiB
C#

using DataBlockHelper;
using DataBlockHelper.DBHelpers;
using DataBlockHelper.Entity.DB2106Entity;
using DevExpress.Data.Extensions;
using HslCommunication;
using HslCommunication.Instrument.DLT;
using log4net;
using log4net.Config;
using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.FreeDb;
using Mesnac.Action.ChemicalWeighing.InterfaceDocking;
using Mesnac.Action.ChemicalWeighing.InterfaceDocking.DockingEntity;
using Mesnac.Action.ChemicalWeighing.LjMaterial;
using Mesnac.Action.ChemicalWeighing.LjReport.OpenDoor;
using Mesnac.Action.ChemicalWeighing.MainDetailControl.Entity;
using Mesnac.Action.ChemicalWeighing.Report;
using Mesnac.Basic;
using Mesnac.Controls.Base;
using Mesnac.Controls.ChemicalWeighing;
using Mesnac.Controls.Default;
using Mesnac.Core.Service;
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using Timer = System.Windows.Forms.Timer;
namespace Mesnac.Action.ChemicalWeighing.ManualControl
{
public class InitAction : ChemicalWeighingAction, IAction
{
DB2107Helper DB2107;
DB2119Helper DB2119;
DB2103Helper DB2103;
List<DbMCControl> McControllist; // InitData控件
List<DbMCControl> _McControllist; // Modify控件
List<Control> allControl;
HslSwitchEntity hslSwitchEntity;
DbMCControl materialGridControl;
Timer timer;
int no = 0;
Color backColor;
Dictionary<int, int> WetStatus = new Dictionary<int, int>();
#region 控件变量
IBaseControl WaterActualValue1;
IBaseControl WaterActualValue2;
IBaseControl WaterActualValue3;
IBaseControl WaterActualValue4;
IBaseControl WaterMetValue1;
IBaseControl WaterMetValue2;
IBaseControl WaterMetValue3;
IBaseControl WaterMetValue4;
IBaseControl SpiralActValue1;
IBaseControl SpiralActValue2;
IBaseControl SpiralActValue3;
IBaseControl SpiralActValue4;
IBaseControl SpiralMetValue1;
IBaseControl SpiralMetValue2;
IBaseControl SpiralMetValue3;
IBaseControl SpiralMetValue4;
IBaseControl MetageState1;
IBaseControl MetageState2;
IBaseControl MetageState3;
IBaseControl MetageState4;
IBaseControl WaterOutState1;
IBaseControl WaterOutState2;
IBaseControl WaterOutState3;
IBaseControl WaterOutState4;
IBaseControl SpiralState1;
IBaseControl SpiralState2;
IBaseControl SpiralState3;
IBaseControl SpiralState4;
IBaseControl SetWaterValue1;
IBaseControl SetWaterValue2;
IBaseControl SetWaterValue3;
IBaseControl SetWaterValue4;
IBaseControl SetSpiralValue1;
IBaseControl SetSpiralValue2;
IBaseControl SetSpiralValue3;
IBaseControl SetSpiralValue4;
MCRadioButton Gel1;
MCRadioButton Gel2;
MCRadioButton Gel3;
MCRadioButton Gel4;
MCRadioButton Gel5;
MCRadioButton Gel6;
MCRadioButton Gel7;
MCRadioButton Gel8;
MCRadioButton Wet1;
MCRadioButton Wet2;
MCRadioButton Wet3;
MCRadioButton Wet4;
MCRadioButton Wet5;
MCRadioButton Wet6;
MCRadioButton Wet7;
MCRadioButton Wet8;
#endregion
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime); //必须要调用的
#region 控件获取
McControllist = GetAllDbMCControlsByOption(DbOptionTypes.InitData);
_McControllist = GetAllDbMCControlsByOption(DbOptionTypes.Modify);
allControl = GetAllControls();
FillHslSwitch();
WaterActualValue1 = GetBaseControl("WaterActualValue1");
WaterActualValue2 = GetBaseControl("WaterActualValue2");
WaterActualValue3 = GetBaseControl("WaterActualValue3");
WaterActualValue4 = GetBaseControl("WaterActualValue4");
WaterMetValue1 = GetBaseControl("WaterMetValue1");
WaterMetValue2 = GetBaseControl("WaterMetValue2");
WaterMetValue3 = GetBaseControl("WaterMetValue3");
WaterMetValue4 = GetBaseControl("WaterMetValue4");
SpiralActValue1 = GetBaseControl("SpiralActValue1");
SpiralActValue2 = GetBaseControl("SpiralActValue2");
SpiralActValue3 = GetBaseControl("SpiralActValue3");
SpiralActValue4 = GetBaseControl("SpiralActValue4");
SpiralMetValue1 = GetBaseControl("SpiralMetValue1");
SpiralMetValue2 = GetBaseControl("SpiralMetValue2");
SpiralMetValue3 = GetBaseControl("SpiralMetValue3");
SpiralMetValue4 = GetBaseControl("SpiralMetValue4");
MetageState1 = GetBaseControl("MetageState1");
MetageState2 = GetBaseControl("MetageState2");
MetageState3 = GetBaseControl("MetageState3");
MetageState4 = GetBaseControl("MetageState4");
WaterOutState1 = GetBaseControl("WaterOutState1");
WaterOutState2 = GetBaseControl("WaterOutState2");
WaterOutState3 = GetBaseControl("WaterOutState3");
WaterOutState4 = GetBaseControl("WaterOutState4");
SpiralState1 = GetBaseControl("SpiralState1");
SpiralState2 = GetBaseControl("SpiralState2");
SpiralState3 = GetBaseControl("SpiralState3");
SpiralState4 = GetBaseControl("SpiralState4");
SetWaterValue1 = _GetBaseControl("SetWaterValue1");
SetWaterValue2 = _GetBaseControl("SetWaterValue2");
SetWaterValue3 = _GetBaseControl("SetWaterValue3");
SetWaterValue4 = _GetBaseControl("SetWaterValue4");
SetSpiralValue1 = _GetBaseControl("SetSpiralValue1");
SetSpiralValue2 = _GetBaseControl("SetSpiralValue2");
SetSpiralValue3 = _GetBaseControl("SetSpiralValue3");
SetSpiralValue4 = _GetBaseControl("SetSpiralValue4");
materialGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "ManualLogGridView").FirstOrDefault();
#endregion
LogSelect("");
//读取停止按钮的状态
FillWaterStop();
#region 配置文件加载
var table = FreeSqlUnit.Instance.Select<ManualControlSetting>().Where("1 = 1").ToList();
SetWaterValue1.MCValue = table.Where(x => x.SettingName == "WaterValue1").LastOrDefault().Value;
SetWaterValue2.MCValue = table.Where(x => x.SettingName == "WaterValue2").LastOrDefault().Value;
SetWaterValue3.MCValue = table.Where(x => x.SettingName == "WaterValue3").LastOrDefault().Value;
SetWaterValue4.MCValue = table.Where(x => x.SettingName == "WaterValue4").LastOrDefault().Value;
SetSpiralValue1.MCValue = table.Where(x => x.SettingName == "SpiralValue1").LastOrDefault().Value;
SetSpiralValue2.MCValue = table.Where(x => x.SettingName == "SpiralValue2").LastOrDefault().Value;
SetSpiralValue3.MCValue = table.Where(x => x.SettingName == "SpiralValue3").LastOrDefault().Value;
SetSpiralValue4.MCValue = table.Where(x => x.SettingName == "SpiralValue4").LastOrDefault().Value;
MesnacServiceManager.Instance.LoggingService.Info("配置已加载");
LjLogControl.ManualLogControl("配置已加载 ");
#endregion
#region 变色控制
Gel1 = GetMCRadioButton("Gel1");
backColor = Gel1.BackColor;
Gel1.CheckedChanged += McradionA_CheckedChanged;
Gel2 = GetMCRadioButton("Gel2");
Gel2.CheckedChanged += McradionA_CheckedChanged;
Gel3 = GetMCRadioButton("Gel3");
Gel3.CheckedChanged += McradionA_CheckedChanged;
Gel4 = GetMCRadioButton("Gel4");
Gel4.CheckedChanged += McradionA_CheckedChanged;
Gel5 = GetMCRadioButton("Gel5");
Gel5.CheckedChanged += McradionB_CheckedChanged;
Gel6 = GetMCRadioButton("Gel6");
Gel6.CheckedChanged += McradionB_CheckedChanged;
Gel7 = GetMCRadioButton("Gel7");
Gel7.CheckedChanged += McradionB_CheckedChanged;
Gel8 = GetMCRadioButton("Gel8");
Gel8.CheckedChanged += McradionB_CheckedChanged;
Wet1 = GetMCRadioButton("Wet1");
Wet1.CheckedChanged += Wet1_CheckedChanged;
Wet2 = GetMCRadioButton("Wet2");
Wet2.CheckedChanged += Wet1_CheckedChanged;
Wet3 = GetMCRadioButton("Wet3");
Wet3.CheckedChanged += Wet3_CheckedChanged;
Wet4 = GetMCRadioButton("Wet4");
Wet4.CheckedChanged += Wet3_CheckedChanged;
Wet5 = GetMCRadioButton("Wet5");
Wet5.CheckedChanged += Wet5_CheckedChanged;
Wet6 = GetMCRadioButton("Wet6");
Wet6.CheckedChanged += Wet5_CheckedChanged;
Wet7 = GetMCRadioButton("Wet7");
Wet7.CheckedChanged += Wet7_CheckedChanged;
Wet8 = GetMCRadioButton("Wet8");
Wet8.CheckedChanged += Wet7_CheckedChanged;
#endregion
timer = new Timer();
timer.Interval = 1000;
timer.Enabled = true;
timer.Tick += new EventHandler(ReadFromPlc);//添加事件
}
//GetAllDbMCControlsByOption(DbOptionTypes.Query);
private void FillWaterStop()
{
var query = GetAllDbMCControlsByOption(DbOptionTypes.Query);
MCButton WaterStop1 = query.Where(t => t.BaseControl.MCKey != null
&& t.BaseControl.MCKey == "WaterStop1").FirstOrDefault().BaseControl as MCButton;
var plc = PlcConnect.Instance;
var waterStopBool1 = plc.ReadBool("DB2119.28.5").Content;
//如果等于1 文字取反
if (waterStopBool1)
{
WaterStop1.Text = "冷水称A恢复";
}
else
{
WaterStop1.Text = "冷水称A停止";
}
MCButton WaterStop2 = query.Where(t => t.BaseControl.MCKey != null
&& t.BaseControl.MCKey == "WaterStop2").FirstOrDefault().BaseControl as MCButton;
var waterStopBool2 = plc.ReadBool("DB2119.8.5").Content;
//如果等于1 文字取反
if (waterStopBool2)
{
WaterStop2.Text = "热水称A恢复";
}
else
{
WaterStop2.Text = "热水称A停止";
}
MCButton WaterStop3 = query.Where(t => t.BaseControl.MCKey != null
&& t.BaseControl.MCKey == "WaterStop3").FirstOrDefault().BaseControl as MCButton;
var waterStopBool3 = plc.ReadBool("DB2119.38.5").Content;
//如果等于1 文字取反
if (waterStopBool3)
{
WaterStop3.Text = "冷水称B恢复";
}
else
{
WaterStop3.Text = "冷水称B停止";
}
MCButton WaterStop4 = query.Where(t => t.BaseControl.MCKey != null
&& t.BaseControl.MCKey == "WaterStop4").FirstOrDefault().BaseControl as MCButton;
var waterStopBool4 = plc.ReadBool("DB2119.18.5").Content;
//如果等于1 文字取反
if (waterStopBool4)
{
WaterStop3.Text = "热水称B恢复";
}
else
{
WaterStop3.Text = "热水称B停止";
}
}
#region 单选变色控制
private void Wet1_CheckedChanged(object sender, EventArgs e)
{
MCRadioButton mCRadio = sender as MCRadioButton;
Wet1.BackColor = backColor;
Wet2.BackColor = backColor;
mCRadio.BackColor = Color.GreenYellow;
}
private void Wet3_CheckedChanged(object sender, EventArgs e)
{
MCRadioButton mCRadio = sender as MCRadioButton;
Wet3.BackColor = backColor;
Wet4.BackColor = backColor;
mCRadio.BackColor = Color.GreenYellow;
}
private void Wet5_CheckedChanged(object sender, EventArgs e)
{
MCRadioButton mCRadio = sender as MCRadioButton;
Wet5.BackColor = backColor;
Wet6.BackColor = backColor;
mCRadio.BackColor = Color.GreenYellow;
}
private void Wet7_CheckedChanged(object sender, EventArgs e)
{
MCRadioButton mCRadio = sender as MCRadioButton;
Wet7.BackColor = backColor;
Wet8.BackColor = backColor;
mCRadio.BackColor = Color.GreenYellow;
}
private MCRadioButton GetMCRadioButton(string name)
{
var mcradion = allControl.Where(t => t.Name == name).FirstOrDefault() as MCRadioButton;
return mcradion;
}
private void McradionA_CheckedChanged(object sender, EventArgs e)
{
MCRadioButton mCRadio = sender as MCRadioButton;
Gel1.BackColor = backColor;
Gel2.BackColor = backColor;
Gel3.BackColor = backColor;
Gel4.BackColor = backColor;
mCRadio.BackColor = Color.GreenYellow;
}
private void McradionB_CheckedChanged(object sender, EventArgs e)
{
MCRadioButton mCRadio = sender as MCRadioButton;
Gel5.BackColor = backColor;
Gel6.BackColor = backColor;
Gel7.BackColor = backColor;
Gel8.BackColor = backColor;
mCRadio.BackColor = Color.GreenYellow;
}
#endregion
#region 返回数据读取
private void Timer1_Tick()
{
bool mixok1 = PlcConnect.Instance.ReadBool("DB3000.0.0").Content;
Time(1, mixok1 ? 1 : 0);
bool mixok2 = PlcConnect.Instance.ReadBool("DB3000.0.1").Content;
Time(2, mixok2 ? 1 : 0);
bool mixok3 = PlcConnect.Instance.ReadBool("DB3000.0.2").Content;
Time(3, mixok3 ? 1 : 0);
bool mixok4 = PlcConnect.Instance.ReadBool("DB3000.0.3").Content;
Time(4, mixok4 ? 1 : 0);
bool mixok5 = PlcConnect.Instance.ReadBool("DB3000.0.4").Content;
Time(5, mixok5 ? 1 : 0);
bool mixok6 = PlcConnect.Instance.ReadBool("DB3000.0.5").Content;
Time(6, mixok6 ? 1 : 0);
bool mixok7 = PlcConnect.Instance.ReadBool("DB3000.0.6").Content;
Trace.WriteLine("7号信号:" + mixok7);
Time(7, mixok7 ? 1 : 0);
bool mixok8 = PlcConnect.Instance.ReadBool("DB3000.0.7").Content;
Trace.WriteLine("8号信号:" + mixok8);
Time(8, mixok8 ? 1 : 0);
}
private void Time(int deviceNo, int statu)
{
if (WetStatus.ContainsKey(deviceNo) == false)
{
WetStatus.Add(deviceNo, statu);
DonwloadWetState(deviceNo, statu);
}
if (WetStatus[deviceNo] != statu)
{
WetStatus[deviceNo] = statu;
DonwloadWetState(deviceNo, statu);
}
}
private void DonwloadWetState(int deviceNo, int statu)
{
string userName= string.IsNullOrWhiteSpace(UserInfo.Instance.UserName) ? "Edit" : UserInfo.Instance.UserName;
if (userName.Length > 0 && userName != "Edit")
{
//即使网络不同 也不会影响上位机的使用
ThreadPool.QueueUserWorkItem(delegate
{
TankIsDischargedSyncEntity tankIsDischargedSyncEntity = new TankIsDischargedSyncEntity()
{
reqCode = System.Guid.NewGuid().ToString(),
reqTime = DateTime.Now,
deviceNo = deviceNo.ToString(),
state = statu.ToString(),
};
HttpResponse httpResponse = new HttpResponse();
MesnacServiceManager.Instance.LoggingService.Info($"湿混机{deviceNo}下发请求:{statu}");
string returnTest = httpResponse.PostResponse(tankIsDischargedSyncEntity);
// LjManualLog.ManualLogControl($"湿混机{deviceNo}返回数据 " + returnTest);
MesnacServiceManager.Instance.LoggingService.Info($"湿混机{deviceNo}返回数据" + returnTest);
});
}
}
#endregion
#region Timer刷新方法 Plc读取
private void ReadFromPlc(object sender, EventArgs e)
{
DB2107 = new DB2107Helper();
DB2119 = new DB2119Helper();
DB2103 = new DB2103Helper();
no += 1;
if (no > 5)
{
no = 0;
Timer1_Tick();
}
if (GetAllDbMCControlsByOption(DbOptionTypes.InitData).Count == 0)
{
timer.Stop();
timer.Dispose();
}
#region 称量结束日志
//if (DB2119.Coolwater_A.Dos_End)
//{
// if (PlcControl("DB2119.28.3", false))
// {
// LjLogControl.ManualLogControl("冷水称A称量结束", DB2119.Coolwater_A.Value_Initial, 2, 3, 1);
// LogSelect("");
// }
//}
//if (DB2119.Hotwater_A.Dos_End)
//{
// if (PlcControl("DB2119.8.3", false))
// {
// LjLogControl.ManualLogControl("热水称A称量结束", DB2119.Hotwater_A.Value_Initial, 2, 1, 1);
// LogSelect("");
// }
//}
//if (DB2119.Coolwater_B.Dos_End)
//{
// if (PlcControl("DB2119.38.3", false))
// {
// LjLogControl.ManualLogControl("冷水称B称量结束", DB2119.Coolwater_B.Value_Initial, 2, 4, 1);
// LogSelect("");
// }
//}
//if (DB2119.Hotwater_B.Dos_End)
//{
// if (PlcControl("DB2119.18.3", false))
// {
// LjLogControl.ManualLogControl("热水称B称量结束", DB2119.Hotwater_B.Value_Initial, 2, 2, 1);
// LogSelect("");
// }
//}
//if (DB2119.Spiral_A.Dos_End)
//{
// if (PlcControl("DB2119.60.3", false))
// {
// if (DB2119.Spiral_A.Weter_Bin == 1)
// {
// LjLogControl.ManualLogControl("湿混机1称量结束", DB2119.Spiral_A.Value_Weight, 4, 1, 2);
// LogSelect("");
// }
// else if (DB2119.Spiral_A.Weter_Bin == 2)
// {
// LjLogControl.ManualLogControl("湿混机2称量结束", DB2119.Spiral_A.Value_Weight, 4, 2, 2);
// LogSelect("");
// }
// else
// {
// LjLogControl.ManualLogControl("螺旋1称量结束", DB2119.Spiral_A.Value_Weight, 4, 12, 2);
// LogSelect("");
// }
// }
//}
//if (DB2119.Spiral_B.Dos_End)
//{
// if (PlcControl("DB2119.82.3", false))
// {
// if (DB2119.Spiral_B.Weter_Bin == 1)
// {
// LjLogControl.ManualLogControl("湿混机3称量结束", DB2119.Spiral_B.Value_Weight, 4, 3, 2);
// LogSelect("");
// }
// else if (DB2119.Spiral_B.Weter_Bin == 2)
// {
// LjLogControl.ManualLogControl("湿混机4称量结束", DB2119.Spiral_B.Value_Weight, 4, 4, 2);
// LogSelect("");
// }
// else
// {
// LjLogControl.ManualLogControl("螺旋2称量结束", DB2119.Spiral_B.Value_Weight, 4, 34, 2);
// LogSelect("");
// }
// }
//}
//if (DB2119.Spiral_C.Dos_End)
//{
// if (PlcControl("DB2119.104.3", false))
// {
// if (DB2119.Spiral_C.Weter_Bin == 1)
// {
// LjLogControl.ManualLogControl("湿混机5称量结束", DB2119.Spiral_C.Value_Weight, 4, 5, 2);
// LogSelect("");
// }
// else if (DB2119.Spiral_C.Weter_Bin == 2)
// {
// LjLogControl.ManualLogControl("湿混机6称量结束", DB2119.Spiral_C.Value_Weight, 4, 6, 2);
// LogSelect("");
// }
// else
// {
// LjLogControl.ManualLogControl("螺旋1称量结束", DB2119.Spiral_C.Value_Weight, 4, 56, 2);
// LogSelect("");
// }
// }
//}
#endregion
#region 实际值 称量值指示
WaterActualValue1.MCValue = DB2107.Weight.WScale_3.ActWeight;
WaterActualValue2.MCValue = DB2107.Weight.WScale_1.ActWeight;
WaterActualValue3.MCValue = DB2107.Weight.WScale_4.ActWeight;
WaterActualValue4.MCValue = DB2107.Weight.WScale_2.ActWeight;
//WaterMetValue1.MCValue = DB2119.Coolwater_A.Value_Initial;
//WaterMetValue2.MCValue = DB2119.Hotwater_A.Value_Initial;
//WaterMetValue3.MCValue = DB2119.Coolwater_B.Value_Initial;
//WaterMetValue4.MCValue = DB2119.Hotwater_B.Value_Initial;
SpiralActValue1.MCValue = DB2103.DM2ASF01.ACT_Speed;
SpiralActValue2.MCValue = DB2103.DM2BSF01.ACT_Speed;
SpiralActValue3.MCValue = DB2103.DM2CSF01.ACT_Speed;
SpiralActValue4.MCValue = DB2103.DM2DSF01.ACT_Speed;
//SpiralMetValue1.MCValue = DB2119.Spiral_A.Value_Weight;
//SpiralMetValue2.MCValue = DB2119.Spiral_B.Value_Weight;
//SpiralMetValue3.MCValue = DB2119.Spiral_C.Value_Weight;
#endregion
#region 水称状态指示
//if (DB2119.Coolwater_A.Dos_Status)
//{
// MetageState1.MCValue = "正在称量";
//}
//else
//{
// MetageState1.MCValue = "停止称量";
//}
//if (DB2119.Coolwater_A.Dis_Status)
//{
// WaterOutState1.MCValue = "正在排水";
//}
//else
//{
// WaterOutState1.MCValue = "停止排水";
//}
//if (DB2119.Hotwater_A.Dos_Status)
//{
// MetageState2.MCValue = "正在称量";
//}
//else
//{
// MetageState2.MCValue = "停止称量";
//}
//if (DB2119.Hotwater_A.Dis_Status)
//{
// WaterOutState2.MCValue = "正在排水";
//}
//else
//{
// WaterOutState2.MCValue = "停止排水";
//}
//if (DB2119.Coolwater_B.Dos_Status)
//{
// MetageState3.MCValue = "正在称量";
//}
//else
//{
// MetageState3.MCValue = "停止称量";
//}
//if (DB2119.Coolwater_B.Dis_Status)
//{
// WaterOutState3.MCValue = "正在排水";
//}
//else
//{
// WaterOutState3.MCValue = "停止排水";
//}
//if (DB2119.Hotwater_B.Dos_Status)
//{
// MetageState4.MCValue = "正在称量";
//}
//else
//{
// MetageState4.MCValue = "停止称量";
//}
//if (DB2119.Hotwater_B.Dis_Status)
//{
// WaterOutState4.MCValue = "正在排水";
//}
//else
//{
// WaterOutState4.MCValue = "停止排水";
//}
#endregion
#region 螺旋状态指示
//if (DB2119.Spiral_A.Dos_Status)
//{
// SpiralState1.MCValue = "正在螺旋";
//}
//else
//{
// SpiralState1.MCValue = "停止螺旋";
//}
//if (DB2119.Spiral_B.Dos_Status)
//{
// SpiralState2.MCValue = "正在螺旋";
//}
//else
//{
// SpiralState2.MCValue = "停止螺旋";
//}
//if (DB2119.Spiral_C.Dos_Status)
//{
// SpiralState3.MCValue = "正在螺旋";
//}
//else
//{
// SpiralState3.MCValue = "停止螺旋";
//}
//Read = PlcConnect.Instance.Read("DB2119..0", 1);
//content = Read.Content;
//Byt = content[0];
//State1 = Byt.GetBit(2);
//if (State1)
//{
// MetageState4.MCValue = "正在螺旋";
//}
//else
//{
// MetageState4.MCValue = "停止螺旋";
//}
#endregion
ReadHslSwithch();
}
#endregion
#region 控件获取帮助
/// <summary>
/// InitData控件获取
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
private IBaseControl GetBaseControl(string name)
{
return McControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey == name).FirstOrDefault().BaseControl;
}
/// <summary>
/// Modify控件获取
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
private IBaseControl _GetBaseControl(string name)
{
return _McControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey == name).FirstOrDefault().BaseControl;
}
#endregion
#region 日志控制
/// <summary>
/// 日志查询
/// </summary>
/// <param name="txt">查询关键字</param>
private void LogSelect(string txt)
{
DataTable table = LjLogControl.ManualLogSelect(txt);
if (this.materialGridControl != null && this.materialGridControl.BaseControl != null)
{
this.materialGridControl.BaseControl.BindDataSource = null;
this.materialGridControl.BaseControl.BindDataSource = table;
}
else
{
ICSharpCode.Core.LoggingService<InitAction>.Warn("ManualContrlolAction 手动操作日志信息控件为Null...");
}
}
#endregion
private bool PlcControl(string address, bool state)
{
return PlcConnect.Instance.Write(address, state).IsSuccess;
}
private void FillHslSwitch()
{
//hslSwitchEntity
hslSwitchEntity = new HslSwitchEntity();
var sourceType = hslSwitchEntity.GetType();
PropertyInfo[] sourcePropertyInfoList = sourceType.GetProperties();
foreach (PropertyInfo sourceProperty in sourcePropertyInfoList)
{
string name = sourceProperty.Name;
var pro = allControl.FirstOrDefault(x => x.Name == name) as HslSwitch;
DefaultSwitch(pro);
pro.OnSwitchChanged += Pro_OnSwitchChanged;
sourceProperty.SetValue(hslSwitchEntity, pro);
}
ReadHslSwithch();
//DefaultSwitch
}
private void ReadHslSwithch()
{
var rd = Db3000Helper.ReadModel();
hslSwitchEntity.HslSwitch1.SwitchStatus = rd[0];
hslSwitchEntity.HslSwitch2.SwitchStatus = rd[1];
hslSwitchEntity.HslSwitch3.SwitchStatus = rd[2];
hslSwitchEntity.HslSwitch4.SwitchStatus = rd[3];
hslSwitchEntity.HslSwitch5.SwitchStatus = rd[4];
hslSwitchEntity.HslSwitch6.SwitchStatus = rd[5];
hslSwitchEntity.HslSwitch7.SwitchStatus = rd[6];
hslSwitchEntity.HslSwitch8.SwitchStatus = rd[7];
}
private void Pro_OnSwitchChanged(object arg1, bool arg2)
{
HslSwitch hslSwitch = arg1 as HslSwitch;
string name = hslSwitch.Name;
int no = Convert.ToInt32(name.Replace("HslSwitch", ""));
Db3000Helper.WriteModel(no, arg2);
DefaultSwitch(hslSwitch);
}
private void DefaultSwitch(HslSwitch hslSwitch)
{
string name = hslSwitch.Name;
string status = hslSwitch.SwitchStatus ? "开" : "关";
string message = "";
if (name == "HslSwitch1")
{
message = "湿混机1:" + status;
}
if (name == "HslSwitch2")
{
message = "湿混机2:" + status;
}
if (name == "HslSwitch3")
{
message = "湿混机3:" + status;
}
if (name == "HslSwitch4")
{
message = "湿混机4:" + status;
}
if (name == "HslSwitch5")
{
message = "湿混机5:" + status;
}
if (name == "HslSwitch6")
{
message = "湿混机6:" + status;
}
if (name == "HslSwitch7")
{
message = "湿混机7:" + status;
}
if (name == "HslSwitch8")
{
message = "湿混机8:" + status;
}
hslSwitch.Text = message;
}
}
}