using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DoWhatPlc
{
public class MessageText
{
///
/// Source|Cmd|OpName|TagValue
///
///
///
public static List GetCmdStringList(string cmd)
{
List list = new List();
string item;
int index;
try
{
index = cmd.IndexOf('|');
item = cmd.Substring(0, index);
list.Add(item);
cmd = cmd.Substring(index + 1);
index = cmd.IndexOf('|');
item = cmd.Substring(0, index);
list.Add(item);
cmd = cmd.Substring(index + 1);
index = cmd.IndexOf('|');
item = cmd.Substring(0, index);
list.Add(item);
item = cmd.Substring(index + 1);
list.Add(item);
}
catch { }
return list;
}
public string CmdType
{
get;
set;
}
public string Command
{
get;
set;
}
public string OpName
{
get;
set;
}
public string Value
{
get;
set;
}
}
public class ReturnResult
{
public bool success
{
get;
set;
}
public ReturnResult(bool success, string ResponseMessage)
{
this.success = success;
this.ResponseMessage = ResponseMessage;
}
public string ResponseMessage
{
get;
set;
}
}
public class EngineValue
{
public string OpName { set; get; }
public string EngineID { set; get; }
public string EngineType { set; get; }
public int EngineTypeID { set; get; }
public int PalletCode { set; get; }
public int ProcessCode { set; get; }
public int PartPalletCode { set; get; }
public string PalletInfo { set; get; }
///
/// 显示返修标志
///
public int RepairPartStatusPLC { set; get; }
///
/// 1 合格;2 不合格
///
public int QualityMask { set; get; }
public string OrderForm { set; get; }
}
public class DoWhat
{
public const string ReadPLC_TagID = "ReadPLC_TagID";
public const string WritePLC_TagID = "WritePLC_TagID";
public const string ReadPLC_TagTypeCodeID = "ReadPLC_TagTypeCodeID";
public const string WritePLC_TagTypeCodeID = "WritePLC_TagTypeCodeID";
public const string ReadPLC_Cmd = "ReadPLC_Cmd";
public const string WritePLC_Cmd = "WritePLC_Cmd";
public const string ReadPLC_GroupData = "ReadPLC_GroupData";
public const string ReadPLC_GroupMonitor = "ReadPLC_GroupMonitor";
public const string ReadPLC_IpTag = "ReadPLC_IpTag";
public const string ReadPLC_IpMonitorTag = "ReadPLC_IpMonitorTag";
public const string ReadQualityDataList = "ReadQualityDataList";
public const string ReadByteData_Op = "ReadByteData_Op";
public const string ReadByteData_Ip = "ReadByteData_Ip";
public const string WritePLC_Bytes_Op = "WritePLC_Bytes_Op";
public const string WritePLC_Bytes_Ip = "WritePLC_Bytes_Ip";
public const string IpAllTag = "IpAllTag";
public const string IpMonitorTag = "IpMonitorTag";
public const string RegionRead = "RegionRead";
public const string ReadBytes = "ReadBytes";
public const string WriteBytes = "WriteBytes";
}
///
/// object 类型数据转换成字符串变量表达
///
public class ReturnValueString
{
public string TagID { set; get; }
public string TagValue { set; get; }
public string ValueType { set; get; }
public string OpName { set; get; }
public string TimeStamp { set; get; }
public string TagTypeCodeID { set; get; }
public string TagTypeID { set; get; }
///
/// 测量项目 TEXT1 报警的 工步内容
///
public string ItemName { set; get; }
///
/// 测量位置 TEXT2 报警的 工步号
///
public string ShaftID { set; get; }
///
/// 列位置 工步 工位工步分类
///
public string TagOrderBy { set; get; }
public string TagValueBefore { get; set; }
public string TimeStampBefore { get; set; }
public string TagName { get; set; }
///
/// 变量变化的持续时间,单位 毫秒
///
public string TagKeepTime;
public string FunName;
public string FunCmd;
public string MesServerCode;
public string CmdPlcReadWrite;
public ReturnValueString()
{
}
public ReturnValueString(string tagID, object tagValue, string opName = "", string tagTypeCodeID = "", string tagTypeID = "", string tagKeepTime = "",
string funName = "", string funCmd = "", string mesServerCode = "", string timeStamp = "",
string timeStampBefore = "", string tagValueBefore = "", string tagName = "",string itemName="",
string shaftID = "", string tagOrderBy = "")
{
TagTypeCodeID = tagTypeCodeID;
TagTypeID = tagTypeID;
TagValue = tagValue.ToString();
ValueType = tagValue.GetType().Name;
TagID = tagID;
OpName = opName;
TagKeepTime = tagKeepTime;
FunName = funName;
FunCmd = funCmd;
MesServerCode = mesServerCode;
TimeStamp = timeStamp;
TimeStampBefore = timeStampBefore;
TagName = tagName;
TagValueBefore = tagValueBefore;
ItemName = itemName;
ShaftID = shaftID;
TagOrderBy = tagOrderBy;
}
public ReturnValueObject ReturnValueToObject()
{
ReturnValueObject ro = new ReturnValueObject(TagID, TagValue, OpName, TagTypeCodeID, ValueType, TimeStamp, TimeStampBefore, TagKeepTime, TagValueBefore, TagName, ItemName, ShaftID);
return ro;
}
}
///
/// 字符串变量转变成object类型变量
///
public class ReturnValueObject
{
public string TagID { set; get; }
public object TagValue { set; get; }
public string ValueType { set; get; }
public string OpName { set; get; }
public DateTime TimeStamp { set; get; }
public string TagTypeCodeID { set; get; }
///
/// 变量变化的持续时间,单位 毫秒
///
public int TagKeepTime;
public object TagValueBefore { get; set; }
public DateTime TimeStampBefore { get; set; }
///
///
///
public string TagName { get; set; }
///
/// 测量项目 TEXT2 报警的 工步内容
///
public string ItemName { set; get; }
///
///
///
public string ShaftID { set; get; }
public string TagOrderBy { set; get; }
public ReturnValueObject(string tagID, string tagValue, string opName = "", string tagTypeCodeID = "", string valueType = "",
string timeStamp = "", string timeStampBefore = "", string tagKeepTime="", string tagValueBefore = "",
string tagName = "", string itemName = "", string shaftID = "", string tagOrderBy = "")
{
TagValue = GetTypeValue(valueType, tagValue);
if (tagValueBefore != null)
{
TagValueBefore = GetTypeValue(valueType, tagValueBefore);
}
ValueType = valueType;
TagID = tagID;
OpName = opName;
try
{
TimeStamp = Convert.ToDateTime(timeStamp);
}
catch
{
TimeStamp = DateTime.Now;
}
try
{
TimeStampBefore = Convert.ToDateTime(timeStampBefore);
}
catch
{
TimeStampBefore = DateTime.Now;
}
TagTypeCodeID = tagTypeCodeID;
TagName = tagName;
ItemName = itemName;
ShaftID = shaftID;
TagOrderBy = tagOrderBy;
TagKeepTime = Convert.ToInt32( tagKeepTime);
}
public ReturnValueString ReturnValueToString()
{
ReturnValueString rs = new ReturnValueString(TagID, TagValue, OpName, TagTypeCodeID);
return rs;
}
public static object GetTypeValue(string type, string tagValue)
{
object tagV = "-1";
if (type == null)
{
tagV = tagValue;
}
switch (type.ToLower())
{
case "bool":
case "boolean":
tagV = false;
switch (tagValue.ToLower())
{
case "1":
case "true":
tagV = true;
break;
case "0":
case "false":
tagV = false;
break;
}
return tagV;
//return Type.GetType(" System.Boolean ", true, true);
case "byte ":
return Convert.ToByte(tagValue);
case "sbyte":
return Convert.ToSByte(tagValue);
case "char":
return Convert.ToChar(tagValue);
case "decimal":
return Convert.ToDecimal(tagValue);
case "double":
return Convert.ToDouble(tagValue);
case "float":
return Convert.ToSingle(tagValue);
case "int":
return Convert.ToInt32(tagValue);
case "int16":
return Convert.ToInt32(tagValue);
case "uint":
return Convert.ToUInt32(tagValue);
case "long":
return Convert.ToInt64(tagValue);
case "ulong":
return Convert.ToUInt64(tagValue);
case "object":
return tagValue;
case "short":
return Convert.ToInt16(tagValue);
case "ushort":
return Convert.ToUInt16(tagValue);
case "string":
return tagValue;
case "date":
case "datetime":
return Convert.ToDateTime(tagValue);
case "guid":
return tagValue;
default:
return tagValue;
}
}
}
public class TagIDTagFormat
{
public string TagID;
public TagFormat TF;
public TagIDTagFormat(string tagID, TagFormat tF)
{
TagID = tagID;
TF = tF;
}
}
public class QualityDataSaveList
{
public Hashtable valuList;
public DataTable BasicDataTagValue;
public DataTable BasicDataTagValueUpDown;
public Hashtable hashtable_EngineTypeID;
public Hashtable hashtable_tagTable_OpName_SaveData;
}
public struct ControlData
{
public int TagType;
public string opName;
public Control btn; public ControlData(Control Ctrl, string OpName)
{
string[] Array_NameSplit;
Array_NameSplit = Ctrl.Name.Split('_');
TagType = Convert.ToInt32(Array_NameSplit[2]);
opName = OpName;
btn = Ctrl;
}
}
public struct ControlChangeByTagType
{
public ControlChangeByTagType(int tagType, string value)
{
TagType = tagType;
Value = value;
}
public int TagType;
public string Value;
}
///
/// tag格式化结构
///
public struct TagFormat
{
///
/// TagID
///
public string TagID;
///
/// TagID
///
public string TagName;
///
/// 工位号
///
public string OpName;
///
/// 数据来源
///
public string DataSources;
///
/// IP
///
public string IP;
///
/// OPC的URL
///
public string OpcIpPort;
///
/// 组
///
public string Group;
///
/// 监控时间间隔
///
public string MonitorInterval;
///
/// DB号加起始地址,DB1001.30
///
public string TagDbAndStartAdr;
///
/// DB号加起始地址,DB1001.30.1,为了bool写入专用
///
public string TagDbAndStartAdrWrite;
///
/// OPC协议地址
/// 例如:S7:[192.168.1.211|VFD1|S7ONLINE|01.00,192.168.1.211,02.02,1]DB1001,DINT154
///
public string TagOPCAdrStr;
///
/// DB地址位置
/// 变量起始地址,例如 0,1,2,56,80...
///
public int Index;
///
/// 变量字节长度
/// 变量字节长度,l例如 1,2,4...
///
public int Length;
///
/// X 0,1,2,3,4,5,6,7
/// 例如 X 0,1,2,3,4,5,6,7
///
public int BitIndex;
///
/// 以连续Byte数组方式读取的DB地址实际位置
/// 变量起始地址,例如 0,1,2,56,80...
///
public int IndexBytes;
///
/// 绝对地址差分,应用区域读取的拆分20200101_LLX
///
public int AbsAddrDiff;
///
/// 点类型代码
/// 比如bool是11,String是8
///
public int TagTypeID;
///
/// 点类型
/// 比如Bool,INT,STRING等
///
public string TagType;
///
/// 变量类型代码
/// 比如:允许保存是19
///
public int TagTypeCodeID;
///
/// Value
///
public object TagValue;
///
/// 是否监控
///
public int IsMonitor;
///
/// 时间戳
///
public DateTime TimeStamp;
///
/// 标签质量 192 , -1
///
public string TagQuality;
///
/// 测量位置
///
public string ShaftID;
///
/// 测量项目
///
public string ItemName;
///
/// 测量单位
///
public string Unit;
///
/// 上限值
///
public string TagValueUp;
///
/// 下限值
///
public string TagValueDown;
///
/// 理论值
///
public string TagValeNormal;
///
/// 合格标志
///
public string IsGoodBad;
///
/// 列位置
///
public string TagOrderBy;
///
/// 变量排序
///
public string TagItemOrderBy;
///
/// 是保存到数据库
///
public int IsSaveToSql;
///
/// 是发送到WebSocket
///
public int IsWebSocket;
///
/// 是程序启动时候的值
///
public int IsFirstValue;
///
/// 变量特点
///
public int TagProperty;
///
/// 变量变化的持续时间,单位 毫秒
///
public int TagKeepTime;
///
/// 变量变化前的值
///
public object TagValueBefore;
}
public class CustomeEvetnArgs : EventArgs
{
public int TagKeepTime { get; set; }
public object TagProperty { get; set; }
public object TagItemOrderBy { get; set; }
public object TagOrderBy { get; set; }
public object IsGoodBad { get; set; }
public object TagValeNormal { get; set; }
public object TagValueDown { get; set; }
public object TagValueUp { get; set; }
public object Unit { get; set; }
public object ItemName { get; set; }
public object ShaftID { get; set; }
public object IsMonitor { get; set; }
public object TagTypeActual { get; set; }
public object TagValueBefore { get; set; }
public object IsFirstValue { get; set; }
public object IsSaveToSql { get; set; }
public object DataDources { get; set; }
public object TagTypeID { get; set; }
public object TagTypeCodeID { get; set; }
public object TagID { get; set; }
public string TimeStamp { get; set; }
public object TagQuality { get; set; }
public object OpName { get; set; }
public object TagValue { get; set; }
public object TagValueType { get; set; }
public object TagType { get; set; }
public object TagName { get; set; }
public object TagKey { get; set; }
public object IsWebSocket { get; set; }
public string TimeStampBefore { get; set; }
}
public class QualityDataType
{
public int tagValueType;
public int tagTypeID;
public string opName;
public string tagID;
public object tagValue;
public int tagQuality;
public int tagOrderBy;
public int tagItemOrderBy;
public int tagProperty;
public int isGoodBad;
}
public class HashtableList
{
///
/// MesServerCode
///
static public Hashtable hashtable_MesServerCode_Temp;
///
/// MesDll
///
static public Hashtable hashtable_MesDll_Temp;
static public NameValueCollection hashtable_TagTypeDataType_Temp;
static public NameValueCollection hashtable_TagType_Temp;
static public Hashtable hashtable_TagTypeTagName_Temp;
static public Hashtable hashtable_EngineGetOver_EngineTypeID_Temp;
static public Hashtable hashtable_EngineGetOver_EngineType_Temp;
static public Hashtable hashtable_EngineGetOver_EngineID_Temp;
static public Hashtable hashtable_EngineGetOver_OrderForm_Temp;
static public Hashtable hashtable_OpNameRepair_Temp;
static public Hashtable hashtable_WorkGroupIndex_Temp;
static public Hashtable hashtable_workStepProperty_Temp;
static public Hashtable hashtable_QualityMesRead_Temp;
static public Hashtable hashtable_IsAllowWork_Temp;
///
/// 工位号与工位上下线类型
/// (0普通工位)(1正常上线)(2正常下线)(3返修上线)(4返修下线)
/// 5 分线上线(总线) 6 分线上线(分线)
///
static public Hashtable hashtableOpName_OpType_Temp;
static public Hashtable hashtable_tagTable_OpName_SaveData_Temp;
public Hashtable hashtable_tagTable_OpName_SaveData;
///
///
/// 工位号与工位上下线类型
/// (0普通工位)(1正常上线)(2正常下线)(3返修上线)(4返修下线)
/// 5 分线上线(总线) 6 分线上线(分线)
///
public Hashtable hashtableOpName_OpType;
public Hashtable hashtable_IsAllowWork;
public Hashtable hashtable_QualityMesRead;
public Hashtable hashtable_workStepProperty;
public Hashtable hashtable_OpNameRepair;
///
/// MesServerCode
///
public Hashtable hashtable_MesServerCode;
public Hashtable hashtable_TagTypeTagName;
///
/// MesDll
///
public Hashtable hashtable_MesDll;
public NameValueCollection hashtable_TagTypeDataType;
public NameValueCollection hashtable_TagType;
public Hashtable hashtable_EngineGetOver_EngineTypeID;
public Hashtable hashtable_EngineGetOver_EngineType;
public Hashtable hashtable_EngineGetOver_EngineID;
public Hashtable hashtable_EngineGetOver_OrderForm;
public Hashtable hashtable_WorkGroupIndex;
public DataTable BasicDataTagValue;
public DataTable BasicDataTagValueUpDown;
public Hashtable hashtable_EngineTypeID;
}
public struct QualityDataQueryStruct
{
public QualityDataQueryStruct(string opName, Control ctrl)
{
OpName = opName;
Ctrl = ctrl;
tagType = 0;
tagValue = "";
tagID = "";
tagTypeID = 0;
tempForm = null;
tagValue2 = null;
}
public QualityDataQueryStruct(string opName, int TagType)
{
OpName = opName;
Ctrl = null;
tagType = TagType;
tagValue = "";
tagID = "";
tagTypeID = 0;
tempForm = null;
tagValue2 = null;
}
public QualityDataQueryStruct(string opName, int TagType, Control ctrl)
{
OpName = opName;
Ctrl = ctrl;
tagType = TagType;
tagValue = "";
tagID = "";
tagTypeID = 0;
tempForm = null;
tagValue2 = null;
}
public QualityDataQueryStruct(string opName, int TagType, object TagValue)
{
OpName = opName;
Ctrl = null;
tagType = TagType;
tagValue = TagValue;
tagID = "";
tagTypeID = 0;
tempForm = null;
tagValue2 = null;
}
public QualityDataQueryStruct(string TagID, int TagTypeID, object TagValue, object TagValue2, Form TempForm)
{
OpName = "";
Ctrl = null;
tagType = 0;
tagValue = TagValue;
tagID = TagID;
tagTypeID = TagTypeID;
tempForm = TempForm;
tagValue2 = TagValue2;
}
public string OpName;
public Control Ctrl;
public int tagType;
public object tagValue;
public object tagValue2;
public string tagID;
public int tagTypeID;
public Form tempForm;
}
}
namespace DoWhatPlc1
{
public class EngineValue
{
public string OpName { set; get; }
public string EngineID { set; get; }
public string EngineType { set; get; }
public int EngineTypeID { set; get; }
public int PalletCode { set; get; }
public int ProcessCode { set; get; }
public int PartPalletCode { set; get; }
public string PalletInfo { set; get; }
///
/// 显示返修标志
///
public int RepairPartStatusPLC { set; get; }
///
/// 1 合格;2 不合格
///
public int QualityMask { set; get; }
public string OrderForm { set; get; }
}
public class DoWhat
{
public const string ReadPLC_TagID = "ReadPLC_TagID";
public const string WritePLC_TagID = "WritePLC_TagID";
public const string ReadPLC_TagTypeCodeID = "ReadPLC_TagTypeCodeID";
public const string WritePLC_TagTypeCodeID = "WritePLC_TagTypeCodeID";
public const string ReadPLC_Cmd = "ReadPLC_Cmd";
public const string WritePLC_Cmd = "WritePLC_Cmd";
public const string ReadPLC_GroupData = "ReadPLC_GroupData";
public const string ReadPLC_GroupMonitor = "ReadPLC_GroupMonitor";
public const string ReadPLC_IpTag = "ReadPLC_IpTag";
public const string ReadPLC_IpMonitorTag = "ReadPLC_IpMonitorTag";
public const string ReadQualityDataList = "ReadQualityDataList";
public const string ReadByteData_Op = "ReadByteData_Op";
public const string ReadByteData_Ip = "ReadByteData_Ip";
public const string WritePLC_Bytes_Op = "WritePLC_Bytes_Op";
public const string WritePLC_Bytes_Ip = "WritePLC_Bytes_Ip";
public const string IpAllTag = "IpAllTag";
public const string IpMonitorTag = "IpMonitorTag";
public const string RegionRead = "RegionRead";
public const string ReadBytes = "ReadBytes";
public const string WriteBytes = "WriteBytes";
}
///
/// object 类型数据转换成字符串变量表达
///
public class ReturnValueString
{
public string TagID { set; get; }
public string TagValue { set; get; }
public string ValueType { set; get; }
public string OpName { set; get; }
public string TimeStamp { set; get; }
public string TagTypeCodeID { set; get; }
public string TagTypeID { set; get; }
///
/// 变量变化的持续时间,单位 毫秒
///
public string TagKeepTime;
public string FunName;
public string FunCmd;
public string MesServerCode;
public string CmdPlcReadWrite;
public ReturnValueString()
{
}
public ReturnValueString(string tagID, object tagValue, string opName = "", string tagTypeCodeID = "", string tagTypeID = "", string tagKeepTime = "", string funName = "", string funCmd = "", string mesServerCode = "")
{
TagTypeCodeID = tagTypeCodeID;
TagTypeID = tagTypeID;
TagValue = tagValue.ToString();
ValueType = tagValue.GetType().Name;
TagID = tagID;
OpName = opName;
TagKeepTime = tagKeepTime;
FunName = funName;
FunCmd = funCmd;
MesServerCode = mesServerCode;
TimeStamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff");
}
public ReturnValueObject ReturnValueToObject()
{
ReturnValueObject ro = new ReturnValueObject(TagID, TagValue, OpName, TagTypeCodeID, ValueType, TimeStamp);
return ro;
}
}
///
/// 字符串变量转变成object类型变量
///
public class ReturnValueObject
{
public string TagID { set; get; }
public object TagValue { set; get; }
public string ValueType { set; get; }
public string OpName { set; get; }
public DateTime TimeStamp { set; get; }
public string TagTypeCodeID { set; get; }
///
/// 变量变化的持续时间,单位 毫秒
///
public int TagKeepTime;
public ReturnValueObject(string tagID, string tagValue, string opName = "", string tagTypeCodeID = "", string valueType = "", string timeStamp = "")
{
TagValue = GetTypeValue(valueType, tagValue);
ValueType = valueType;
TagID = tagID;
OpName = opName;
try
{
TimeStamp = Convert.ToDateTime(timeStamp);
}
catch
{
TimeStamp = DateTime.Now;
}
TagTypeCodeID = tagTypeCodeID;
}
public ReturnValueString ReturnValueToString()
{
ReturnValueString rs = new ReturnValueString(TagID, TagValue, OpName, TagTypeCodeID);
return rs;
}
public static object GetTypeValue(string type, string tagValue)
{
object tagV = "-1";
if (type == null)
{
tagV = tagValue;
}
switch (type.ToLower())
{
case "bool":
case "boolean":
tagV = false;
switch (tagValue.ToLower())
{
case "1":
case "true":
tagV = true;
break;
case "0":
case "false":
tagV = false;
break;
}
return tagV;
//return Type.GetType(" System.Boolean ", true, true);
case "byte ":
return Convert.ToByte(tagValue);
case "sbyte":
return Convert.ToSByte(tagValue);
case "char":
return Convert.ToChar(tagValue);
case "decimal":
return Convert.ToDecimal(tagValue);
case "double":
return Convert.ToDouble(tagValue);
case "float":
return Convert.ToSingle(tagValue);
case "int":
return Convert.ToInt32(tagValue);
case "int16":
return Convert.ToInt32(tagValue);
case "uint":
return Convert.ToUInt32(tagValue);
case "long":
return Convert.ToInt64(tagValue);
case "ulong":
return Convert.ToUInt64(tagValue);
case "object":
return tagValue;
case "short":
return Convert.ToInt16(tagValue);
case "ushort":
return Convert.ToUInt16(tagValue);
case "string":
return tagValue;
case "date":
case "datetime":
return Convert.ToDateTime(tagValue);
case "guid":
return tagValue;
default:
return tagValue;
}
}
}
public class TagIDTagFormat
{
public string TagID;
public TagFormat TF;
public TagIDTagFormat(string tagID, TagFormat tF)
{
TagID = tagID;
TF = tF;
}
}
public class QualityDataSaveList
{
public Hashtable valuList;
public DataTable BasicDataTagValue;
public DataTable BasicDataTagValueUpDown;
public Hashtable hashtable_EngineTypeID;
public Hashtable hashtable_tagTable_OpName_SaveData;
}
public struct ControlData
{
public int TagType;
public string opName;
public Control btn; public ControlData(Control Ctrl, string OpName)
{
string[] Array_NameSplit;
Array_NameSplit = Ctrl.Name.Split('_');
TagType = Convert.ToInt32(Array_NameSplit[2]);
opName = OpName;
btn = Ctrl;
}
}
public struct ControlChangeByTagType
{
public ControlChangeByTagType(int tagType, string value)
{
TagType = tagType;
Value = value;
}
public int TagType;
public string Value;
}
///
/// tag格式化结构
///
public struct TagFormat
{
///
/// TagID
///
public string TagID;
///
/// TagID
///
public string TagName;
///
/// 工位号
///
public string OpName;
///
/// 数据来源
///
public string DataSources;
///
/// IP
///
public string IP;
///
/// OPC的URL
///
public string OpcIpPort;
///
/// 组
///
public string Group;
///
/// 监控时间间隔
///
public string MonitorInterval;
///
/// DB号加起始地址,DB1001.30
///
public string TagDbAndStartAdr;
///
/// DB号加起始地址,DB1001.30.1,为了bool写入专用
///
public string TagDbAndStartAdrWrite;
///
/// OPC协议地址
/// 例如:S7:[192.168.1.211|VFD1|S7ONLINE|01.00,192.168.1.211,02.02,1]DB1001,DINT154
///
public string TagOPCAdrStr;
///
/// DB地址位置
/// 变量起始地址,例如 0,1,2,56,80...
///
public int Index;
///
/// 变量字节长度
/// 变量字节长度,l例如 1,2,4...
///
public int Length;
///
/// X 0,1,2,3,4,5,6,7
/// 例如 X 0,1,2,3,4,5,6,7
///
public int BitIndex;
///
/// 以连续Byte数组方式读取的DB地址实际位置
/// 变量起始地址,例如 0,1,2,56,80...
///
public int IndexBytes;
///
/// 绝对地址差分,应用区域读取的拆分20200101_LLX
///
public int AbsAddrDiff;
///
/// 点类型代码
/// 比如bool是11,String是8
///
public int TagTypeID;
///
/// 点类型
/// 比如Bool,INT,STRING等
///
public string TagType;
///
/// 变量类型代码
/// 比如:允许保存是19
///
public int TagTypeCodeID;
///
/// Value
///
public object TagValue;
///
/// 是否监控
///
public int IsMonitor;
///
/// 时间戳
///
public DateTime TimeStamp;
///
/// 标签质量 192 , -1
///
public string TagQuality;
///
/// 测量位置
///
public string ShaftID;
///
/// 测量项目
///
public string ItemName;
///
/// 测量单位
///
public string Unit;
///
/// 上限值
///
public string TagValueUp;
///
/// 下限值
///
public string TagValueDown;
///
/// 理论值
///
public string TagValeNormal;
///
/// 合格标志
///
public string IsGoodBad;
///
/// 列位置
///
public string TagOrderBy;
///
/// 变量排序
///
public string TagItemOrderBy;
///
/// 是保存到数据库
///
public int IsSaveToSql;
///
/// 是发送到WebSocket
///
public int IsWebSocket;
///
/// 是程序启动时候的值
///
public int IsFirstValue;
///
/// 变量特点
///
public int TagProperty;
///
/// 变量变化的持续时间,单位 毫秒
///
public int TagKeepTime;
///
/// 变量变化前的值
///
public object TagValueBefore;
}
public class CustomeEvetnArgs : EventArgs
{
public int TagKeepTime { get; set; }
public object TagProperty { get; set; }
public object TagItemOrderBy { get; set; }
public object TagOrderBy { get; set; }
public object IsGoodBad { get; set; }
public object TagValeNormal { get; set; }
public object TagValueDown { get; set; }
public object TagValueUp { get; set; }
public object Unit { get; set; }
public object ItemName { get; set; }
public object ShaftID { get; set; }
public object IsMonitor { get; set; }
public object TagTypeActual { get; set; }
public object TagValueBefore { get; set; }
public object IsFirstValue { get; set; }
public object IsSaveToSql { get; set; }
public object DataDources { get; set; }
public object TagTypeID { get; set; }
public object TagTypeCodeID { get; set; }
public object TagID { get; set; }
public string TimeStamp { get; set; }
public object TagQuality { get; set; }
public object OpName { get; set; }
public object TagValue { get; set; }
public object TagValueType { get; set; }
public object TagType { get; set; }
public object TagName { get; set; }
public object TagKey { get; set; }
public object IsWebSocket { get; set; }
public string TimeStampBefore { get; set; }
}
public class QualityDataType
{
public int tagValueType;
public int tagTypeID;
public string opName;
public string tagID;
public object tagValue;
public int tagQuality;
public int tagOrderBy;
public int tagItemOrderBy;
public int tagProperty;
public int isGoodBad;
}
public class HashtableList
{
///
/// MesServerCode
///
static public Hashtable hashtable_MesServerCode_Temp;
///
/// MesDll
///
static public Hashtable hashtable_MesDll_Temp;
static public Hashtable hashtable_TagTypeDataType_Temp;
static public Hashtable hashtable_TagType_Temp;
static public Hashtable hashtable_EngineGetOver_EngineTypeID_Temp;
static public Hashtable hashtable_EngineGetOver_EngineType_Temp;
static public Hashtable hashtable_EngineGetOver_EngineID_Temp;
static public Hashtable hashtable_EngineGetOver_OrderForm_Temp;
static public Hashtable hashtable_OpNameRepair_Temp;
static public Hashtable hashtable_WorkGroupIndex_Temp;
static public Hashtable hashtable_workStepProperty_Temp;
static public Hashtable hashtable_QualityMesRead_Temp;
static public Hashtable hashtable_IsAllowWork_Temp;
///
/// 工位号与工位上下线类型
/// (0普通工位)(1正常上线)(2正常下线)(3返修上线)(4返修下线)
/// 5 分线上线(总线) 6 分线上线(分线)
///
static public Hashtable hashtableOpName_OpType_Temp;
///
///
/// 工位号与工位上下线类型
/// (0普通工位)(1正常上线)(2正常下线)(3返修上线)(4返修下线)
/// 5 分线上线(总线) 6 分线上线(分线)
///
public Hashtable hashtableOpName_OpType;
public Hashtable hashtable_IsAllowWork;
public Hashtable hashtable_QualityMesRead;
public Hashtable hashtable_workStepProperty;
public Hashtable hashtable_OpNameRepair;
///
/// MesServerCode
///
public Hashtable hashtable_MesServerCode;
///
/// MesDll
///
public Hashtable hashtable_MesDll;
public Hashtable hashtable_TagTypeDataType;
public Hashtable hashtable_TagType;
public Hashtable hashtable_EngineGetOver_EngineTypeID;
public Hashtable hashtable_EngineGetOver_EngineType;
public Hashtable hashtable_EngineGetOver_EngineID;
public Hashtable hashtable_EngineGetOver_OrderForm;
public Hashtable hashtable_WorkGroupIndex;
public DataTable BasicDataTagValue;
public DataTable BasicDataTagValueUpDown;
public Hashtable hashtable_EngineTypeID;
}
public struct QualityDataQueryStruct
{
public QualityDataQueryStruct(string opName, Control ctrl)
{
OpName = opName;
Ctrl = ctrl;
tagType = 0;
tagValue = "";
tagID = "";
tagTypeID = 0;
tempForm = null;
tagValue2 = null;
}
public QualityDataQueryStruct(string opName, int TagType)
{
OpName = opName;
Ctrl = null;
tagType = TagType;
tagValue = "";
tagID = "";
tagTypeID = 0;
tempForm = null;
tagValue2 = null;
}
public QualityDataQueryStruct(string opName, int TagType, Control ctrl)
{
OpName = opName;
Ctrl = ctrl;
tagType = TagType;
tagValue = "";
tagID = "";
tagTypeID = 0;
tempForm = null;
tagValue2 = null;
}
public QualityDataQueryStruct(string opName, int TagType, object TagValue)
{
OpName = opName;
Ctrl = null;
tagType = TagType;
tagValue = TagValue;
tagID = "";
tagTypeID = 0;
tempForm = null;
tagValue2 = null;
}
public QualityDataQueryStruct(string TagID, int TagTypeID, object TagValue, object TagValue2, Form TempForm)
{
OpName = "";
Ctrl = null;
tagType = 0;
tagValue = TagValue;
tagID = TagID;
tagTypeID = TagTypeID;
tempForm = TempForm;
tagValue2 = TagValue2;
}
public string OpName;
public Control Ctrl;
public int tagType;
public object tagValue;
public object tagValue2;
public string tagID;
public int tagTypeID;
public Form tempForm;
}
}