|
|
using DataBlockHelper;
|
|
|
using HslCommunication;
|
|
|
using Mesnac.Action.Base;
|
|
|
using Mesnac.Action.ChemicalWeighing.FreeDb;
|
|
|
using Mesnac.Action.ChemicalWeighing.LjMaterial;
|
|
|
using Mesnac.Basic;
|
|
|
using Mesnac.Controls.Base;
|
|
|
using Mesnac.Core.Service;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Data;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
namespace Mesnac.Action.ChemicalWeighing.ManualControl
|
|
|
{
|
|
|
public class InitAction : ChemicalWeighingAction, IAction
|
|
|
{
|
|
|
|
|
|
List<DbMCControl> McControllist;
|
|
|
|
|
|
OperateResult<byte[]> Read;
|
|
|
|
|
|
byte[] content;
|
|
|
|
|
|
DbMCControl materialGridControl;
|
|
|
|
|
|
Timer timer;
|
|
|
|
|
|
int flag = 0;
|
|
|
|
|
|
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 MetageState1;
|
|
|
IBaseControl MetageState2;
|
|
|
IBaseControl MetageState3;
|
|
|
IBaseControl MetageState4;
|
|
|
IBaseControl WaterOutState1;
|
|
|
IBaseControl WaterOutState2;
|
|
|
IBaseControl WaterOutState3;
|
|
|
IBaseControl WaterOutState4;
|
|
|
IBaseControl SpiralState1;
|
|
|
IBaseControl SpiralState2;
|
|
|
IBaseControl SpiralState3;
|
|
|
IBaseControl SpiralState4;
|
|
|
|
|
|
bool State1;
|
|
|
bool State2;
|
|
|
byte Byt;
|
|
|
|
|
|
public void Run(RuntimeParameter runtime)
|
|
|
{
|
|
|
|
|
|
base.RunIni(runtime); //必须要调用的
|
|
|
|
|
|
//InitTimer();
|
|
|
|
|
|
//timer.Start();
|
|
|
|
|
|
McControllist = GetAllDbMCControlsByOption(DbOptionTypes.InitData);
|
|
|
|
|
|
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");
|
|
|
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");
|
|
|
|
|
|
materialGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "ManualLogGridView").FirstOrDefault();
|
|
|
|
|
|
DataTable table = DBHelp.GetTable(@"select top 100 id, logtext, logtime from Manual_Log order by id desc");
|
|
|
|
|
|
if (this.materialGridControl != null && this.materialGridControl.BaseControl != null)
|
|
|
{
|
|
|
this.materialGridControl.BaseControl.BindDataSource = null;
|
|
|
this.materialGridControl.BaseControl.BindDataSource = table;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService<InitAction>.Warn("手动操作日志信息控件为Null...");
|
|
|
}
|
|
|
|
|
|
timer = new Timer();
|
|
|
timer.Interval = 1000;
|
|
|
timer.Enabled = true;
|
|
|
timer.Tick += new EventHandler(ReadFromPlc);//添加事件
|
|
|
|
|
|
}
|
|
|
|
|
|
private void ReadFromPlc(object sender, EventArgs e)
|
|
|
{
|
|
|
flag += 1;
|
|
|
if(flag > 10)
|
|
|
{
|
|
|
flag = 0;
|
|
|
DataTable table = DBHelp.GetTable(@"select top 100 id, logtext, logtime from Manual_Log order by id desc");
|
|
|
|
|
|
if (this.materialGridControl != null && this.materialGridControl.BaseControl != null)
|
|
|
{
|
|
|
this.materialGridControl.BaseControl.BindDataSource = null;
|
|
|
this.materialGridControl.BaseControl.BindDataSource = table;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
ICSharpCode.Core.LoggingService<InitAction>.Warn("手动操作日志信息控件为Null...");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (GetAllDbMCControlsByOption(DbOptionTypes.InitData).Count == 0)
|
|
|
{
|
|
|
timer.Stop();
|
|
|
timer.Dispose();
|
|
|
}
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.22.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
WaterActualValue1.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.2.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
WaterActualValue2.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.32.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
WaterActualValue3.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.12.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
WaterActualValue4.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.24.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
WaterMetValue1.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.4.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
WaterMetValue2.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.34.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
WaterMetValue3.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.14.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
WaterMetValue4.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.42.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
SpiralActValue1.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.64.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
SpiralActValue2.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.86.0", 2);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
SpiralActValue3.MCValue = PlcConnect.Instance.ByteTransform.TransInt16(content, 0);
|
|
|
|
|
|
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.28.0", 1);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
Byt = content[0];
|
|
|
|
|
|
State1 = Byt.GetBit(2);
|
|
|
State2 = Byt.GetBit(6);
|
|
|
|
|
|
if (State1)
|
|
|
{
|
|
|
MetageState1.MCValue = "正在称量";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MetageState1.MCValue = "停止称量";
|
|
|
}
|
|
|
|
|
|
if (State2)
|
|
|
{
|
|
|
WaterOutState1.MCValue = "正在排水";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
WaterOutState1.MCValue = "停止排水";
|
|
|
}
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.8.0", 1);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
Byt = content[0];
|
|
|
|
|
|
State1 = Byt.GetBit(2);
|
|
|
State2 = Byt.GetBit(6);
|
|
|
|
|
|
if (State1)
|
|
|
{
|
|
|
MetageState2.MCValue = "正在称量";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MetageState2.MCValue = "停止称量";
|
|
|
}
|
|
|
|
|
|
if (State2)
|
|
|
{
|
|
|
WaterOutState2.MCValue = "正在排水";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
WaterOutState2.MCValue = "停止排水";
|
|
|
}
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.38.0", 1);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
Byt = content[0];
|
|
|
|
|
|
State1 = Byt.GetBit(2);
|
|
|
State2 = Byt.GetBit(6);
|
|
|
|
|
|
if (State1)
|
|
|
{
|
|
|
MetageState3.MCValue = "正在称量";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MetageState3.MCValue = "停止称量";
|
|
|
}
|
|
|
|
|
|
if (State2)
|
|
|
{
|
|
|
WaterOutState3.MCValue = "正在排水";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
WaterOutState3.MCValue = "停止排水";
|
|
|
}
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.18.0", 1);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
Byt = content[0];
|
|
|
|
|
|
State1 = Byt.GetBit(2);
|
|
|
State2 = Byt.GetBit(6);
|
|
|
|
|
|
if (State1)
|
|
|
{
|
|
|
MetageState4.MCValue = "正在称量";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
MetageState4.MCValue = "停止称量";
|
|
|
}
|
|
|
|
|
|
if (State2)
|
|
|
{
|
|
|
WaterOutState4.MCValue = "正在排水";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
WaterOutState4.MCValue = "停止排水";
|
|
|
}
|
|
|
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.60.0", 1);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
Byt = content[0];
|
|
|
|
|
|
State1 = Byt.GetBit(2);
|
|
|
|
|
|
if (State1)
|
|
|
{
|
|
|
SpiralState1.MCValue = "正在螺旋";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SpiralState1.MCValue = "停止螺旋";
|
|
|
}
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.82.0", 1);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
Byt = content[0];
|
|
|
|
|
|
State1 = Byt.GetBit(2);
|
|
|
|
|
|
if (State1)
|
|
|
{
|
|
|
SpiralState2.MCValue = "正在螺旋";
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SpiralState2.MCValue = "停止螺旋";
|
|
|
}
|
|
|
|
|
|
Read = PlcConnect.Instance.Read("DB2119.104.0", 1);
|
|
|
|
|
|
content = Read.Content;
|
|
|
|
|
|
Byt = content[0];
|
|
|
|
|
|
State1 = Byt.GetBit(2);
|
|
|
|
|
|
if (State1)
|
|
|
{
|
|
|
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 = "停止螺旋";
|
|
|
//}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
//private void InitTimer()
|
|
|
//{
|
|
|
// //设置定时间隔(毫秒为单位)
|
|
|
// int interval = 900;
|
|
|
// timer = new System.Timers.Timer(interval);
|
|
|
// //设置执行一次(false)还是一直执行(true)
|
|
|
// timer.AutoReset = true;
|
|
|
// //设置是否执行System.Timers.Timer.Elapsed事件
|
|
|
// timer.Enabled = true;
|
|
|
// //绑定Elapsed事件
|
|
|
// timer.Elapsed += new System.Timers.ElapsedEventHandler(ReadFromPlc);
|
|
|
//}
|
|
|
|
|
|
|
|
|
private IBaseControl GetBaseControl(string name)
|
|
|
{
|
|
|
return McControllist.Where(t => t.BaseControl.MCKey != null && t.BaseControl.MCKey == name).FirstOrDefault().BaseControl;
|
|
|
}
|
|
|
|
|
|
|
|
|
private void ManualLogControl(string logName)
|
|
|
{
|
|
|
var Log = new ManualLogEntity()
|
|
|
{
|
|
|
logtext = logName,
|
|
|
logtime = DateTime.Now,
|
|
|
userid = string.IsNullOrWhiteSpace(UserInfo.Instance.UserName) ? "Edit" : UserInfo.Instance.UserName
|
|
|
};
|
|
|
|
|
|
FreeSqlUnit.Instance.Insert<ManualLogEntity>(Log).ExecuteIdentity();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|