|
@@ -106,12 +106,223 @@ namespace WCS_Client
|
|
|
|
|
|
switch (proname)
|
|
|
{
|
|
|
- default:
|
|
|
+ case "Alarm":
|
|
|
+ describle = "警报";
|
|
|
+ break;
|
|
|
+ case "Col_1":
|
|
|
+ describle = "当前列";
|
|
|
+ break;
|
|
|
+ case "Col_2":
|
|
|
+ describle = "当前列";
|
|
|
+ break;
|
|
|
+ case "DEVICE":
|
|
|
+ describle = "设备";
|
|
|
+ break;
|
|
|
+ case "ECol_1":
|
|
|
+ describle = "目标列";
|
|
|
+ break;
|
|
|
+ case "ECol_2":
|
|
|
+ describle = "目标列";
|
|
|
+ break;
|
|
|
+ case "EDepth_1":
|
|
|
+ describle = "目标深度";
|
|
|
+ break;
|
|
|
+ case "EDepth_2":
|
|
|
+ describle = "目标深度";
|
|
|
+ break;
|
|
|
+ case "ELayer_1":
|
|
|
+ describle = "目标层";
|
|
|
+ break;
|
|
|
+ case "ELayer_2":
|
|
|
+ describle = "目标层";
|
|
|
+ break;
|
|
|
+ case "ELine_1":
|
|
|
+ describle = "目标行";
|
|
|
+ break;
|
|
|
+ case "ELine_2":
|
|
|
+ describle = "目标行";
|
|
|
+ break;
|
|
|
+ case "ENALBLE":
|
|
|
+ describle = "是否可用";
|
|
|
+ break;
|
|
|
+ case "FRAME":
|
|
|
+ describle = "时间";
|
|
|
+ break;
|
|
|
+ case "FinishedTask_1":
|
|
|
+ describle = "已完成任务号";
|
|
|
+ break;
|
|
|
+ case "FinishedTask_2":
|
|
|
+ describle = "已完成任务号";
|
|
|
+ break;
|
|
|
+ case "ForkPos_1":
|
|
|
+ describle = "Z轴位置 货叉";
|
|
|
+ break;
|
|
|
+ case "ForkPos_2":
|
|
|
+ describle = "Z轴位置 货叉";
|
|
|
+ break;
|
|
|
+ case "ForkStatus_1":
|
|
|
+ describle = "货叉状态";
|
|
|
+ break;
|
|
|
+ case "ForkStatus_2":
|
|
|
+ describle = "货叉状态";
|
|
|
+ break;
|
|
|
+ case "GoodsType_1":
|
|
|
+ describle = "货物类型";
|
|
|
+ break;
|
|
|
+ case "GoodsType_2":
|
|
|
+ describle = "货物类型";
|
|
|
+ break;
|
|
|
+ case "ID":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "ISLAST":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "Layer_1":
|
|
|
+ describle = "当前层";
|
|
|
+ break;
|
|
|
+ case "Layer_2":
|
|
|
+ describle = "当前层";
|
|
|
+ break;
|
|
|
+ case "LiftPos_1":
|
|
|
+ describle = "Y轴位置 提升";
|
|
|
+ break;
|
|
|
+ case "LiftPos_2":
|
|
|
+ describle = "Y轴位置 提升";
|
|
|
+ break;
|
|
|
+ case "Line_1":
|
|
|
+ describle = "当前行";
|
|
|
+ break;
|
|
|
+ case "Line_2":
|
|
|
+ describle = "当前行";
|
|
|
+ break;
|
|
|
+ case "Mode_1":
|
|
|
+ describle = "模式";
|
|
|
+ break;
|
|
|
+ case "Mode_2":
|
|
|
+ describle = "模式";
|
|
|
+ break;
|
|
|
+ case "RES9_1":
|
|
|
+ describle = "备用 PLCname=Start_number1";
|
|
|
+ break;
|
|
|
+ case "RES9_2":
|
|
|
+ describle = "备用 PLCname=Start_number2";
|
|
|
+ break;
|
|
|
+ case "RES10_1":
|
|
|
+ describle = "备用 PLCname=End_number1";
|
|
|
+ break;
|
|
|
+ case "RES10_2":
|
|
|
+ describle = "备用 PLCname=End_number2";
|
|
|
+ break;
|
|
|
+ case "RES11_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES11_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES12_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES12_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES13_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES13_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES14_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES14_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RunTime":
|
|
|
+ describle = "运行时间";
|
|
|
+ break;
|
|
|
+ case "RunTime_1":
|
|
|
+ describle = "运行时长";
|
|
|
+ break;
|
|
|
+ case "RunTime_2":
|
|
|
+ describle = "运行时长";
|
|
|
+ break;
|
|
|
+ case "SCol_1":
|
|
|
+ describle = "起始列";
|
|
|
+ break;
|
|
|
+ case "SCol_2":
|
|
|
+ describle = "起始列";
|
|
|
+ break;
|
|
|
+ case "SDepth_1":
|
|
|
+ describle = "起始深度";
|
|
|
+ break;
|
|
|
+ case "SDepth_2":
|
|
|
+ describle = "起始深度";
|
|
|
+ break;
|
|
|
+ case "SLayer_1":
|
|
|
+ describle = "起始层";
|
|
|
+ break;
|
|
|
+ case "SLayer_2":
|
|
|
+ describle = "起始层";
|
|
|
+ break;
|
|
|
+ case "SLine_1":
|
|
|
+ describle = "起始行";
|
|
|
+ break;
|
|
|
+ case "SLine_2":
|
|
|
+ describle = "起始行";
|
|
|
+ break;
|
|
|
+ case "SRMMode":
|
|
|
+ describle = "模式";
|
|
|
+ break;
|
|
|
+ case "SRMStatus":
|
|
|
+ describle = "状态";
|
|
|
+ break;
|
|
|
+ case "Status_1":
|
|
|
+ describle = "2状态";
|
|
|
+ break;
|
|
|
+ case "Status_2":
|
|
|
+ describle = "1状态";
|
|
|
+ break;
|
|
|
+ case "TaskID_1":
|
|
|
+ describle = "任务号";
|
|
|
+ break;
|
|
|
+ case "TaskID_2":
|
|
|
+ describle = "任务号";
|
|
|
+ break;
|
|
|
+ case "TotalKM_1":
|
|
|
+ describle = "总里程";
|
|
|
+ break;
|
|
|
+ case "TotalKM_2":
|
|
|
+ describle = "总里程";
|
|
|
+ break;
|
|
|
+ case "TralelPos_1":
|
|
|
+ describle = "X轴位置(0.1毫米) 行走";
|
|
|
+ break;
|
|
|
+ case "TralelPos_2":
|
|
|
+ describle = "X轴位置(0.1毫米) 行走";
|
|
|
+ break;
|
|
|
+ case "UPDATETIME":
|
|
|
+ describle = "更新时间";
|
|
|
+ break;
|
|
|
+ case "UPDATEUSER":
|
|
|
+ describle = "更新用户";
|
|
|
+ break;
|
|
|
+ case "VER":
|
|
|
+ describle = "版本";
|
|
|
+ break;
|
|
|
+ case "VoucherNo_1":
|
|
|
+ describle = "触发信号";
|
|
|
+ break;
|
|
|
+ case "VoucherNo_2":
|
|
|
+ describle = "触发信号";
|
|
|
+ break;
|
|
|
+ case "WCSVERSION":
|
|
|
+ describle = "WCS版本";
|
|
|
break;
|
|
|
}
|
|
|
var values = new object[3];
|
|
|
values[0] = describle;
|
|
|
- values[1] = proname;
|
|
|
+ values[1] = "DB521_" + proname;
|
|
|
values[2] = abc;
|
|
|
tb.Rows.Add(values);
|
|
|
}
|
|
@@ -124,13 +335,152 @@ namespace WCS_Client
|
|
|
var abc = pi.GetValue(obj.D520, null);
|
|
|
|
|
|
switch (proname)
|
|
|
- {
|
|
|
- default:
|
|
|
+ {
|
|
|
+ case "SLine_1":
|
|
|
+ describle = "起始行";
|
|
|
+ break;
|
|
|
+ case "SLine_2":
|
|
|
+ describle = "起始行";
|
|
|
+ break;
|
|
|
+ case "SCol_1":
|
|
|
+ describle = "起始列";
|
|
|
+ break;
|
|
|
+ case "SCol_2":
|
|
|
+ describle = "起始列";
|
|
|
+ break;
|
|
|
+ case "SLayer_1":
|
|
|
+ describle = "起始层";
|
|
|
+ break;
|
|
|
+ case "SLayer_2":
|
|
|
+ describle = "起始层";
|
|
|
+ break;
|
|
|
+ case "SDepth_1":
|
|
|
+ describle = "起始深度";
|
|
|
+ break;
|
|
|
+ case "SDepth_2":
|
|
|
+ describle = "起始深度";
|
|
|
+ break;
|
|
|
+ case "Col_1":
|
|
|
+ describle = "当前列";
|
|
|
+ break;
|
|
|
+ case "Col_2":
|
|
|
+ describle = "当前列";
|
|
|
+ break;
|
|
|
+ case "ELine_1":
|
|
|
+ describle = "目标行";
|
|
|
+ break;
|
|
|
+ case "ELine_2":
|
|
|
+ describle = "目标行";
|
|
|
+ break;
|
|
|
+ case "ECol_1":
|
|
|
+ describle = "目标列";
|
|
|
+ break;
|
|
|
+ case "ECol_2":
|
|
|
+ describle = "目标列";
|
|
|
+ break;
|
|
|
+ case "ELayer_1":
|
|
|
+ describle = "目标层";
|
|
|
+ break;
|
|
|
+ case "ELayer_2":
|
|
|
+ describle = "目标层";
|
|
|
+ break;
|
|
|
+ case "EDepth_1":
|
|
|
+ describle = "目标深度";
|
|
|
+ break;
|
|
|
+ case "EDepth_2":
|
|
|
+ describle = "目标深度";
|
|
|
+ break;
|
|
|
+ case "DEVICE":
|
|
|
+ describle = "设备";
|
|
|
+ break;
|
|
|
+ case "ENALBLE":
|
|
|
+ describle = "是否可用";
|
|
|
+ break;
|
|
|
+ case "FRAME":
|
|
|
+ describle = "时间";
|
|
|
+ break;
|
|
|
+ case "FinishedACK_1":
|
|
|
+ describle = "完成任务触发";
|
|
|
+ break;
|
|
|
+ case "FinishedACK_2":
|
|
|
+ describle = "完成任务触发";
|
|
|
+ break;
|
|
|
+ case "GoodsType_1":
|
|
|
+ describle = "货物类型";
|
|
|
+ break;
|
|
|
+ case "GoodsType_2":
|
|
|
+ describle = "货物类型";
|
|
|
+ break;
|
|
|
+ case "Handshake_1":
|
|
|
+ describle = "WCS心跳信号";
|
|
|
+ break;
|
|
|
+ case "Handshake_2":
|
|
|
+ describle = "WCS心跳信号";
|
|
|
+ break;
|
|
|
+ case "ID":
|
|
|
+ describle = "ID";
|
|
|
+ break;
|
|
|
+ case "ISLAST":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "RES1_1":
|
|
|
+ describle = "货物数量";
|
|
|
+ break;
|
|
|
+ case "RES1_2":
|
|
|
+ describle = "货物数量";
|
|
|
+ break;
|
|
|
+ case "RES2_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES2_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES3_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES3_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES4_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES4_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "SCSpeedMode_1":
|
|
|
+ describle = "行驶速度";
|
|
|
+ break;
|
|
|
+ case "SCSpeedMode_2":
|
|
|
+ describle = "行驶速度";
|
|
|
+ break;
|
|
|
+ case "TaskID_1":
|
|
|
+ describle = "任务号";
|
|
|
+ break;
|
|
|
+ case "TaskID_2":
|
|
|
+ describle = "任务号";
|
|
|
+ break;
|
|
|
+ case "UPDATETIME":
|
|
|
+ describle = "更新时间";
|
|
|
+ break;
|
|
|
+ case "UPDATEUSER":
|
|
|
+ describle = "更新用户";
|
|
|
+ break;
|
|
|
+ case "VER":
|
|
|
+ describle = "版本";
|
|
|
+ break;
|
|
|
+ case "VoucherNo_1":
|
|
|
+ describle = "触发信号";
|
|
|
+ break;
|
|
|
+ case "VoucherNo_2":
|
|
|
+ describle = "触发信号";
|
|
|
+ break;
|
|
|
+ case "WCSVERSION":
|
|
|
+ describle = "WCS版本";
|
|
|
break;
|
|
|
}
|
|
|
var values = new object[3];
|
|
|
values[0] = describle;
|
|
|
- values[1] = proname;
|
|
|
+ values[1] = "DB520_" + proname;
|
|
|
values[2] = abc;
|
|
|
tb.Rows.Add(values);
|
|
|
}
|
|
@@ -139,14 +489,548 @@ namespace WCS_Client
|
|
|
AttributeCollection attributes = TypeDescriptor.GetProperties(obj.D537.GetType())[pi.Name].Attributes;
|
|
|
DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
|
|
|
string describle = myAttribute.Description;
|
|
|
- string proname = "DB537" + pi.Name;
|
|
|
+ string proname = "DB537_" + pi.Name;
|
|
|
var abc = pi.GetValue(obj.D537, null);
|
|
|
|
|
|
switch (pi.Name)
|
|
|
{
|
|
|
- case "TASKNUM":
|
|
|
+ case "DEVICE":
|
|
|
+ describle = "设备";
|
|
|
+ break;
|
|
|
+ case "ENALBLE":
|
|
|
+ describle = "是否可用";
|
|
|
+ break;
|
|
|
+ case "FRAME":
|
|
|
+ describle = "时间";
|
|
|
+ break;
|
|
|
+ case "ID":
|
|
|
+ describle = "ID";
|
|
|
+ break;
|
|
|
+ case "ISLAST":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "SCAlarm":
|
|
|
+ describle = "警报";
|
|
|
+ break;
|
|
|
+ case "UPDATETIME":
|
|
|
+ describle = "更新时间";
|
|
|
+ break;
|
|
|
+ case "UPDATEUSER":
|
|
|
+ describle = "更新用户";
|
|
|
+ break;
|
|
|
+ case "VER":
|
|
|
+ describle = "版本";
|
|
|
+ break;
|
|
|
+ case "WCSVERSION":
|
|
|
+ describle = "WCS版本";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ var values = new object[3];
|
|
|
+ values[0] = describle;
|
|
|
+ values[1] = proname;
|
|
|
+ values[2] = abc;
|
|
|
+ tb.Rows.Add(values);
|
|
|
+ }
|
|
|
+
|
|
|
+ //属性遍历
|
|
|
+
|
|
|
+ return tb;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static DataTable GetAttributesDataTable(this StationData obj)
|
|
|
+ {
|
|
|
+ var tb = new DataTable(obj.GetType().Name);
|
|
|
+ tb.Columns.Add("信号说明", typeof(string));
|
|
|
+ tb.Columns.Add("信号名称", typeof(string));
|
|
|
+ tb.Columns.Add("信号值", typeof(string));
|
|
|
+
|
|
|
+ foreach (PropertyInfo pi in obj.D521.GetType().GetProperties())
|
|
|
+ {
|
|
|
+ AttributeCollection attributes = TypeDescriptor.GetProperties(obj.D521.GetType())[pi.Name].Attributes;
|
|
|
+ DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
|
|
|
+ string describle = myAttribute.Description;
|
|
|
+ string proname = pi.Name;
|
|
|
+ var abc = pi.GetValue(obj.D521, null);
|
|
|
+
|
|
|
+ switch (proname)
|
|
|
+ {
|
|
|
+ case "Tasknum":
|
|
|
describle = "任务号";
|
|
|
break;
|
|
|
+ case "CmdType":
|
|
|
+ describle = "命令类型";
|
|
|
+ break;
|
|
|
+ case "DEVICE":
|
|
|
+ describle = "设备";
|
|
|
+ break;
|
|
|
+ case "ENABLED":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "FRAME":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "GoodsSize":
|
|
|
+ describle = "货物高度";
|
|
|
+ break;
|
|
|
+ case "Goodscode":
|
|
|
+ describle = "货物数条码";
|
|
|
+ break;
|
|
|
+ case "Goodsend":
|
|
|
+ describle = "目标地址";
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "Goodsnum":
|
|
|
+ describle = "货物数量(1.两个位置放1个货物,2.两个位置放2个货物)";
|
|
|
+ break;
|
|
|
+ case "Goodsstart":
|
|
|
+ describle = "起始地址";
|
|
|
+ break;
|
|
|
+ case "ID":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "ISLAST":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "Request":
|
|
|
+ describle = "请求";
|
|
|
+ break;
|
|
|
+ case "Status":
|
|
|
+ describle = "输送机状态";
|
|
|
+ break;
|
|
|
+ case "UPTATETIME":
|
|
|
+ describle = "更新时间";
|
|
|
+ break;
|
|
|
+ case "UPDATEUSER":
|
|
|
+ describle = "更新用户";
|
|
|
+ break;
|
|
|
+ case "VER":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "VoucherNo":
|
|
|
+ describle = "凭证号 每次累加";
|
|
|
+ break;
|
|
|
+ case "WCSVERSION":
|
|
|
+ describle = "WCS版本";
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ var values = new object[3];
|
|
|
+ values[0] = describle;
|
|
|
+ values[1] = "DB521_" + proname;
|
|
|
+ values[2] = abc;
|
|
|
+ tb.Rows.Add(values);
|
|
|
+ }
|
|
|
+ foreach (PropertyInfo pi in obj.D520.GetType().GetProperties())
|
|
|
+ {
|
|
|
+ AttributeCollection attributes = TypeDescriptor.GetProperties(obj.D520.GetType())[pi.Name].Attributes;
|
|
|
+ DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
|
|
|
+ string describle = myAttribute.Description;
|
|
|
+ string proname = pi.Name;
|
|
|
+ var abc = pi.GetValue(obj.D520, null);
|
|
|
+
|
|
|
+ switch (proname)
|
|
|
+ {
|
|
|
+ case "Tasknum":
|
|
|
+ describle = "任务号";
|
|
|
+ break;
|
|
|
+ case "CmdType":
|
|
|
+ describle = "命令类型";
|
|
|
+ break;
|
|
|
+ case "DEVICE":
|
|
|
+ describle = "设备";
|
|
|
+ break;
|
|
|
+ case "ENABLED":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "FRAME":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "GoodsSize":
|
|
|
+ describle = "货物高度";
|
|
|
+ break;
|
|
|
+ case "Goodscode":
|
|
|
+ describle = "货物数条码";
|
|
|
+ break;
|
|
|
+ case "Goodsend":
|
|
|
+ describle = "目标地址";
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "Goodsnum":
|
|
|
+ describle = "货物数量(1.两个位置放1个货物,2.两个位置放2个货物)";
|
|
|
+ break;
|
|
|
+ case "Goodsstart":
|
|
|
+ describle = "起始地址";
|
|
|
+ break;
|
|
|
+ case "ID":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "ISLAST":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "Request":
|
|
|
+ describle = "请求";
|
|
|
+ break;
|
|
|
+ case "Istation521Status":
|
|
|
+ describle = "输送机状态";
|
|
|
+ break;
|
|
|
+ case "UPTATETIME":
|
|
|
+ describle = "更新时间";
|
|
|
+ break;
|
|
|
+ case "UPDATEUSER":
|
|
|
+ describle = "更新用户";
|
|
|
+ break;
|
|
|
+ case "VER":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "VoucherNo":
|
|
|
+ describle = "凭证号 每次累加";
|
|
|
+ break;
|
|
|
+ case "WCSVERSION":
|
|
|
+ describle = "WCS版本";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ var values = new object[3];
|
|
|
+ values[0] = describle;
|
|
|
+ values[1] = "DB520_" + proname;
|
|
|
+ values[2] = abc;
|
|
|
+ tb.Rows.Add(values);
|
|
|
+ }
|
|
|
+ foreach (PropertyInfo pi in obj.D523.GetType().GetProperties())
|
|
|
+ {
|
|
|
+ AttributeCollection attributes = TypeDescriptor.GetProperties(obj.D523.GetType())[pi.Name].Attributes;
|
|
|
+ DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
|
|
|
+ string describle = myAttribute.Description;
|
|
|
+ string proname = "DB523_" + pi.Name;
|
|
|
+ var abc = pi.GetValue(obj.D523, null);
|
|
|
+
|
|
|
+ switch (pi.Name)
|
|
|
+ {
|
|
|
+ case "Alarm":
|
|
|
+ describle = "警报";
|
|
|
+ break;
|
|
|
+ case "DEVICE":
|
|
|
+ describle = "设备";
|
|
|
+ break;
|
|
|
+ case "ENABLED":
|
|
|
+ describle = "是否可用";
|
|
|
+ break;
|
|
|
+ case "FRAME":
|
|
|
+ describle = "时间";
|
|
|
+ break;
|
|
|
+ case "ID":
|
|
|
+ describle = "编码";
|
|
|
+ break;
|
|
|
+ case "ISLAST":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "RES":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RunTime":
|
|
|
+ describle = "运行时间";
|
|
|
+ break;
|
|
|
+ case "Status":
|
|
|
+ describle = "输送机状态";
|
|
|
+ break;
|
|
|
+ case "UPDATETIME":
|
|
|
+ describle = "更新时间";
|
|
|
+ break;
|
|
|
+ case "UPDATEUSER":
|
|
|
+ describle = "更新用户";
|
|
|
+ break;
|
|
|
+ case "VER":
|
|
|
+ describle = "版本";
|
|
|
+ break;
|
|
|
+ case "WCSVERSION":
|
|
|
+ describle = "WCS版本";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ var values = new object[3];
|
|
|
+ values[0] = describle;
|
|
|
+ values[1] = proname;
|
|
|
+ values[2] = abc;
|
|
|
+ tb.Rows.Add(values);
|
|
|
+ }
|
|
|
+
|
|
|
+ //属性遍历
|
|
|
+
|
|
|
+ return tb;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static DataTable GetAttributesDataTable(this RGVData obj)
|
|
|
+ {
|
|
|
+ var tb = new DataTable(obj.GetType().Name);
|
|
|
+ tb.Columns.Add("信号说明", typeof(string));
|
|
|
+ tb.Columns.Add("信号名称", typeof(string));
|
|
|
+ tb.Columns.Add("信号值", typeof(string));
|
|
|
+
|
|
|
+ foreach (PropertyInfo pi in obj.D521.GetType().GetProperties())
|
|
|
+ {
|
|
|
+ AttributeCollection attributes = TypeDescriptor.GetProperties(obj.D521.GetType())[pi.Name].Attributes;
|
|
|
+ DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
|
|
|
+ string describle = myAttribute.Description;
|
|
|
+ string proname = pi.Name;
|
|
|
+ var abc = pi.GetValue(obj.D521, null);
|
|
|
+
|
|
|
+ switch (proname)
|
|
|
+ {
|
|
|
+ case "DEVICE":
|
|
|
+ describle = "设备";
|
|
|
+ break;
|
|
|
+ case "DestPosition_1":
|
|
|
+ describle = "目标站台";
|
|
|
+ break;
|
|
|
+ case "DestPosition_2":
|
|
|
+ describle = "目标站台";
|
|
|
+ break;
|
|
|
+ case "ENALBLE":
|
|
|
+ describle = "是否可用";
|
|
|
+ break;
|
|
|
+ case "FRAME":
|
|
|
+ describle = "时间";
|
|
|
+ break;
|
|
|
+ case "ID":
|
|
|
+ describle = "ID";
|
|
|
+ break;
|
|
|
+ case "ISLAST":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "Mileage":
|
|
|
+ describle = "里程";
|
|
|
+ break;
|
|
|
+ case "PRIORITY_1":
|
|
|
+ describle = "优先级";
|
|
|
+ break;
|
|
|
+ case "PRIORITY_2":
|
|
|
+ describle = "优先级";
|
|
|
+ break;
|
|
|
+ case "Position":
|
|
|
+ describle = "位置";
|
|
|
+ break;
|
|
|
+ case "RES1_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES1_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES2_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES2_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES_6":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RunTime":
|
|
|
+ describle = "运行时间";
|
|
|
+ break;
|
|
|
+ case "StartPosition_1":
|
|
|
+ describle = "起始站台";
|
|
|
+ break;
|
|
|
+ case "StartPosition_2":
|
|
|
+ describle = "起始站台";
|
|
|
+ break;
|
|
|
+ case "Status_1":
|
|
|
+ describle = "RGV运行状态";
|
|
|
+ break;
|
|
|
+ case "Status_2":
|
|
|
+ describle = "RGV运行状态";
|
|
|
+ break;
|
|
|
+ case "SystemStatus":
|
|
|
+ describle = "系统状态";
|
|
|
+ break;
|
|
|
+ case "TaskID_1":
|
|
|
+ describle = "任务号";
|
|
|
+ break;
|
|
|
+ case "TaskID_2":
|
|
|
+ describle = "任务号";
|
|
|
+ break;
|
|
|
+ case "TaskType_1":
|
|
|
+ describle = "任务类型";
|
|
|
+ break;
|
|
|
+ case "TaskType_2":
|
|
|
+ describle = "任务类型";
|
|
|
+ break;
|
|
|
+ case "Trigger_1":
|
|
|
+ describle = "触发信号";
|
|
|
+ break;
|
|
|
+ case "Trigger_2":
|
|
|
+ describle = "触发信号";
|
|
|
+ break;
|
|
|
+ case "UPDATETIME":
|
|
|
+ describle = "更新时间";
|
|
|
+ break;
|
|
|
+ case "UPDATEUSER":
|
|
|
+ describle = "更新用户";
|
|
|
+ break;
|
|
|
+ case "VER":
|
|
|
+ describle = "版本";
|
|
|
+ break;
|
|
|
+ case "WCSVERSION":
|
|
|
+ describle = "WCS版本";
|
|
|
+ break;
|
|
|
+ case "WorkMode":
|
|
|
+ describle = "RGV运行模式";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ var values = new object[3];
|
|
|
+ values[0] = describle;
|
|
|
+ values[1] = "DB521_" + proname;
|
|
|
+ values[2] = abc;
|
|
|
+ tb.Rows.Add(values);
|
|
|
+ }
|
|
|
+ foreach (PropertyInfo pi in obj.D520.GetType().GetProperties())
|
|
|
+ {
|
|
|
+ AttributeCollection attributes = TypeDescriptor.GetProperties(obj.D520.GetType())[pi.Name].Attributes;
|
|
|
+ DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
|
|
|
+ string describle = myAttribute.Description;
|
|
|
+ string proname = pi.Name;
|
|
|
+ var abc = pi.GetValue(obj.D520, null);
|
|
|
+
|
|
|
+ switch (proname)
|
|
|
+ {
|
|
|
+ case "DEVICE":
|
|
|
+ describle = "设备";
|
|
|
+ break;
|
|
|
+ case "DestPosition_1":
|
|
|
+ describle = "目标站台";
|
|
|
+ break;
|
|
|
+ case "DestPosition_2":
|
|
|
+ describle = "目标站台";
|
|
|
+ break;
|
|
|
+ case "ENALBLE":
|
|
|
+ describle = "是否可用";
|
|
|
+ break;
|
|
|
+ case "FRAME":
|
|
|
+ describle = "时间";
|
|
|
+ break;
|
|
|
+ case "ID":
|
|
|
+ describle = "ID";
|
|
|
+ break;
|
|
|
+ case "ISLAST":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "PRIORITY_1":
|
|
|
+ describle = "优先级";
|
|
|
+ break;
|
|
|
+ case "PRIORITY_2":
|
|
|
+ describle = "优先级";
|
|
|
+ break;
|
|
|
+ case "Position":
|
|
|
+ describle = "位置";
|
|
|
+ break;
|
|
|
+ case "RES1_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES1_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES2_1":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "RES2_2":
|
|
|
+ describle = "备用";
|
|
|
+ break;
|
|
|
+ case "StartPosition_1":
|
|
|
+ describle = "起始地址,环穿RGV无起始地址,只有目标地址";
|
|
|
+ break;
|
|
|
+ case "StartPosition_2":
|
|
|
+ describle = "起始地址,环穿RGV无起始地址,只有目标地址";
|
|
|
+ break;
|
|
|
+ case "TaskID_1":
|
|
|
+ describle = "任务号";
|
|
|
+ break;
|
|
|
+ case "TaskID_2":
|
|
|
+ describle = "任务号";
|
|
|
+ break;
|
|
|
+ case "TaskType_1":
|
|
|
+ describle = "任务类型";
|
|
|
+ break;
|
|
|
+ case "TaskType_2":
|
|
|
+ describle = "任务类型";
|
|
|
+ break;
|
|
|
+ case "Trigger_1":
|
|
|
+ describle = "触发信号";
|
|
|
+ break;
|
|
|
+ case "Trigger_2":
|
|
|
+ describle = "触发信号";
|
|
|
+ break;
|
|
|
+ case "UPDATETIME":
|
|
|
+ describle = "更新时间";
|
|
|
+ break;
|
|
|
+ case "UPDATEUSER":
|
|
|
+ describle = "更新用户";
|
|
|
+ break;
|
|
|
+ case "VER":
|
|
|
+ describle = "版本";
|
|
|
+ break;
|
|
|
+ case "WCSVERSION":
|
|
|
+ describle = "WCS版本";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ var values = new object[3];
|
|
|
+ values[0] = describle;
|
|
|
+ values[1] = "DB520_" + proname;
|
|
|
+ values[2] = abc;
|
|
|
+ tb.Rows.Add(values);
|
|
|
+ }
|
|
|
+ foreach (PropertyInfo pi in obj.D523.GetType().GetProperties())
|
|
|
+ {
|
|
|
+ AttributeCollection attributes = TypeDescriptor.GetProperties(obj.D523.GetType())[pi.Name].Attributes;
|
|
|
+ DescriptionAttribute myAttribute = (DescriptionAttribute)attributes[typeof(DescriptionAttribute)];
|
|
|
+ string describle = myAttribute.Description;
|
|
|
+ string proname = "DB523_" + pi.Name;
|
|
|
+ var abc = pi.GetValue(obj.D523, null);
|
|
|
+
|
|
|
+ switch (pi.Name)
|
|
|
+ {
|
|
|
+ case "DEVICE":
|
|
|
+ describle = "设备";
|
|
|
+ break;
|
|
|
+ case "ENALBLE":
|
|
|
+ describle = "是否可用";
|
|
|
+ break;
|
|
|
+ case "FRAME":
|
|
|
+ describle = "时间";
|
|
|
+ break;
|
|
|
+ case "Fault":
|
|
|
+ describle = "RGV故障";
|
|
|
+ break;
|
|
|
+ case "Fault_1":
|
|
|
+ describle = "RGV1工位故障";
|
|
|
+ break;
|
|
|
+ case "Fault_2":
|
|
|
+ describle = "RGV2工位故障";
|
|
|
+ break;
|
|
|
+ case "ISLAST":
|
|
|
+ describle = "";
|
|
|
+ break;
|
|
|
+ case "Status":
|
|
|
+ describle = "环穿状态";
|
|
|
+ break;
|
|
|
+ case "Status_1":
|
|
|
+ describle = "1工位状态";
|
|
|
+ break;
|
|
|
+ case "Status_2":
|
|
|
+ describle = "2工位状态";
|
|
|
+ break;
|
|
|
+ case "ID":
|
|
|
+ describle = "ID";
|
|
|
+ break;
|
|
|
+ case "UPDATETIME":
|
|
|
+ describle = "更新时间";
|
|
|
+ break;
|
|
|
+ case "UPDATEUSER":
|
|
|
+ describle = "更新用户";
|
|
|
+ break;
|
|
|
+ case "VER":
|
|
|
+ describle = "版本";
|
|
|
+ break;
|
|
|
+ case "WCSVERSION":
|
|
|
+ describle = "WCS版本";
|
|
|
+ break;
|
|
|
}
|
|
|
var values = new object[3];
|
|
|
values[0] = describle;
|