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/BasePlcHelper.cs

1847 lines
81 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Reflection;
using ICSharpCode.Core;
using Mesnac.Basic;
using Mesnac.Equips;
using Mesnac.Codd.Session;
using Mesnac.Action.ChemicalWeighing.Entity;
namespace Mesnac.Action.ChemicalWeighing
{
/// <summary>
/// Plc操作辅助类
/// </summary>
public class BasePlcHelper
{
#region 单例模式
private static BasePlcHelper _this = null;
public static BasePlcHelper Instance
{
get
{
if (null == _this)
_this = new BasePlcHelper();
return _this;
}
}
private BasePlcHelper()
{
foreach (PropertyInfo pi in this.GetType().GetProperties())
{
if (pi.PropertyType == typeof(DataKeyValue))
{
DataKeyValue data = new DataKeyValue(pi.Name);
pi.SetValue(this, data, null);
}
}
}
#endregion
#region 方法定义
#region GetDataKeyValue
public DataKeyValue GetDataKeyValue(string key)
{
foreach (PropertyInfo pi in this.GetType().GetProperties())
{
if (pi.PropertyType == typeof(DataKeyValue))
{
DataKeyValue data = (DataKeyValue)pi.GetValue(this, null);
if (data.FieldKey.ToLower() == key.ToLower())
{
return data;
}
}
}
return null;
}
#endregion
#region 从PLC中读取原始数据的方法
/// <summary>
/// 从PLC中读取原始数据
/// </summary>
/// <param name="dataName">要读取的设备变量名称</param>
/// <param name="dataValue">从PLC读取的值</param>
/// <returns>成功返回true失败返回false</returns>
public bool PlcRead(string dataName, out int[] dataValue)
{
return Mesnac.Equips.Factory.Instance.Read(dataName, out dataValue);
}
/// <summary>
/// 根据设备名称读取指定数据块,指定起始字,指定长度的数据
/// </summary>
/// <param name="equipName">设备名称</param>
/// <param name="block">数据块</param>
/// <param name="start">起始字</param>
/// <param name="len">长度</param>
/// <param name="dataValue">输出数据</param>
/// <returns>成功返回true失败返回false</returns>
public bool PlcRead(string equipName, string block, int start, int len, out Int16[] dataValue)
{
return Mesnac.Equips.Factory.Instance.Read(equipName, block, start, len, out dataValue);
}
/// <summary>
/// 从PLC中读取原始数据
/// </summary>
/// <param name="dataKey"></param>
/// <param name="dataValue"></param>
/// <returns></returns>
public bool PlcRead(DataKeyValue dataKey, out int[] dataValue)
{
return PlcRead(dataKey.EquipKey, out dataValue);
}
/// <summary>
/// 按设备变量别名从PLC读取数据
/// </summary>
/// <param name="runName">PLC设备变量别名</param>
/// <param name="dataValue">读取值</param>
/// <returns>读取成功返回true失败返回false</returns>
public bool PlcReadByRunName(string runName, out int[] dataValue)
{
return Mesnac.Equips.Factory.Instance.ReadByRunName(runName, out dataValue);
}
public object PlcLastValueRead(string dataName)
{
return Mesnac.Equips.Factory.Instance.ReadLastValue(dataName);
}
/// <summary>
/// 读取设备数据
/// </summary>
/// <param name="dataName">设备变量名称</param>
/// <param name="dataValue">读取的设备值</param>
/// <returns>读取成功返回true失败返回false</returns>
public bool PlcLastValueRead(string dataName, out int[] dataValue)
{
return Mesnac.Equips.Factory.Instance.ReadLastValue(dataName, out dataValue);
}
#endregion
#region 向PLC变量中写入值并不真正下传至PLC
/// <summary>
/// 向PLC变量中写入值并不真正下传至PLC
/// </summary>
/// <param name="equipKey"></param>
/// <param name="runName"></param>
/// <param name="shifting"></param>
/// <param name="dataValue"></param>
/// <returns></returns>
public bool PlcVarWrite(string equipKey, string runName, int shifting, object dataValue)
{
StringBuilder log = new StringBuilder();
try
{
//log.Append("equipKey=[").Append(equipKey).Append("]runName=[").Append(runName);
foreach (Mesnac.Equips.BaseEquip equip in Factory.Instance.AllEquips.Values)
{
foreach (Mesnac.Equips.BaseInfo.Group group in equip.Group.Values)
{
if (group.Access == System.IO.FileAccess.Write ||
group.Access == System.IO.FileAccess.ReadWrite)
{
foreach (Mesnac.Equips.BaseInfo.Data data in group.Data.Values)
{
if (data.KeyName == equipKey ||
(!String.IsNullOrEmpty(data.RunName) && data.RunName == runName))
{
try
{
data.Value = dataValue;
return true;
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService.Error(ex.Message);
return false;
}
}
}
}
}
}
//log.Append("]No Find");
return false;
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService.Error("写入PLC变量值失败" + ex.Message, ex);
return false;
}
finally
{
//if (log.Length > "equipKey=[]runName=[]No Find".Length)
//{
// action.LogDebug(log.AppendLine("...").ToString());
//}
}
}
/// <summary>
/// 向PLC变量中写入值并不真正下传至PLC
/// </summary>
/// <param name="equipKey"></param>
/// <param name="shifting"></param>
/// <param name="dataValue"></param>
/// <returns></returns>
public bool PlcVarWriteByDataKey(string equipKey, int shifting, object dataValue)
{
return PlcVarWrite(equipKey, string.Empty, shifting, dataValue);
}
/// <summary>
/// 向PLC变量中写入值并不真正下传至PLC
/// </summary>
/// <param name="dataKey"></param>
/// <param name="shifting"></param>
/// <param name="dataValue"></param>
/// <returns></returns>
public bool PlcVarWriteByDataKey(DataKeyValue dataKey, int shifting, object dataValue)
{
return PlcVarWriteByDataKey(dataKey.EquipKey, shifting, dataValue);
}
/// <summary>
/// 向PLC变量中写入值并不真正下传至PLC
/// </summary>
/// <param name="dataKey"></param>
/// <param name="dataValue"></param>
/// <returns></returns>
public bool PlcVarWriteByDataKey(DataKeyValue dataKey, object dataValue)
{
return PlcVarWriteByDataKey(dataKey, 0, dataValue);
}
#endregion
#region Plc写入方法真正写入PLC
/// <summary>
/// PlcWrite
/// </summary>
/// <param name="equipKey"></param>
/// <param name="runName"></param>
/// <param name="shifting"></param>
/// <param name="dataValue"></param>
/// <param name="isOutFlag"></param>
/// <returns></returns>
private bool PlcWrite(string equipKey, string runName, int shifting, object[] dataValue,
params bool[] isOutFlag)
{
StringBuilder log = new StringBuilder();
try
{
log.Append("equipKey=[").Append(equipKey).Append("]runName=[").Append(runName);
foreach (Mesnac.Equips.BaseEquip equip in Factory.Instance.AllEquips.Values)
{
foreach (Mesnac.Equips.BaseInfo.Group group in equip.Group.Values)
{
if (group.Access == System.IO.FileAccess.Write ||
group.Access == System.IO.FileAccess.ReadWrite)
{
foreach (Mesnac.Equips.BaseInfo.Data data in group.Data.Values)
{
//if (data.KeyName == equipKey || data.RunName == runName)
//if (data.KeyName == equipKey)
if (data.KeyName == equipKey ||
(!String.IsNullOrEmpty(data.RunName) && data.RunName == runName))
{
int block = 0;
if (int.TryParse(group.Block.ToString(), out block))
{
log.Append("]shifting=[")
.Append((group.Start + data.Start + shifting).ToString());
log.Append("]dataLen=[").Append(dataValue.Length);
log.Append("]Find Result=");
foreach (object v in dataValue)
{
log.Append(v + ",");
}
#region 二进制位写入
if (data.Method.StartsWith("Default_Bit"))
{
string parameters = data.Method.Replace("Default_Bit(", String.Empty)
.Replace(")", String.Empty);
string[] ps = parameters.Split(new char[] { ',' });
int startIndex = 0;
int length = 1;
if (ps.Length == 1) //单参数判断
{
if (!int.TryParse(ps[0], out startIndex))
{
log.Append(
"[false](Convert The Bit method first parameter to int failure!)");
return false;
}
}
else if (ps.Length == 2) //多参数判断
{
if (!int.TryParse(ps[0], out startIndex))
{
log.Append(
"[false](Convert The Bit method first parameter to int failure!)");
return false;
}
if (!int.TryParse(ps[1], out length))
{
log.Append(
"[false](Convert The Bit method second parameter to int failure!)");
return false;
}
}
object originalValue = 0; //保存原始值
if (data.Len == 1) //如果len=1则为Int16类型
{
int[] buff = null;
if (PlcRead(data.KeyName, out buff))
{
originalValue = buff[0];
originalValue =
Mesnac.Basic.DataProcessor.Swap(
short.Parse(originalValue.ToString()));
}
else
{
ICSharpCode.Core.LoggingService<BasePlcHelper>.Warn(
String.Format("在进行二进制写入时读取设备变量[{0}]失败!", data.KeyName));
}
}
else if (data.Len == 2) //如果len=2则为Int32类型
{
int[] buff = null;
if (PlcRead(data.KeyName, out buff))
{
if (equip.Main.Brand == Mesnac.Basic.PlcBrand.Siemens)
{
originalValue = Mesnac.Basic.DataProcessor.ToSiemensInt32(buff);
}
else
{
originalValue = Mesnac.Basic.DataProcessor.ToInt32(buff);
}
}
else
{
ICSharpCode.Core.LoggingService<BasePlcHelper>.Warn(
String.Format("在进行二进制写入时读取设备变量[{0}]失败!", data.KeyName));
}
}
object[] newValue = null;
if (data.Len == 1)
{
newValue = new object[]
{
Mesnac.Basic.DataProcessor.SetBitValue(originalValue, startIndex,
length, dataValue[0])
};
//从PLC中读取到的值进行高低位转换
int int16 = Mesnac.Basic.DataProcessor.Swap(
short.Parse(newValue[0].ToString()));
newValue = new object[] { int16 };
////解析为二进制数组
//int[] binaryAlarmData = Mesnac.Basic.DataProcessor.ParseBinaryValue(int16, int16*2);
//String str = "";
//for (int i = 0; i < (int16 * 2); i++)
//{
// //按照偏移量对数组进行赋值
// if (i == group.Start + data.Start + shifting)
// {
// if (int.Parse(dataValue[0].ToString()) == 0)
// {
// binaryAlarmData[i] = 0;
// }
// else
// {
// binaryAlarmData[i] = 1;
// }
// }
// str += binaryAlarmData[i].ToString();
//}
//Int16 iwrite = Convert.ToInt16(str,2);
//int swpint16 = Mesnac.Basic.DataProcessor.Swap(iwrite);
////获取二进制数组字符串
//newValue = new object[] { swpint16 };
//if (equip.Write(block, group.Start + data.Start + shifting, newValue))
//{
// log.Append("[true]");
// return true;
//}
//else
//{
// log.Append("[false]");
// return false;
//}
//int writedata = Mesnac.Basic.DataProcessor.ToInt32(binaryAlarmData);
}
else if (data.Len == 2)
{
object objNewValue =
Mesnac.Basic.DataProcessor.SetBitValue32(originalValue, startIndex,
length, dataValue[0]);
int intNewValue = Convert.ToInt32(objNewValue);
if (equip.Main.Brand == Mesnac.Basic.PlcBrand.Siemens)
{
newValue =
Mesnac.Basic.DataProcessor.ToSiemensPLCDataArray(intNewValue);
}
else
{
newValue = Mesnac.Basic.DataProcessor.ToPLCDataArray(intNewValue);
}
}
if (equip.Write(block, group.Start + data.Start + shifting, newValue))
{
log.Append("[true]");
return true;
}
else
{
log.Append("[false]");
return false;
}
}
#endregion
if (equip.Write(block, group.Start + data.Start + shifting, dataValue))
{
log.Append("[true]");
return true;
}
else
{
log.Append("[false]");
return false;
}
}
}
}
}
}
}
log.Append("]No Find");
return false;
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService<BasePlcHelper>.Error("下传PLC失败" + ex.Message, ex);
return false;
}
finally
{
if (isOutFlag.Length == 0 || isOutFlag[0] == true)
{
if (log.Length > "equipKey=[]runName=[]No Find".Length)
{
ICSharpCode.Core.LoggingService<BasePlcHelper>.Debug(log.AppendLine("...").ToString());
}
}
}
}
public bool PlcWriteByRunName(string runName, int shifting, object[] dataValue)
{
return PlcWrite(string.Empty, runName, shifting, dataValue);
}
public bool PlcWriteByRunName(string runName, object[] dataValue)
{
return PlcWriteByRunName(runName, 0, dataValue);
}
public bool PlcWriteByEquipKey(string equipKey, int shifting, object[] dataValue)
{
return PlcWrite(equipKey, string.Empty, shifting, dataValue);
}
public bool PlcWriteByEquipKey(string equipKey, object[] dataValue)
{
return PlcWriteByEquipKey(equipKey, 0, dataValue);
}
public bool PlcWriteByDataKey(DataKeyValue dataKey, int shifting, object[] dataValue)
{
return PlcWriteByEquipKey(dataKey.EquipKey, shifting, dataValue);
}
public bool PlcWriteByDataKey(DataKeyValue dataKey, object[] dataValue)
{
return PlcWriteByDataKey(dataKey, 0, dataValue);
}
public bool PlcWriteByDataKey(DataKeyValue dataKey, string dataValue)
{
object[] buff = null;
buff = new object[dataKey.EquipData.Len];
for (int i = 0; i < buff.Length; i++)
{
buff[i] = 0;
}
object[] planIDData = Mesnac.Basic.DataProcessor.ToPLCDataArray(dataValue);
if (planIDData.Length <= buff.Length)
{
Array.Copy(planIDData, buff, planIDData.Length);
}
else
{
Array.Copy(planIDData, buff, buff.Length);
}
return PlcWriteByDataKey(dataKey, buff);
}
//增加是否输出日志
public bool PlcWriteByEquipKey(string equipKey, int shifting, object[] dataValue, bool isOutLog)
{
return PlcWrite(equipKey, string.Empty, shifting, dataValue, isOutLog);
}
//增加是否输出日志
public bool PlcWriteByDataKey(DataKeyValue dataKey, int shifting, object[] dataValue, bool isOutLog)
{
return PlcWriteByEquipKey(dataKey.EquipKey, shifting, dataValue, isOutLog);
}
//增加是否输出日志
public bool PlcWriteByDataKey(DataKeyValue dataKey, object[] dataValue, bool isOutLog)
{
return PlcWriteByDataKey(dataKey, 0, dataValue, isOutLog);
}
/// <summary>
/// 向Plc变量写入float浮点数下传Plc
/// </summary>
/// <param name="dataKey"></param>
/// <param name="dataValue"></param>
/// <returns></returns>
public bool PlcWriteFloatByDataKey(DataKeyValue dataKey, float dataValue)
{
string equipName = dataKey.EquipKey;
if (dataKey.EquipKey.Contains("."))
{
equipName = dataKey.EquipKey.Split(new char[] { '.' })[0];
}
if (Factory.Instance.AllEquips[equipName].Main.Brand
.Equals("Siemens", StringComparison.CurrentCultureIgnoreCase))
{
return PlcWriteByDataKey(dataKey, 0, Mesnac.Basic.DataProcessor.ToSiemensPLCDataArray(dataValue));
}
else
{
return PlcWriteByDataKey(dataKey, 0, Mesnac.Basic.DataProcessor.ToPLCDataArray(dataValue));
}
}
/// <summary>
/// 向Plc变量写入float浮点数下传Plc
/// </summary>
/// <param name="dataKey"></param>
/// <param name="dataValue"></param>
/// <param name="isOutLog"></param>
/// <returns></returns>
public bool PlcWriteFloatByDataKey(DataKeyValue dataKey, float dataValue, bool isOutLog)
{
string equipName = dataKey.EquipKey;
if (dataKey.EquipKey.Contains("."))
{
equipName = dataKey.EquipKey.Split(new char[] { '.' })[0];
}
if (Factory.Instance.AllEquips[equipName].Main.Brand
.Equals("Siemens", StringComparison.CurrentCultureIgnoreCase))
{
return PlcWriteByDataKey(dataKey, 0, Mesnac.Basic.DataProcessor.ToSiemensPLCDataArray(dataValue),
isOutLog);
}
else
{
return PlcWriteByDataKey(dataKey, 0, Mesnac.Basic.DataProcessor.ToPLCDataArray(dataValue), isOutLog);
}
}
#endregion
#region PptPlcData表写入操作
/// <summary>
/// 把设备变量的值写入PptPlcData表
/// </summary>
/// <param name="dataKey">设备变量</param>
/// <param name="equipKey">设备</param>
/// <param name="shifting">偏移</param>
/// <param name="dataValue">值数组</param>
/// <returns></returns>
public bool DataWrite(string dataKey, string equipKey, int shifting, object[] dataValue)
{
if (string.IsNullOrWhiteSpace(dataKey))
{
dataKey = equipKey;
}
if (string.IsNullOrWhiteSpace(equipKey))
{
equipKey = dataKey;
}
DbHelper dbHelper =
Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.CommandType = System.Data.CommandType.Text;
dbHelper.ClearParameter();
#region 支持SQL2000
StringBuilder sqlstr =
new StringBuilder(
"INSERT INTO PptPlcData (PlcSchemaField, EquipRunName, PlcDataValue, PlcDataIndex, PlcDownState) ");
for (int i = 0; i < dataValue.Length; i++)
{
object obj = dataValue[i];
if (obj == null || obj == DBNull.Value)
{
obj = string.Empty;
}
string key1 = "@PlcSchemaField" + i.ToString();
string key2 = "@EquipRunName" + i.ToString();
string key3 = "@PlcDataValue" + i.ToString();
string key4 = "@PlcDataIndex" + i.ToString();
sqlstr.Append(" (select ").Append(key1).Append(" as PlcSchemaField").Append(",").Append(key2)
.Append(" as EquipRunName").Append(",").Append(key3).Append(" as PlcDataValue").Append(",")
.Append(key4).Append(" as PlcDataIndex").Append(",0 as PlcDownState)");
if (i < dataValue.Length - 1)
{
sqlstr.AppendLine("union all");
}
if (obj is PlcDataInfo)
{
PlcDataInfo data = obj as PlcDataInfo;
dbHelper.AddParameter(key1,
string.IsNullOrWhiteSpace(data.PlcSchemaField) ? dataKey : data.PlcSchemaField);
dbHelper.AddParameter(key2,
string.IsNullOrWhiteSpace(data.EquipRunName) ? equipKey : data.EquipRunName);
dbHelper.AddParameter(key3, data.PlcDataValue == null ? 0 : data.PlcDataValue);
dbHelper.AddParameter(key4, (shifting + i).ToString());
}
else
{
dbHelper.AddParameter(key1, dataKey);
dbHelper.AddParameter(key2, equipKey);
dbHelper.AddParameter(key3, obj);
dbHelper.AddParameter(key4, (shifting + i).ToString());
}
} //插入语句
#endregion
dbHelper.CommandText = sqlstr.ToString();
dbHelper.ExecuteNonQuery();
return true;
}
public bool DataWrite(string dataKey, string equipKey, object[] dataValue)
{
return DataWrite(dataKey, equipKey, 0, dataValue);
}
public bool DataWrite(string equipKey, object[] dataValue)
{
return DataWrite(equipKey, equipKey, 0, dataValue);
}
public bool DataWrite(DataKeyValue dataKey, int shifting, object[] dataValue)
{
return DataWrite(dataKey.Name, dataKey.EquipRunName, shifting, dataValue);
}
public bool DataWrite(DataKeyValue dataKey, object[] dataValue)
{
return DataWrite(dataKey, 0, dataValue);
}
#endregion
#endregion
#region 属性定义
#region 自定义设备变量
/// <summary>
/// 最小计划数由PLC实时读取
/// </summary>
public int MinPlanNum = 3;
#region PC在线标志
/// <summary>
/// 开门料仓号
/// </summary>
public DataKeyValue ChemicalWeighing_PC_Online = new DataKeyValue("PC_Online");
#endregion
/// <summary>
/// 小料PLC在线标志
/// </summary>
public DataKeyValue ChemicalWeighing_PLC_Online_Flag = new DataKeyValue("PLC_Online_Flag");
/// <summary>
/// 等待计划数
/// </summary>
public DataKeyValue ChemicalWeighing_Scheduled_Num = new DataKeyValue("Scheduled_Num");
#region 自动下传计划相关变量
/// <summary>
/// 小料PLC请求计划交互信息
/// </summary>
public DataKeyValue ChemicalWeighing_PLC_LoadingStatus = new DataKeyValue("PLC_LoadingStatus");
/// <summary>
/// 小料PC计划反馈交互信息
/// </summary>
public DataKeyValue ChemicalWeighing_PC_LoadingStatus = new DataKeyValue("PC_LoadingStatus");
/// <summary>
/// 速度1
/// </summary>
public DataKeyValue DwSpeed = new DataKeyValue("DwSpeed");
#endregion
#region 自动更新计划状态相关变量
/// <summary>
/// 小料PLC计划状态变化交互PLC请求信息
/// </summary>
public DataKeyValue ChemicalWeighing_PLC_Plan_Status_ShakeHand = new DataKeyValue("PLC_Plan_Status_ShakeHand");
/// <summary>
/// PC计划状态根据PLC状态更新交互信息
/// </summary>
public DataKeyValue ChemicalWeighing_PLC_Plan_Status_FeedBack = new DataKeyValue("PLC_Plan_Status_FeedBack");
/// <summary>
/// 小料计划序号
/// </summary>
public DataKeyValue ChemicalWeighing_Plan_Serial = new DataKeyValue("Plan_Serial");
/// <summary>
/// 小料计划状态
/// </summary>
public DataKeyValue ChemicalWeighing_Plan_Status = new DataKeyValue("Plan_Status");
/// <summary>
/// 小料计划完成数
/// </summary>
public DataKeyValue ChemicalWeighing_Plan_Number = new DataKeyValue("Plan_Number");
/// <summary>
/// 小料计划剩余数量
/// </summary>
public DataKeyValue ChemicalWeighing_Remain_Number = new DataKeyValue("Remain_Number");
#endregion
#region HMI配方列表请求相关变量
/// <summary>
/// 小料HMI配方查询请求信息
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Name_ShakeHand =
new DataKeyValue("HMI_Request_Recipe_Name_ShakeHand");
/// <summary>
/// PCHMI配方查询请求信息响应
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Name_FeedBack =
new DataKeyValue("HMI_Request_Recipe_Name_FeedBack");
/// <summary>
/// 读取到的机台号
/// </summary>
public DataKeyValue ChemicalWeighing_Sys_Machine = new DataKeyValue("Sys_Machine");
/// <summary>
/// 读取到的配方名称
/// </summary>
public DataKeyValue ChemicalWeighing_Plan_Code = new DataKeyValue("Plan_Code");
#endregion
#region HMI根据配方请求添加计划相关变量
/// <summary>
/// 小料HMI配方添加计划请求信息
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Confirm_Recipe_ShakeHand =
new DataKeyValue("HMI_Confirm_Recipe_ShakeHand");
/// <summary>
/// PCHMI配方添加计划请求信息响应
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Confirm_Recipe_FeedBack =
new DataKeyValue("HMI_Confirm_Recipe_FeedBack");
/// <summary>
/// 读取到的机台号
/// </summary>
public DataKeyValue ChemicalWeighing_Sys_Machine1 = new DataKeyValue("Sys_Machine1");
/// <summary>
/// 读取到的配方名称
/// </summary>
public DataKeyValue ChemicalWeighing_Plan_Code1 = new DataKeyValue("Plan_Code1");
/// <summary>
/// 设定数量
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Plan_Num = new DataKeyValue("HMI_Plan_Num");
#endregion
#region HMI请求修改计划相关变量
/// <summary>
/// PLCHMI修改计划请求信息
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Change_ShakeHand =
new DataKeyValue("HMI_Request_Recipe_Change_ShakeHand");
/// <summary>
/// PCHMI修改计划请求信息响应
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Change_FeedBack =
new DataKeyValue("HMI_Request_Recipe_Change_FeedBack");
/// <summary>
/// 命令0默认 1刷新 2上移 3下移 4修改车数 5删除计划
/// </summary>
public DataKeyValue ChemicalWeighing_HMI_Request_Recipe_Change_Command =
new DataKeyValue("HMI_Request_Recipe_Change_Command");
/// <summary>
/// 读取到的机台号
/// </summary>
public DataKeyValue ChemicalWeighing_Sys_Machine2 = new DataKeyValue("Sys_Machine2");
/// <summary>
/// 读取到的计划号
/// </summary>
public DataKeyValue ChemicalWeighing_HMIChange_PlanId = new DataKeyValue("HMIChange_PlanId");
/// <summary>
/// 设定数量
/// </summary>
public DataKeyValue ChemicalWeighing_HMIChange_PlanNum = new DataKeyValue("HMIChange_PlanNum");
#endregion
#region 自动存盘相关变量
/// <summary>
/// PLC存盘请求
/// </summary>
public DataKeyValue ChemicalWeighing_PLC_Request_Save_ShakeHand =
new DataKeyValue("Plc_Request_Save_ShakeHand");
/// <summary>
/// PC存盘反馈信息
/// </summary>
public DataKeyValue ChemicalWeighing_PC_Request_Save_FeedBack = new DataKeyValue("PC_Request_Save_FeedBack");
/// <summary>
/// 报表基本信息
/// </summary>
public DataKeyValue ChemicalWeighing_Report_Update_Block_BaseInf =
new DataKeyValue("Report_Update_Block_BaseInf");
/// <summary>
/// 物料报表信息
/// </summary>
public DataKeyValue ChemicalWeighing_Report_Update_Block_Material_Report =
new DataKeyValue("Report_Update_Block_Material_Report");
#endregion
#region 上位机修改计划数、终止计划相关变量
/// <summary>
/// PC下传终止计划状态
/// </summary>
public DataKeyValue ChemicalWeighing_Plan_Status_Com_ShakeHand = new DataKeyValue("Plan_Status_Com_ShakeHand");
/// <summary>
/// PLC终止计划状态反馈
/// </summary>
public DataKeyValue ChemicalWeighing_Plan_Status_Com_FeedBack = new DataKeyValue("Plan_Status_Com_FeedBack");
#endregion
#region 条码扫描后下传到PLC的命令相关变量
/// <summary>
/// 开门料仓号
/// </summary>
public DataKeyValue ChemicalWeighing_Hopper_No_103 = new DataKeyValue("Hopper_No_103");
/// <summary>
/// 条码开门命令
/// </summary>
public DataKeyValue ChemicalWeighing_ScanCommand = new DataKeyValue("Command");
/// <summary>
/// 条码开门握手信号
/// </summary>
public DataKeyValue ChemicalWeighing_Open_door_Command_ShakeHand =
new DataKeyValue("Open_door_Command_ShakeHand");
#endregion
#endregion
#region 自动写入物料名称相关变量
/// <summary>
/// PLC物料名称下传请求
/// </summary>
public DataKeyValue ChemicalWeighing_PLC_LoadingConfig = new DataKeyValue("PLC_LoadingConfig");
/// <summary>
/// PC物料名称下传反馈
/// </summary>
public DataKeyValue ChemicalWeighing_PC_LoadingConfig = new DataKeyValue("PC_LoadingConfig");
#endregion
#endregion
#region 冠合上位机计划下传
public List<Entity.DataKeyValue> dataKeyValues = new List<Entity.DataKeyValue>();
//下位机准备信号(上位机下传时读取)
/// <summary>
/// 下位机在线
/// </summary>
public DataKeyValue GH_PC_ConfirmOnline = new DataKeyValue("Sign_Confirm_ConfirmOnline"); //下位机在线
/// <summary>
/// 下位机遥控
/// </summary>
public DataKeyValue GH_PC_ConfirmRemote = new DataKeyValue("Sign_Confirm_ConfirmRemote"); //下位机遥控
/// <summary>
/// 下位机准备好
/// </summary>
public DataKeyValue GH_PC_ConfirmReady = new DataKeyValue("Sign_Confirm_ConfirmReady"); //下位机准备好
/// <summary>
/// 下位机配方运行
/// </summary>
public DataKeyValue GH_PC_ConfirmRun = new DataKeyValue("Sign_Confirm_ConfirmRun"); //下位机配方运行
/// <summary>
/// 调试模式允许
/// </summary>
public DataKeyValue GH_PC_ConfirmForc = new DataKeyValue("Sign_Confirm_ConfirmForc"); // 调试模式允许
//配方编号、名称
public DataKeyValue ChemicalWeighing_PC_RecipeCode = new DataKeyValue("Recipe_Code");
public DataKeyValue ChemicalWeighing_PC_RecipeName = new DataKeyValue("recipe_name");
//设定车数、格数、层数
public DataKeyValue ChemicalWeighing_PC_SetCarNumber = new DataKeyValue("set_carnumber");
public DataKeyValue ChemicalWeighing_PC_SetGeNumber = new DataKeyValue("set_genumber");
public DataKeyValue ChemicalWeighing_PC_SetLineNumber = new DataKeyValue("set_linenumber");
//混料速度
public DataKeyValue ChemicalWeighing_PC_Hlsd1 = new DataKeyValue("hlsd1");
public DataKeyValue ChemicalWeighing_PC_Hlsd2 = new DataKeyValue("hlsd2");
public DataKeyValue ChemicalWeighing_PC_Hlsd3 = new DataKeyValue("hlsd3");
//进料时间、混料时间
public DataKeyValue ChemicalWeighing_PC_Jlsj = new DataKeyValue("jl_sj");
public DataKeyValue ChemicalWeighing_PC_Hlsj = new DataKeyValue("hl_sj");
//VCC、GFA、树脂进料、进料误差
public DataKeyValue ChemicalWeighing_PC_VCCJl = new DataKeyValue("vcc_jl");
public DataKeyValue ChemicalWeighing_PC_VCCJlWc = new DataKeyValue("vcc_jlwc");
public DataKeyValue ChemicalWeighing_PC_GFAJl = new DataKeyValue("gfa_jl");
public DataKeyValue ChemicalWeighing_PC_GFAJlWc = new DataKeyValue("gfa_jlwc");
public DataKeyValue ChemicalWeighing_PC_SZJl = new DataKeyValue("sz_jl");
public DataKeyValue ChemicalWeighing_PC_SZJlWc = new DataKeyValue("sz_jlwc");
public DataKeyValue ChemicalWeighing_PC_VCC_2th = new DataKeyValue("vcc2th_jl");
public DataKeyValue ChemicalWeighing_PC_GFA_2th = new DataKeyValue("GFA2th_jl");
//配方下传完成信号
public DataKeyValue ChemicalWeighing_PC_RpFinished = new DataKeyValue("PlanDownLoad");
//计划完成车数
public DataKeyValue ChemicalWeighing_PC_RecipeNum = new DataKeyValue("RecipeNum");
//计划编号PlanNo
public DataKeyValue ChemicalWeighing_PC_PlanNo = new DataKeyValue("PlanNo");
//计划终止
public DataKeyValue ChemicalWeighing_PC_RpCancel = new DataKeyValue("RpCancel");
public DataKeyValue TestWriteBool1 = new DataKeyValue("TestWriteBool1");
public DataKeyValue TestWriteBool2 = new DataKeyValue("TestWriteBool2");
#region 冠合存盘数据
/// <summary>
/// 存盘数据准备好
/// </summary>
public DataKeyValue GH_PC_ConfirmSDReady = new DataKeyValue("Sign_Confirm_ConfirmSDReady");
/// <summary>
/// 配方编号
/// </summary>
public DataKeyValue GH_PC_SaveCode = new DataKeyValue("SaveCode");
public DataKeyValue GH_PC_SaveFinishedNum = new DataKeyValue("SaveFinishedNum");
public DataKeyValue GH_PC_SaveRow = new DataKeyValue("SaveRow");
public DataKeyValue GH_PC_SaveCol = new DataKeyValue("SaveCol");
public DataKeyValue GH_PC_SaveVCCSet = new DataKeyValue("SaveVCCSet");
public DataKeyValue GH_PC_SaveVCCAct = new DataKeyValue("SaveVCCAct");
public DataKeyValue GH_PC_SaveGFASet = new DataKeyValue("SaveGFASet");
public DataKeyValue GH_PC_SaveGFAAct = new DataKeyValue("SaveGFAAct");
public DataKeyValue GH_PC_Save3thSet = new DataKeyValue("Save3thSet");
public DataKeyValue GH_PC_Save3thAct = new DataKeyValue("Save3thAct");
public DataKeyValue GH_PC_SaveLevel = new DataKeyValue("SaveLevel");
public DataKeyValue GH_PC_SaveFillTime = new DataKeyValue("SaveFillTime");
public DataKeyValue GH_PC_SaveSpeed1 = new DataKeyValue("SaveSpeed1");
public DataKeyValue GH_PC_SaveSpeed2 = new DataKeyValue("SaveSpeed2");
public DataKeyValue GH_PC_SaveTime = new DataKeyValue("SaveTime");
public DataKeyValue GH_PC_SavePlanId = new DataKeyValue("SavePlanId");
public DataKeyValue GH_PC_SaveVCC2thSet = new DataKeyValue("SaveVCC2thSet");
public DataKeyValue GH_PC_SaveVCC2thAct = new DataKeyValue("SaveVCC2thAct");
public DataKeyValue GH_PC_SaveGFA2thSet = new DataKeyValue("SaveGFA2thSet");
public DataKeyValue GH_PC_SaveGFA2thAct = new DataKeyValue("SaveGFA2thAct");
public DataKeyValue WatchDog = new DataKeyValue("WatchDog");
/// <summary>
/// 存盘数据保存完成
/// </summary>
public DataKeyValue ChemicalWeighing_PC_RpSaved = new DataKeyValue("RpSaved");
#endregion
#endregion
// public DataKeyValue FirstWord { get; set; }
// public DataKeyValue Spare4 { get; set; }
//
// public DataKeyValue RecipePause { get; set; }
//
// public DataKeyValue recipeName0 { get; set; }
// public DataKeyValue Dryer0_speed { get; set; }
/// <summary>
/// 压送秤A气源压力 dbw12
/// </summary>
public DataKeyValue mainPress_V1_LowLimit { get; set; }
public DataKeyValue mainPress_V1_HighLimit { get; set; }
public DataKeyValue mainPress_V1_Alarm { get; set; }
//压送秤A顶部压力 dbw26
public DataKeyValue topPres_V1_LowLimit { get; set; }
public DataKeyValue topPres_V1_HighLimit { get; set; }
public DataKeyValue topPres_V1_Alarm { get; set; }
//压送秤A底部压力 dbw40
public DataKeyValue linePres_V1_LowLimit { get; set; }
public DataKeyValue linePres_V1_HighLimit { get; set; }
public DataKeyValue linePres_V1_Alarm { get; set; }
//压送秤B气源压力 dbw54
public DataKeyValue mainPress_V2_LowLimit { get; set; }
public DataKeyValue mainPress_V2_HighLimit { get; set; }
public DataKeyValue mainPress_V2_Alarm { get; set; }
//压送秤B顶部压力 dbw68
public DataKeyValue topPres_V2_LowLimit { get; set; }
public DataKeyValue topPres_V2_HighLimit { get; set; }
public DataKeyValue topPres_V2_Alarm { get; set; }
//压送秤B底部压力 dbw82
public DataKeyValue linePres_V2_LowLimit { get; set; }
public DataKeyValue linePres_V2_HighLimit { get; set; }
public DataKeyValue linePres_V2_Alarm { get; set; }
//压送秤C气源压力 dbw96
public DataKeyValue mainPress_V3_LowLimit { get; set; }
public DataKeyValue mainPress_V3_HighLimit { get; set; }
public DataKeyValue mainPress_V3_Alarm { get; set; }
//压送秤C顶部压力 dbw110
public DataKeyValue topPres_V3_LowLimit { get; set; }
public DataKeyValue topPres_V3_HighLimit { get; set; }
public DataKeyValue topPres_V3_Alarm { get; set; }
//压送秤C底部压力 dbw124
public DataKeyValue linePres_V3_LowLimit { get; set; }
public DataKeyValue linePres_V3_HighLimit { get; set; }
public DataKeyValue linePres_V3_Alarm { get; set; }
//压送秤C气源压力 dbw138
public DataKeyValue mainPress_V4_LowLimit { get; set; }
public DataKeyValue mainPress_V4_HighLimit { get; set; }
public DataKeyValue mainPress_V4_Alarm { get; set; }
//压送秤C顶部压力 dbw154
public DataKeyValue topPres_V4_LowLimit { get; set; }
public DataKeyValue topPres_V4_HighLimit { get; set; }
public DataKeyValue topPres_V4_Alarm { get; set; }
//压送秤C底部压力 dbw166
public DataKeyValue linePres_V4_LowLimit { get; set; }
public DataKeyValue linePres_V4_HighLimit { get; set; }
public DataKeyValue linePres_V4_Alarm { get; set; }
//压送秤C气源压力 dbw180
public DataKeyValue mainPress_V5_LowLimit { get; set; }
public DataKeyValue mainPress_V5_HighLimit { get; set; }
public DataKeyValue mainPress_V5_Alarm { get; set; }
//压送秤C顶部压力 dbw194
public DataKeyValue topPres_V5_LowLimit { get; set; }
public DataKeyValue topPres_V5_HighLimit { get; set; }
public DataKeyValue topPres_V5_Alarm { get; set; }
//压送秤C底部压力 dbw208
public DataKeyValue linePres_V5_LowLimit { get; set; }
public DataKeyValue linePres_V5_HighLimit { get; set; }
public DataKeyValue linePres_V5_Alarm { get; set; }
//日罐压力B1 dbw222
public DataKeyValue presDay_B1_ActualValue { get; set; }
public DataKeyValue presDay_B1_LowLimit { get; set; }
public DataKeyValue presDay_B1_HighLimit { get; set; }
public DataKeyValue presDay_B1_Alarm { get; set; }
//日罐压力B2 dbw236
public DataKeyValue presDay_B2_ActualValue { get; set; }
public DataKeyValue presDay_B2_LowLimit { get; set; }
public DataKeyValue presDay_B2_HighLimit { get; set; }
public DataKeyValue presDay_B2_Alarm { get; set; }
//日罐压力B3 dbw250
public DataKeyValue presDay_B3_ActualValue { get; set; }
public DataKeyValue presDay_B3_LowLimit { get; set; }
public DataKeyValue presDay_B3_HighLimit { get; set; }
public DataKeyValue presDay_B3_Alarm { get; set; }
//日罐压力B4 dbw264
public DataKeyValue presDay_B4_ActualValue { get; set; }
public DataKeyValue presDay_B4_LowLimit { get; set; }
public DataKeyValue presDay_B4_HighLimit { get; set; }
public DataKeyValue presDay_B4_Alarm { get; set; }
//日罐压力B5 dbw278
public DataKeyValue presDay_B5_ActualValue { get; set; }
public DataKeyValue presDay_B5_LowLimit { get; set; }
public DataKeyValue presDay_B5_HighLimit { get; set; }
public DataKeyValue presDay_B5_Alarm { get; set; }
//日罐压力B6 dbw292
public DataKeyValue presDay_B6_ActualValue { get; set; }
public DataKeyValue presDay_B6_LowLimit { get; set; }
public DataKeyValue presDay_B6_HighLimit { get; set; }
public DataKeyValue presDay_B6_Alarm { get; set; }
//日罐压力B7 dbw306
public DataKeyValue presDay_B7_ActualValue { get; set; }
public DataKeyValue presDay_B7_LowLimit { get; set; }
public DataKeyValue presDay_B7_HighLimit { get; set; }
public DataKeyValue presDay_B7_Alarm { get; set; }
//日罐压力B8 dbw320
public DataKeyValue presDay_B8_ActualValue { get; set; }
public DataKeyValue presDay_B8_LowLimit { get; set; }
public DataKeyValue presDay_B8_HighLimit { get; set; }
public DataKeyValue presDay_B8_Alarm { get; set; }
//日罐压力B9 dbw334
public DataKeyValue presDay_B9_ActualValue { get; set; }
public DataKeyValue presDay_B9_LowLimit { get; set; }
public DataKeyValue presDay_B9_HighLimit { get; set; }
public DataKeyValue presDay_B9_Alarm { get; set; }
//日罐压力B10 dbw348
public DataKeyValue presDay_B10_ActualValue { get; set; }
public DataKeyValue presDay_B10_LowLimit { get; set; }
public DataKeyValue presDay_B10_HighLimit { get; set; }
public DataKeyValue presDay_B10_Alarm { get; set; }
//日罐压力B11 dbw362
public DataKeyValue presDay_B11_ActualValue { get; set; }
public DataKeyValue presDay_B11_LowLimit { get; set; }
public DataKeyValue presDay_B11_HighLimit { get; set; }
public DataKeyValue presDay_B11_Alarm { get; set; }
//日罐压力B12 dbw376
public DataKeyValue presDay_B12_ActualValue { get; set; }
public DataKeyValue presDay_B12_LowLimit { get; set; }
public DataKeyValue presDay_B12_HighLimit { get; set; }
public DataKeyValue presDay_B12_Alarm { get; set; }
//管道压力传感器1 dbw390
public DataKeyValue PR2PCP01_B12_ActualValue { get; set; }
public DataKeyValue PR2PCP01_B12_LowLimit { get; set; }
public DataKeyValue PR2PCP01_B12_HighLimit { get; set; }
public DataKeyValue PR2PCP01_B12_Alarm { get; set; }
//管道压力传感器2 dbw404
public DataKeyValue PR2PCP02_B12_ActualValue { get; set; }
public DataKeyValue PR2PCP02_B12_LowLimit { get; set; }
public DataKeyValue PR2PCP02_B12_HighLimit { get; set; }
public DataKeyValue PR2PCP02_B12_Alarm { get; set; }
//管道压力传感器3 dbw418
public DataKeyValue PR2PCP03_B12_ActualValue { get; set; }
public DataKeyValue PR2PCP03_B12_LowLimit { get; set; }
public DataKeyValue PR2PCP03_B12_HighLimit { get; set; }
public DataKeyValue PR2PCP03_B12_Alarm { get; set; }
public DataKeyValue Hopper1_ActWeight { get; set; }
public DataKeyValue Hopper1_HighWeight { get; set; }
public DataKeyValue Hopper1_LowWeight { get; set; }
public DataKeyValue Hopper1_HighLevel { get; set; }
public DataKeyValue Hopper1_LowLevel { get; set; }
public DataKeyValue Hopper2_ActWeight { get; set; }
public DataKeyValue Hopper2_HighWeight { get; set; }
public DataKeyValue Hopper2_LowWeight { get; set; }
public DataKeyValue Hopper2_HighLevel { get; set; }
public DataKeyValue Hopper2_LowLevel { get; set; }
public DataKeyValue Hopper3_ActWeight { get; set; }
public DataKeyValue Hopper3_HighWeight { get; set; }
public DataKeyValue Hopper3_LowWeight { get; set; }
public DataKeyValue Hopper3_HighLevel { get; set; }
public DataKeyValue Hopper3_LowLevel { get; set; }
public DataKeyValue Hopper4_ActWeight { get; set; }
public DataKeyValue Hopper4_HighWeight { get; set; }
public DataKeyValue Hopper4_LowWeight { get; set; }
public DataKeyValue Hopper4_HighLevel { get; set; }
public DataKeyValue Hopper4_LowLevel { get; set; }
public DataKeyValue Vessel1_ActWeight { get; set; }
public DataKeyValue Vessel1_HighWeight { get; set; }
public DataKeyValue Vessel1_LowWeight { get; set; }
public DataKeyValue Vessel1_HighLevel { get; set; }
public DataKeyValue Vessel1_LowLevel { get; set; }
public DataKeyValue Vessel2_ActWeight { get; set; }
public DataKeyValue Vessel2_HighWeight { get; set; }
public DataKeyValue Vessel2_LowWeight { get; set; }
public DataKeyValue Vessel2_HighLevel { get; set; }
public DataKeyValue Vessel2_LowLevel { get; set; }
public DataKeyValue Vessel3_ActWeight { get; set; }
public DataKeyValue Vessel3_HighWeight { get; set; }
public DataKeyValue Vessel3_LowWeight { get; set; }
public DataKeyValue Vessel3_HighLevel { get; set; }
public DataKeyValue Vessel3_LowLevel { get; set; }
public DataKeyValue Vessel4_ActWeight { get; set; }
public DataKeyValue Vessel4_HighWeight { get; set; }
public DataKeyValue Vessel4_LowWeight { get; set; }
public DataKeyValue Vessel4_HighLevel { get; set; }
public DataKeyValue Vessel4_LowLevel { get; set; }
public DataKeyValue Vessel5_ActWeight { get; set; }
public DataKeyValue Vessel5_HighWeight { get; set; }
public DataKeyValue Vessel5_LowWeight { get; set; }
public DataKeyValue Vessel5_HighLevel { get; set; }
public DataKeyValue Vessel5_LowLevel { get; set; }
public DataKeyValue WScale1_ActWeight { get; set; }
public DataKeyValue WScale1_HighWeight { get; set; }
public DataKeyValue WScale1_LowWeight { get; set; }
public DataKeyValue WScale1_HighLevel { get; set; }
public DataKeyValue WScale1_LowLevel { get; set; }
public DataKeyValue WScale2_ActWeight { get; set; }
public DataKeyValue WScale2_HighWeight { get; set; }
public DataKeyValue WScale2_LowWeight { get; set; }
public DataKeyValue WScale2_HighLevel { get; set; }
public DataKeyValue WScale2_LowLevel { get; set; }
public DataKeyValue WScale3_ActWeight { get; set; }
public DataKeyValue WScale3_HighWeight { get; set; }
public DataKeyValue WScale3_LowWeight { get; set; }
public DataKeyValue WScale3_HighLevel { get; set; }
public DataKeyValue WScale3_LowLevel { get; set; }
public DataKeyValue WScale4_ActWeight { get; set; }
public DataKeyValue WScale4_HighWeight { get; set; }
public DataKeyValue WScale4_LowWeight { get; set; }
public DataKeyValue WScale4_HighLevel { get; set; }
public DataKeyValue WScale4_LowLevel { get; set; }
public DataKeyValue conveyV1_PV { get; set; }
public DataKeyValue conveyV1_SV { get; set; }
public DataKeyValue purgeV1_PV { get; set; }
public DataKeyValue purgeV1_SV { get; set; }
public DataKeyValue conveyV2_PV { get; set; }
public DataKeyValue conveyV2_SV { get; set; }
public DataKeyValue purgeV2_PV { get; set; }
public DataKeyValue purgeV2_SV { get; set; }
public DataKeyValue conveyV3_PV { get; set; }
public DataKeyValue conveyV3_SV { get; set; }
public DataKeyValue purgeV3_PV { get; set; }
public DataKeyValue purgeV3_SV { get; set; }
public DataKeyValue conveyV4_PV { get; set; }
public DataKeyValue conveyV4_SV { get; set; }
public DataKeyValue purgeV4_PV { get; set; }
public DataKeyValue purgeV4_SV { get; set; }
public DataKeyValue conveyV5_SV { get; set; }
public DataKeyValue purgeV5_PV { get; set; }
public DataKeyValue purgeV5_SV { get; set; }
public DataKeyValue weightPraSilo0_HighSpeed { get; set; }
public DataKeyValue weightPraSilo0_LowSpeed { get; set; }
public DataKeyValue weightPraSilo0_WeightSlow { get; set; }
public DataKeyValue weightPraSilo0_Precut { get; set; }
public DataKeyValue weightPraSilo0_JogTime { get; set; }
public DataKeyValue weightPraSilo1_HighSpeed { get; set; }
public DataKeyValue weightPraSilo1_LowSpeed { get; set; }
public DataKeyValue weightPraSilo1_WeightSlow { get; set; }
public DataKeyValue weightPraSilo1_Precut { get; set; }
public DataKeyValue weightPraSilo1_JogTime { get; set; }
public DataKeyValue weightPraSilo2_HighSpeed { get; set; }
public DataKeyValue weightPraSilo2_LowSpeed { get; set; }
public DataKeyValue weightPraSilo2_WeightSlow { get; set; }
public DataKeyValue weightPraSilo2_Precut { get; set; }
public DataKeyValue weightPraSilo2_JogTime { get; set; }
public DataKeyValue weightPraSilo3_HighSpeed { get; set; }
public DataKeyValue weightPraSilo3_LowSpeed { get; set; }
public DataKeyValue weightPraSilo3_WeightSlow { get; set; }
public DataKeyValue weightPraSilo3_Precut { get; set; }
public DataKeyValue weightPraSilo3_JogTime { get; set; }
public DataKeyValue weightPraSilo4_HighSpeed { get; set; }
public DataKeyValue weightPraSilo4_LowSpeed { get; set; }
public DataKeyValue weightPraSilo4_WeightSlow { get; set; }
public DataKeyValue weightPraSilo4_Precut { get; set; }
public DataKeyValue weightPraSilo4_JogTime { get; set; }
public DataKeyValue weightPraSilo5_HighSpeed { get; set; }
public DataKeyValue weightPraSilo5_LowSpeed { get; set; }
public DataKeyValue weightPraSilo5_WeightSlow { get; set; }
public DataKeyValue weightPraSilo5_Precut { get; set; }
public DataKeyValue weightPraSilo5_JogTime { get; set; }
public DataKeyValue weightPraSilo6_HighSpeed { get; set; }
public DataKeyValue weightPraSilo6_LowSpeed { get; set; }
public DataKeyValue weightPraSilo6_WeightSlow { get; set; }
public DataKeyValue weightPraSilo6_Precut { get; set; }
public DataKeyValue weightPraSilo6_JogTime { get; set; }
public DataKeyValue weightPraSilo7_HighSpeed { get; set; }
public DataKeyValue weightPraSilo7_LowSpeed { get; set; }
public DataKeyValue weightPraSilo7_WeightSlow { get; set; }
public DataKeyValue weightPraSilo7_Precut { get; set; }
public DataKeyValue weightPraSilo7_JogTime { get; set; }
public DataKeyValue weightPraSilo8_HighSpeed { get; set; }
public DataKeyValue weightPraSilo8_LowSpeed { get; set; }
public DataKeyValue weightPraSilo8_WeightSlow { get; set; }
public DataKeyValue weightPraSilo8_Precut { get; set; }
public DataKeyValue weightPraSilo8_JogTime { get; set; }
public DataKeyValue weightPraSilo9_HighSpeed { get; set; }
public DataKeyValue weightPraSilo9_LowSpeed { get; set; }
public DataKeyValue weightPraSilo9_WeightSlow { get; set; }
public DataKeyValue weightPraSilo9_Precut { get; set; }
public DataKeyValue weightPraSilo9_JogTime { get; set; }
public DataKeyValue weightPraSilo10_HighSpeed { get; set; }
public DataKeyValue weightPraSilo10_LowSpeed { get; set; }
public DataKeyValue weightPraSilo10_WeightSlow { get; set; }
public DataKeyValue weightPraSilo10_Precut { get; set; }
public DataKeyValue weightPraSilo10_JogTime { get; set; }
public DataKeyValue weightPraSilo11_HighSpeed { get; set; }
public DataKeyValue weightPraSilo11_LowSpeed { get; set; }
public DataKeyValue weightPraSilo11_WeightSlow { get; set; }
public DataKeyValue weightPraSilo11_Precut { get; set; }
public DataKeyValue weightPraSilo11_JogTime { get; set; }
public DataKeyValue weightPraSilo12_HighSpeed { get; set; }
public DataKeyValue weightPraSilo12_LowSpeed { get; set; }
public DataKeyValue weightPraSilo12_WeightSlow { get; set; }
public DataKeyValue weightPraSilo12_Precut { get; set; }
public DataKeyValue weightPraSilo12_JogTime { get; set; }
public DataKeyValue weightPraSilo13_HighSpeed { get; set; }
public DataKeyValue weightPraSilo13_LowSpeed { get; set; }
public DataKeyValue weightPraSilo13_WeightSlow { get; set; }
public DataKeyValue weightPraSilo13_Precut { get; set; }
public DataKeyValue weightPraSilo13_JogTime { get; set; }
public DataKeyValue weightPraSilo14_HighSpeed { get; set; }
public DataKeyValue weightPraSilo14_LowSpeed { get; set; }
public DataKeyValue weightPraSilo14_WeightSlow { get; set; }
public DataKeyValue weightPraSilo14_Precut { get; set; }
public DataKeyValue weightPraSilo14_JogTime { get; set; }
public DataKeyValue Daybin0_HighSpeed { get; set; }
public DataKeyValue Daybin0_LowSpeed { get; set; }
public DataKeyValue Daybin0_WeightSlow { get; set; }
public DataKeyValue Daybin0_Precut { get; set; }
public DataKeyValue Daybin0_JogTime { get; set; }
public DataKeyValue Daybin1_HighSpeed { get; set; }
public DataKeyValue Daybin1_LowSpeed { get; set; }
public DataKeyValue Daybin1_WeightSlow { get; set; }
public DataKeyValue Daybin1_Precut { get; set; }
public DataKeyValue Daybin1_JogTime { get; set; }
public DataKeyValue Daybin2_HighSpeed { get; set; }
public DataKeyValue Daybin2_LowSpeed { get; set; }
public DataKeyValue Daybin2_WeightSlow { get; set; }
public DataKeyValue Daybin2_Precut { get; set; }
public DataKeyValue Daybin2_JogTime { get; set; }
public DataKeyValue Daybin3_HighSpeed { get; set; }
public DataKeyValue Daybin3_LowSpeed { get; set; }
public DataKeyValue Daybin3_WeightSlow { get; set; }
public DataKeyValue Daybin3_Precut { get; set; }
public DataKeyValue Daybin3_JogTime { get; set; }
public DataKeyValue Daybin4_HighSpeed { get; set; }
public DataKeyValue Daybin4_LowSpeed { get; set; }
public DataKeyValue Daybin4_WeightSlow { get; set; }
public DataKeyValue Daybin4_Precut { get; set; }
public DataKeyValue Daybin4_JogTime { get; set; }
public DataKeyValue Daybin5_HighSpeed { get; set; }
public DataKeyValue Daybin5_LowSpeed { get; set; }
public DataKeyValue Daybin5_WeightSlow { get; set; }
public DataKeyValue Daybin5_Precut { get; set; }
public DataKeyValue Daybin5_JogTime { get; set; }
public DataKeyValue Daybin6_HighSpeed { get; set; }
public DataKeyValue Daybin6_LowSpeed { get; set; }
public DataKeyValue Daybin6_WeightSlow { get; set; }
public DataKeyValue Daybin6_Precut { get; set; }
public DataKeyValue Daybin6_JogTime { get; set; }
public DataKeyValue Daybin7_HighSpeed { get; set; }
public DataKeyValue Daybin7_LowSpeed { get; set; }
public DataKeyValue Daybin7_WeightSlow { get; set; }
public DataKeyValue Daybin7_Precut { get; set; }
public DataKeyValue Daybin7_JogTime { get; set; }
public DataKeyValue Daybin8_HighSpeed { get; set; }
public DataKeyValue Daybin8_LowSpeed { get; set; }
public DataKeyValue Daybin8_WeightSlow { get; set; }
public DataKeyValue Daybin8_Precut { get; set; }
public DataKeyValue Daybin8_JogTime { get; set; }
public DataKeyValue Daybin9_HighSpeed { get; set; }
public DataKeyValue Daybin9_LowSpeed { get; set; }
public DataKeyValue Daybin9_WeightSlow { get; set; }
public DataKeyValue Daybin9_Precut { get; set; }
public DataKeyValue Daybin9_JogTime { get; set; }
public DataKeyValue Daybin10_HighSpeed { get; set; }
public DataKeyValue Daybin10_LowSpeed { get; set; }
public DataKeyValue Daybin10_WeightSlow { get; set; }
public DataKeyValue Daybin10_Precut { get; set; }
public DataKeyValue Daybin10_JogTime { get; set; }
public DataKeyValue Daybin11_HighSpeed { get; set; }
public DataKeyValue Daybin11_LowSpeed { get; set; }
public DataKeyValue Daybin11_WeightSlow { get; set; }
public DataKeyValue Daybin11_Precut { get; set; }
public DataKeyValue Daybin11_JogTime { get; set; }
public DataKeyValue Hoper0_HighSpeed { get; set; }
public DataKeyValue Hoper0_LowSpeed { get; set; }
public DataKeyValue Hoper0_WeightSlow { get; set; }
public DataKeyValue Hoper0_Precut { get; set; }
public DataKeyValue Hoper0_JogTime { get; set; }
public DataKeyValue Hoper1_HighSpeed { get; set; }
public DataKeyValue Hoper1_LowSpeed { get; set; }
public DataKeyValue Hoper1_WeightSlow { get; set; }
public DataKeyValue Hoper1_Precut { get; set; }
public DataKeyValue Hoper1_JogTime { get; set; }
public DataKeyValue Hoper2_HighSpeed { get; set; }
public DataKeyValue Hoper2_LowSpeed { get; set; }
public DataKeyValue Hoper2_WeightSlow { get; set; }
public DataKeyValue Hoper2_Precut { get; set; }
public DataKeyValue Hoper2_JogTime { get; set; }
public DataKeyValue Hoper3_HighSpeed { get; set; }
public DataKeyValue Hoper3_LowSpeed { get; set; }
public DataKeyValue Hoper3_WeightSlow { get; set; }
public DataKeyValue Hoper3_Precut { get; set; }
public DataKeyValue Hoper3_JogTime { get; set; }
public DataKeyValue Water0_HighSpeed { get; set; }
public DataKeyValue Water0_LowSpeed { get; set; }
public DataKeyValue Water0_WeightSlow { get; set; }
public DataKeyValue Water0_Precut { get; set; }
public DataKeyValue Water0_JogTime { get; set; }
public DataKeyValue Water1_HighSpeed { get; set; }
public DataKeyValue Water1_LowSpeed { get; set; }
public DataKeyValue Water1_WeightSlow { get; set; }
public DataKeyValue Water1_Precut { get; set; }
public DataKeyValue Water1_JogTime { get; set; }
public DataKeyValue Water2_HighSpeed { get; set; }
public DataKeyValue Water2_LowSpeed { get; set; }
public DataKeyValue Water2_WeightSlow { get; set; }
public DataKeyValue Water2_Precut { get; set; }
public DataKeyValue Water2_JogTime { get; set; }
public DataKeyValue Water3_HighSpeed { get; set; }
public DataKeyValue Water3_LowSpeed { get; set; }
public DataKeyValue Water3_WeightSlow { get; set; }
public DataKeyValue Water3_Precut { get; set; }
public DataKeyValue Water3_JogTime { get; set; }
public DataKeyValue SpeedD1 { get; set; }
public DataKeyValue SpeedD2 { get; set; }
public DataKeyValue SpeedD3 { get; set; }
public DataKeyValue SpeedD4 { get; set; }
public DataKeyValue SpeedG1 { get; set; }
public DataKeyValue SpeedG2 { get; set; }
public DataKeyValue SpeedG3 { get; set; }
public DataKeyValue SpeedG4 { get; set; }
public DataKeyValue SpeedG5 { get; set; }
public DataKeyValue SpeedG6 { get; set; }
public DataKeyValue SpeedG7 { get; set; }
public DataKeyValue SpeedG8 { get; set; }
public DataKeyValue SpeedH1 { get; set; }
public DataKeyValue SpeedH2 { get; set; }
public DataKeyValue SpeedH3 { get; set; }
public DataKeyValue SpeedH4 { get; set; }
public DataKeyValue SpeedS1 { get; set; }
public DataKeyValue SpeedS5 { get; set; }
public DataKeyValue SpeedS7 { get; set; }
public DataKeyValue SpeedS11 { get; set; }
public DataKeyValue SpeedS15 { get; set; }
public DataKeyValue Dryer0_mode { get; set; }
public DataKeyValue Dryer0_status { get; set; }
public DataKeyValue Dryer0_batch { get; set; }
public DataKeyValue Dryer0_step { get; set; }
public DataKeyValue Dryer0_stepCode { get; set; }
public DataKeyValue Dryer0_totalTime { get; set; }
public DataKeyValue Dryer0_stepTime { get; set; }
public DataKeyValue Dryer0_temperature { get; set; }
public DataKeyValue Dryer0_speed { get; set; }
public DataKeyValue Dryer0_currnet { get; set; }
public DataKeyValue Dryer0_pressure { get; set; }
public DataKeyValue Dryer1_mode { get; set; }
public DataKeyValue Dryer1_status { get; set; }
public DataKeyValue Dryer1_batch { get; set; }
public DataKeyValue Dryer1_step { get; set; }
public DataKeyValue Dryer1_stepCode { get; set; }
public DataKeyValue Dryer1_totalTime { get; set; }
public DataKeyValue Dryer1_stepTime { get; set; }
public DataKeyValue Dryer1_temperature { get; set; }
public DataKeyValue Dryer1_speed { get; set; }
public DataKeyValue Dryer1_currnet { get; set; }
public DataKeyValue Dryer1_pressure { get; set; }
public DataKeyValue Dryer2_mode { get; set; }
public DataKeyValue Dryer2_status { get; set; }
public DataKeyValue Dryer2_batch { get; set; }
public DataKeyValue Dryer2_step { get; set; }
public DataKeyValue Dryer2_stepCode { get; set; }
public DataKeyValue Dryer2_totalTime { get; set; }
public DataKeyValue Dryer2_stepTime { get; set; }
public DataKeyValue Dryer2_temperature { get; set; }
public DataKeyValue Dryer2_speed { get; set; }
public DataKeyValue Dryer2_currnet { get; set; }
public DataKeyValue Dryer2_pressure { get; set; }
public DataKeyValue Dryer3_mode { get; set; }
public DataKeyValue Dryer3_status { get; set; }
public DataKeyValue Dryer3_batch { get; set; }
public DataKeyValue Dryer3_step { get; set; }
public DataKeyValue Dryer3_stepCode { get; set; }
public DataKeyValue Dryer3_totalTime { get; set; }
public DataKeyValue Dryer3_stepTime { get; set; }
public DataKeyValue Dryer3_temperature { get; set; }
public DataKeyValue Dryer3_speed { get; set; }
public DataKeyValue Dryer3_currnet { get; set; }
public DataKeyValue Dryer3_pressure { get; set; }
public DataKeyValue Gelater0_mode { get; set; }
public DataKeyValue Gelater0_status { get; set; }
public DataKeyValue Gelater0_batch { get; set; }
public DataKeyValue Gelater0_step { get; set; }
public DataKeyValue Gelater0_stepCode { get; set; }
public DataKeyValue Gelater0_totalTime { get; set; }
public DataKeyValue Gelater0_stepTime { get; set; }
public DataKeyValue Gelater0_temperature { get; set; }
public DataKeyValue Gelater0_speed { get; set; }
public DataKeyValue Gelater0_currnet { get; set; }
public DataKeyValue Gelater0_pressure { get; set; }
public DataKeyValue Gelater1_mode { get; set; }
public DataKeyValue Gelater1_status { get; set; }
public DataKeyValue Gelater1_batch { get; set; }
public DataKeyValue Gelater1_step { get; set; }
public DataKeyValue Gelater1_stepCode { get; set; }
public DataKeyValue Gelater1_totalTime { get; set; }
public DataKeyValue Gelater1_stepTime { get; set; }
public DataKeyValue Gelater1_temperature { get; set; }
public DataKeyValue Gelater1_speed { get; set; }
public DataKeyValue Gelater1_currnet { get; set; }
public DataKeyValue Gelater1_pressure { get; set; }
public DataKeyValue Gelater2_mode { get; set; }
public DataKeyValue Gelater2_status { get; set; }
public DataKeyValue Gelater2_batch { get; set; }
public DataKeyValue Gelater2_step { get; set; }
public DataKeyValue Gelater2_stepCode { get; set; }
public DataKeyValue Gelater2_totalTime { get; set; }
public DataKeyValue Gelater2_stepTime { get; set; }
public DataKeyValue Gelater2_temperature { get; set; }
public DataKeyValue Gelater2_speed { get; set; }
public DataKeyValue Gelater2_currnet { get; set; }
public DataKeyValue Gelater2_pressure { get; set; }
public DataKeyValue Gelater3_mode { get; set; }
public DataKeyValue Gelater3_status { get; set; }
public DataKeyValue Gelater3_batch { get; set; }
public DataKeyValue Gelater3_step { get; set; }
public DataKeyValue Gelater3_stepCode { get; set; }
public DataKeyValue Gelater3_totalTime { get; set; }
public DataKeyValue Gelater3_stepTime { get; set; }
public DataKeyValue Gelater3_temperature { get; set; }
public DataKeyValue Gelater3_speed { get; set; }
public DataKeyValue Gelater3_currnet { get; set; }
public DataKeyValue Gelater3_pressure { get; set; }
public DataKeyValue Gelater4_mode { get; set; }
public DataKeyValue Gelater4_status { get; set; }
public DataKeyValue Gelater4_batch { get; set; }
public DataKeyValue Gelater4_step { get; set; }
public DataKeyValue Gelater4_stepCode { get; set; }
public DataKeyValue Gelater4_totalTime { get; set; }
public DataKeyValue Gelater4_stepTime { get; set; }
public DataKeyValue Gelater4_temperature { get; set; }
public DataKeyValue Gelater4_speed { get; set; }
public DataKeyValue Gelater4_currnet { get; set; }
public DataKeyValue Gelater4_pressure { get; set; }
public DataKeyValue Gelater5_mode { get; set; }
public DataKeyValue Gelater5_status { get; set; }
public DataKeyValue Gelater5_batch { get; set; }
public DataKeyValue Gelater5_step { get; set; }
public DataKeyValue Gelater5_stepCode { get; set; }
public DataKeyValue Gelater5_totalTime { get; set; }
public DataKeyValue Gelater5_stepTime { get; set; }
public DataKeyValue Gelater5_temperature { get; set; }
public DataKeyValue Gelater5_speed { get; set; }
public DataKeyValue Gelater5_currnet { get; set; }
public DataKeyValue Gelater5_pressure { get; set; }
public DataKeyValue Gelater6_mode { get; set; }
public DataKeyValue Gelater6_status { get; set; }
public DataKeyValue Gelater6_batch { get; set; }
public DataKeyValue Gelater6_step { get; set; }
public DataKeyValue Gelater6_stepCode { get; set; }
public DataKeyValue Gelater6_totalTime { get; set; }
public DataKeyValue Gelater6_stepTime { get; set; }
public DataKeyValue Gelater6_temperature { get; set; }
public DataKeyValue Gelater6_speed { get; set; }
public DataKeyValue Gelater6_currnet { get; set; }
public DataKeyValue Gelater6_pressure { get; set; }
public DataKeyValue Gelater7_mode { get; set; }
public DataKeyValue Gelater7_status { get; set; }
public DataKeyValue Gelater7_batch { get; set; }
public DataKeyValue Gelater7_step { get; set; }
public DataKeyValue Gelater7_stepCode { get; set; }
public DataKeyValue Gelater7_totalTime { get; set; }
public DataKeyValue Gelater7_stepTime { get; set; }
public DataKeyValue Gelater7_temperature { get; set; }
public DataKeyValue Gelater7_speed { get; set; }
public DataKeyValue Gelater7_currnet { get; set; }
public DataKeyValue Gelater7_pressure { get; set; }
public DataKeyValue Weter0_mode { get; set; }
public DataKeyValue Weter0_status { get; set; }
public DataKeyValue Weter0_batch { get; set; }
public DataKeyValue Weter0_step { get; set; }
public DataKeyValue Weter0_stepCode { get; set; }
public DataKeyValue Weter0_totalTime { get; set; }
public DataKeyValue Weter0_stepTime { get; set; }
public DataKeyValue Weter0_temperature { get; set; }
public DataKeyValue Weter0_speed { get; set; }
public DataKeyValue Weter0_currnet { get; set; }
public DataKeyValue Weter0_pressure { get; set; }
public DataKeyValue Weter1_mode { get; set; }
public DataKeyValue Weter1_status { get; set; }
public DataKeyValue Weter1_batch { get; set; }
public DataKeyValue Weter1_step { get; set; }
public DataKeyValue Weter1_stepCode { get; set; }
public DataKeyValue Weter1_totalTime { get; set; }
public DataKeyValue Weter1_stepTime { get; set; }
public DataKeyValue Weter1_temperature { get; set; }
public DataKeyValue Weter1_speed { get; set; }
public DataKeyValue Weter1_currnet { get; set; }
public DataKeyValue Weter1_pressure { get; set; }
public DataKeyValue Weter2_mode { get; set; }
public DataKeyValue Weter2_status { get; set; }
public DataKeyValue Weter2_batch { get; set; }
public DataKeyValue Weter2_step { get; set; }
public DataKeyValue Weter2_stepCode { get; set; }
public DataKeyValue Weter2_totalTime { get; set; }
public DataKeyValue Weter2_stepTime { get; set; }
public DataKeyValue Weter2_temperature { get; set; }
public DataKeyValue Weter2_speed { get; set; }
public DataKeyValue Weter2_currnet { get; set; }
public DataKeyValue Weter2_pressure { get; set; }
public DataKeyValue Weter3_mode { get; set; }
public DataKeyValue Weter3_status { get; set; }
public DataKeyValue Weter3_batch { get; set; }
public DataKeyValue Weter3_step { get; set; }
public DataKeyValue Weter3_stepCode { get; set; }
public DataKeyValue Weter3_totalTime { get; set; }
public DataKeyValue Weter3_stepTime { get; set; }
public DataKeyValue Weter3_temperature { get; set; }
public DataKeyValue Weter3_speed { get; set; }
public DataKeyValue Weter3_currnet { get; set; }
public DataKeyValue Weter3_pressure { get; set; }
public DataKeyValue Weter4_mode { get; set; }
public DataKeyValue Weter4_status { get; set; }
public DataKeyValue Weter4_batch { get; set; }
public DataKeyValue Weter4_step { get; set; }
public DataKeyValue Weter4_stepCode { get; set; }
public DataKeyValue Weter4_totalTime { get; set; }
public DataKeyValue Weter4_stepTime { get; set; }
public DataKeyValue Weter4_temperature { get; set; }
public DataKeyValue Weter4_speed { get; set; }
public DataKeyValue Weter4_currnet { get; set; }
public DataKeyValue Weter4_pressure { get; set; }
public DataKeyValue Weter5_mode { get; set; }
public DataKeyValue Weter5_status { get; set; }
public DataKeyValue Weter5_batch { get; set; }
public DataKeyValue Weter5_step { get; set; }
public DataKeyValue Weter5_stepCode { get; set; }
public DataKeyValue Weter5_totalTime { get; set; }
public DataKeyValue Weter5_stepTime { get; set; }
public DataKeyValue Weter5_temperature { get; set; }
public DataKeyValue Weter5_speed { get; set; }
public DataKeyValue Weter5_currnet { get; set; }
public DataKeyValue Weter5_pressure { get; set; }
public DataKeyValue Weter6_mode { get; set; }
public DataKeyValue Weter6_status { get; set; }
public DataKeyValue Weter6_batch { get; set; }
public DataKeyValue Weter6_step { get; set; }
public DataKeyValue Weter6_stepCode { get; set; }
public DataKeyValue Weter6_totalTime { get; set; }
public DataKeyValue Weter6_stepTime { get; set; }
public DataKeyValue Weter6_temperature { get; set; }
public DataKeyValue Weter6_speed { get; set; }
public DataKeyValue Weter6_currnet { get; set; }
public DataKeyValue Weter6_pressure { get; set; }
public DataKeyValue Weter7_mode { get; set; }
public DataKeyValue Weter7_status { get; set; }
public DataKeyValue Weter7_batch { get; set; }
public DataKeyValue Weter7_step { get; set; }
public DataKeyValue Weter7_stepCode { get; set; }
public DataKeyValue Weter7_totalTime { get; set; }
public DataKeyValue Weter7_stepTime { get; set; }
public DataKeyValue Weter7_temperature { get; set; }
public DataKeyValue Weter7_speed { get; set; }
public DataKeyValue Weter7_currnet { get; set; }
public DataKeyValue Weter7_pressure { get; set; }
}
}