Files
2026-05-29 13:44:10 +08:00

1300 lines
40 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DoWhatPlc
{
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; }
/// <summary>
/// 显示返修标志
/// </summary>
public int RepairPartStatusPLC { set; get; }
/// <summary>
/// 1 合格2 不合格
/// </summary>
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";
}
/// <summary>
/// object 类型数据转换成字符串变量表达
/// </summary>
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; }
/// <summary>
/// 测量项目 TEXT2 报警的 工步内容
/// </summary>
public string ItemName { set; get; }
/// <summary>
/// 测量位置 TEXT1 报警的 工步号
/// </summary>
public string ShaftID { set; get; }
/// <summary>
/// 列位置 工步 工位工步分类
/// </summary>
public string TagOrderBy { set; get; }
public string TagValueBefore { get; set; }
public string TimeStampBefore { get; set; }
public string TagName { get; set; }
/// <summary>
/// 变量变化的持续时间,单位 毫秒
/// </summary>
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, TagValueBefore, TagName, ItemName, ShaftID);
return ro;
}
}
/// <summary>
/// 字符串变量转变成object类型变量
/// </summary>
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; }
/// <summary>
/// 变量变化的持续时间,单位 毫秒
/// </summary>
public int TagKeepTime;
public object TagValueBefore { get; set; }
public DateTime TimeStampBefore { get; set; }
public string TagName { get; set; }
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 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;
}
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;
}
/// <summary>
/// tag格式化结构
/// </summary>
public struct TagFormat
{
/// <summary>
/// TagID
/// </summary>
public string TagID;
/// <summary>
/// TagID
/// </summary>
public string TagName;
/// <summary>
/// 工位号
/// </summary>
public string OpName;
/// <summary>
/// 数据来源
/// </summary>
public string DataSources;
/// <summary>
/// IP
/// </summary>
public string IP;
/// <summary>
/// OPC的URL
/// </summary>
public string OpcIpPort;
/// <summary>
/// 组
/// </summary>
public string Group;
/// <summary>
/// 监控时间间隔
/// </summary>
public string MonitorInterval;
/// <summary>
/// DB号加起始地址DB1001.30
/// </summary>
public string TagDbAndStartAdr;
/// <summary>
/// DB号加起始地址DB1001.30.1,为了bool写入专用
/// </summary>
public string TagDbAndStartAdrWrite;
/// <summary>
/// OPC协议地址
/// 例如S7:[192.168.1.211|VFD1|S7ONLINE|01.00,192.168.1.211,02.02,1]DB1001,DINT154
/// </summary>
public string TagOPCAdrStr;
/// <summary>
/// DB地址位置
/// 变量起始地址,例如 0125680...
/// </summary>
public int Index;
/// <summary>
/// 变量字节长度
/// 变量字节长度,l例如 124...
/// </summary>
public int Length;
/// <summary>
/// X 0,1,2,3,4,5,6,7
/// 例如 X 0,1,2,3,4,5,6,7
/// </summary>
public int BitIndex;
/// <summary>
/// 以连续Byte数组方式读取的DB地址实际位置
/// 变量起始地址,例如 0125680...
/// </summary>
public int IndexBytes;
/// <summary>
/// 绝对地址差分应用区域读取的拆分20200101_LLX
/// </summary>
public int AbsAddrDiff;
/// <summary>
/// 点类型代码
/// 比如bool是11String是8
/// </summary>
public int TagTypeID;
/// <summary>
/// 点类型
/// 比如Bool,INT,STRING等
/// </summary>
public string TagType;
/// <summary>
/// 变量类型代码
/// 比如允许保存是19
/// </summary>
public int TagTypeCodeID;
/// <summary>
/// Value
/// </summary>
public object TagValue;
/// <summary>
/// 是否监控
/// </summary>
public int IsMonitor;
/// <summary>
/// 时间戳
/// </summary>
public DateTime TimeStamp;
/// <summary>
/// 标签质量 192 , -1
/// </summary>
public string TagQuality;
/// <summary>
/// 测量位置
/// </summary>
public string ShaftID;
/// <summary>
/// 测量项目
/// </summary>
public string ItemName;
/// <summary>
/// 测量单位
/// </summary>
public string Unit;
/// <summary>
/// 上限值
/// </summary>
public string TagValueUp;
/// <summary>
/// 下限值
/// </summary>
public string TagValueDown;
/// <summary>
/// 理论值
/// </summary>
public string TagValeNormal;
/// <summary>
/// 合格标志
/// </summary>
public string IsGoodBad;
/// <summary>
/// 列位置
/// </summary>
public string TagOrderBy;
/// <summary>
/// 变量排序
/// </summary>
public string TagItemOrderBy;
/// <summary>
/// 是保存到数据库
/// </summary>
public int IsSaveToSql;
/// <summary>
/// 是发送到WebSocket
/// </summary>
public int IsWebSocket;
/// <summary>
/// 是程序启动时候的值
/// </summary>
public int IsFirstValue;
/// <summary>
/// 变量特点
/// </summary>
public int TagProperty;
/// <summary>
/// 变量变化的持续时间,单位 毫秒
/// </summary>
public int TagKeepTime;
/// <summary>
/// 变量变化前的值
/// </summary>
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
{
/// <summary>
/// MesServerCode
/// </summary>
static public Hashtable hashtable_MesServerCode_Temp;
/// <summary>
/// MesDll
/// </summary>
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;
/// <summary>
/// 工位号与工位上下线类型
/// 0普通工位1正常上线2正常下线3返修上线4返修下线
/// 5 分线上线(总线) 6 分线上线(分线)
/// </summary>
static public Hashtable hashtableOpName_OpType_Temp;
/// <summary>
/// <summary>
/// 工位号与工位上下线类型
/// 0普通工位1正常上线2正常下线3返修上线4返修下线
/// 5 分线上线(总线) 6 分线上线(分线)
/// </summary>
public Hashtable hashtableOpName_OpType;
public Hashtable hashtable_IsAllowWork;
public Hashtable hashtable_QualityMesRead;
public Hashtable hashtable_workStepProperty;
public Hashtable hashtable_OpNameRepair;
/// <summary>
/// MesServerCode
/// </summary>
public Hashtable hashtable_MesServerCode;
/// <summary>
/// MesDll
/// </summary>
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 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; }
/// <summary>
/// 显示返修标志
/// </summary>
public int RepairPartStatusPLC { set; get; }
/// <summary>
/// 1 合格2 不合格
/// </summary>
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";
}
/// <summary>
/// object 类型数据转换成字符串变量表达
/// </summary>
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; }
/// <summary>
/// 变量变化的持续时间,单位 毫秒
/// </summary>
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;
}
}
/// <summary>
/// 字符串变量转变成object类型变量
/// </summary>
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; }
/// <summary>
/// 变量变化的持续时间,单位 毫秒
/// </summary>
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;
}
/// <summary>
/// tag格式化结构
/// </summary>
public struct TagFormat
{
/// <summary>
/// TagID
/// </summary>
public string TagID;
/// <summary>
/// TagID
/// </summary>
public string TagName;
/// <summary>
/// 工位号
/// </summary>
public string OpName;
/// <summary>
/// 数据来源
/// </summary>
public string DataSources;
/// <summary>
/// IP
/// </summary>
public string IP;
/// <summary>
/// OPC的URL
/// </summary>
public string OpcIpPort;
/// <summary>
/// 组
/// </summary>
public string Group;
/// <summary>
/// 监控时间间隔
/// </summary>
public string MonitorInterval;
/// <summary>
/// DB号加起始地址DB1001.30
/// </summary>
public string TagDbAndStartAdr;
/// <summary>
/// DB号加起始地址DB1001.30.1,为了bool写入专用
/// </summary>
public string TagDbAndStartAdrWrite;
/// <summary>
/// OPC协议地址
/// 例如S7:[192.168.1.211|VFD1|S7ONLINE|01.00,192.168.1.211,02.02,1]DB1001,DINT154
/// </summary>
public string TagOPCAdrStr;
/// <summary>
/// DB地址位置
/// 变量起始地址,例如 0125680...
/// </summary>
public int Index;
/// <summary>
/// 变量字节长度
/// 变量字节长度,l例如 124...
/// </summary>
public int Length;
/// <summary>
/// X 0,1,2,3,4,5,6,7
/// 例如 X 0,1,2,3,4,5,6,7
/// </summary>
public int BitIndex;
/// <summary>
/// 以连续Byte数组方式读取的DB地址实际位置
/// 变量起始地址,例如 0125680...
/// </summary>
public int IndexBytes;
/// <summary>
/// 绝对地址差分应用区域读取的拆分20200101_LLX
/// </summary>
public int AbsAddrDiff;
/// <summary>
/// 点类型代码
/// 比如bool是11String是8
/// </summary>
public int TagTypeID;
/// <summary>
/// 点类型
/// 比如Bool,INT,STRING等
/// </summary>
public string TagType;
/// <summary>
/// 变量类型代码
/// 比如允许保存是19
/// </summary>
public int TagTypeCodeID;
/// <summary>
/// Value
/// </summary>
public object TagValue;
/// <summary>
/// 是否监控
/// </summary>
public int IsMonitor;
/// <summary>
/// 时间戳
/// </summary>
public DateTime TimeStamp;
/// <summary>
/// 标签质量 192 , -1
/// </summary>
public string TagQuality;
/// <summary>
/// 测量位置
/// </summary>
public string ShaftID;
/// <summary>
/// 测量项目
/// </summary>
public string ItemName;
/// <summary>
/// 测量单位
/// </summary>
public string Unit;
/// <summary>
/// 上限值
/// </summary>
public string TagValueUp;
/// <summary>
/// 下限值
/// </summary>
public string TagValueDown;
/// <summary>
/// 理论值
/// </summary>
public string TagValeNormal;
/// <summary>
/// 合格标志
/// </summary>
public string IsGoodBad;
/// <summary>
/// 列位置
/// </summary>
public string TagOrderBy;
/// <summary>
/// 变量排序
/// </summary>
public string TagItemOrderBy;
/// <summary>
/// 是保存到数据库
/// </summary>
public int IsSaveToSql;
/// <summary>
/// 是发送到WebSocket
/// </summary>
public int IsWebSocket;
/// <summary>
/// 是程序启动时候的值
/// </summary>
public int IsFirstValue;
/// <summary>
/// 变量特点
/// </summary>
public int TagProperty;
/// <summary>
/// 变量变化的持续时间,单位 毫秒
/// </summary>
public int TagKeepTime;
/// <summary>
/// 变量变化前的值
/// </summary>
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
{
/// <summary>
/// MesServerCode
/// </summary>
static public Hashtable hashtable_MesServerCode_Temp;
/// <summary>
/// MesDll
/// </summary>
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;
/// <summary>
/// 工位号与工位上下线类型
/// 0普通工位1正常上线2正常下线3返修上线4返修下线
/// 5 分线上线(总线) 6 分线上线(分线)
/// </summary>
static public Hashtable hashtableOpName_OpType_Temp;
/// <summary>
/// <summary>
/// 工位号与工位上下线类型
/// 0普通工位1正常上线2正常下线3返修上线4返修下线
/// 5 分线上线(总线) 6 分线上线(分线)
/// </summary>
public Hashtable hashtableOpName_OpType;
public Hashtable hashtable_IsAllowWork;
public Hashtable hashtable_QualityMesRead;
public Hashtable hashtable_workStepProperty;
public Hashtable hashtable_OpNameRepair;
/// <summary>
/// MesServerCode
/// </summary>
public Hashtable hashtable_MesServerCode;
/// <summary>
/// MesDll
/// </summary>
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 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;
}
}