using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
namespace WCS_Client.Frm
{
[Flags]
public enum SrmFault1Enum : ushort
{
S100_主柜急停 = 1 << 0,
S101_分柜急停 = 1 << 1,
S102_取货点异常_双伸位 = 1 << 2,
S103_放货点有货 = 1 << 3,
S104_货叉取货完成后无货 = 1 << 4,
S105_货叉无任务有货异常 = 1 << 5,
S106_货叉运行超时 = 1 << 6,
S107_货叉左侧超行程 = 1 << 7,
S110_货物左前坍塌 = 1 << 8,
S111_货物右前坍塌 = 1 << 9,
S112_前限位触发 = 1 << 10,
S113_后限位触发 = 1 << 11,
S114_上限位触发 = 1 << 12,
S115_下限位触发 = 1 << 13,
S116_超载限位触发 = 1 << 14,
S117_松绳限位触发1 = 1 << 15,
}
[Flags]
public enum SrmFault2Enum : ushort
{
S120_行走运动超行程 = 1 << 0,
S121_起升运动超行程 = 1 << 1,
S122_行走变频器故障 = 1 << 2,
S123_提升变频器故障 = 1 << 3,
S124_货叉变频器故障 = 1 << 4,
S125_提升超速故障 = 1 << 5,
S126_风扇_灯_插座空开 = 1 << 6,
S127_触摸屏_光通讯_激光测距空开 = 1 << 7,
S130_行走马达保护器 = 1 << 8,
S131_行走抱闸空开 = 1 << 9,
S132_起升马达保护器 = 1 << 10,
S133_起升抱闸空开 = 1 << 11,
S134_货叉马达保护器 = 1 << 12,
S135_货叉抱闸空开 = 1 << 13,
S136_安全门打开 = 1 << 14,
S137_安全继电器故障 = 1 << 15,
}
[Flags]
public enum SrmFault3Enum : ushort
{
S140_当前货位已禁用 = 1 << 0,
S141_组态中断报警 = 1 << 1,
S142_货物左前超出 = 1 << 2,
S143_货物左后超出 = 1 << 3,
S144_货物右前超出 = 1 << 4,
S145_货物右后超出 = 1 << 5,
S146_货物左超高150CM = 1 << 6,
S147_货物右超高150CM = 1 << 7,
S150_安全门1故障 = 1 << 8,
S151_安全门2故障 = 1 << 9,
S152_行走测距信号丢失故障 = 1 << 10,
S153_提升测距信号丢失故障 = 1 << 11,
S154_行走定位失败 = 1 << 12,
S155_提升定位失败 = 1 << 13,
S156_回中定位失败 = 1 << 14,
S157_堆垛机巷道有人进入或光通讯中断 = 1 << 15,
}
[Flags]
public enum SrmFault4Enum : ushort
{
S160_货叉位置错误 = 1 << 0,
S161_货叉编码器故障 = 1 << 1,
S162_货叉编码器故障中间位 = 1 << 2,
S163_货叉中位光电异常 = 1 << 3,
S164_载货台电源空开 = 1 << 4,
S165_按钮_安全回路空开 = 1 << 5,
S166_货物左后坍塌 = 1 << 6,
S167_货物右后坍塌 = 1 << 7,
S170_登梯口急停 = 1 << 8,
S171_货物左超高190CM = 1 << 9,
S172_货物右超高190CM = 1 << 10,
S173_松绳限位触发2 = 1 << 11,
S174_货叉右侧超行程 = 1 << 12,
S175_取放货托盘总数超出限制 = 1 << 13,
S176_安全门急停 = 1 << 14,
S177_备用 = 1 << 15,
}
public enum Auto_statusEnum
{
未知=0,
远程 = 1,
半自动 = 2,
手动 = 3,
维修 = 4
}
public enum Srm_StatusEnum
{
未知 = 0,
空闲 = 1,
取货行走 = 2,
取货伸叉 = 3,
取货抬叉 = 4,
取货收叉 = 5,
放货行走 = 6,
放货伸叉 = 7,
放货降叉 = 8,
放货收叉 = 9,
维护 = 99
}
public class SrmSignal : EquipmentSignal
{
#region variable
#endregion;
#region Properties
#region #region DB520信号集合
///
/// 心跳
///
[Description("堆垛机心跳")]
public ushort DB520_Handshake_from_wcs
{
get
{
return Query_ushort_DB_WCS_ReadWrite(0);
}
}
///
/// 码垛起始终点货位原有数量
///
[Description("码垛起始终点货位原有数量")]
public ushort DB520_Start_number
{
get
{
return Query_ushort_DB_WCS_ReadWrite(2);
}
}
///
/// 码垛终点货位叉取数量
///
[Description("码垛终点货位叉取数量")]
public ushort DB520_End_number
{
get
{
return Query_ushort_DB_WCS_ReadWrite(4);
}
}
///
/// 货物类型
///
[Description("货物类型")]
public ushort DB520_Goodtype
{
get
{
return Query_ushort_DB_WCS_ReadWrite(6);
}
}
///
/// 速度模式(0.正常速度模式 1.低速模式)
///
[Description("速度模式(0.正常速度模式 1.低速模式)")]
public ushort DB520_Runmode
{
get
{
return Query_ushort_DB_WCS_ReadWrite(8);
}
}
///
/// 任务起始行RowPos1
///
[Description("任务起始行")]
public ushort DB520_FromRowPos
{
get
{
return Query_ushort_DB_WCS_ReadWrite(10);
}
}
///
/// 任务行走起始列Travelpos1
///
[Description("任务行走起始列")]
public ushort DB520_FromColumnPos
{
get
{
return Query_ushort_DB_WCS_ReadWrite(12);
}
}
///
/// 任务提升起始层Liftpos1
///
[Description("任务提升起始层")]
public ushort DB520_FromLayerPos
{
get
{
return Query_ushort_DB_WCS_ReadWrite(14);
}
}
///
/// 任务起始深度(0:中位, 1:深度1, 2:深度2)(暂不使用,备用)
///
[Description("任务起始深度(0:中位, 1:深度1, 2:深度2)")]
public ushort DB520_Fork_start_pos1
{
get
{
return Query_ushort_DB_WCS_ReadWrite(16);
}
}
///
/// 任务目标行RowPos2
///
[Description("任务目标行")]
public ushort DB520_ToRowPos
{
get
{
return Query_ushort_DB_WCS_ReadWrite(18);
}
}
///
/// 任务行走目标列Travelpos2
///
[Description("任务行走目标列")]
public ushort DB520_ToColumnPos
{
get
{
return Query_ushort_DB_WCS_ReadWrite(20);
}
}
///
/// 任务提升目标层Liftpos2
///
[Description("任务提升目标层")]
public ushort DB520_ToLayerPos
{
get
{
return Query_ushort_DB_WCS_ReadWrite(22);
}
}
///
/// 任务目标深度(0:中位, 1:深度1, 2:深度2)
///
[Description("任务目标深度(0:中位, 1:深度1, 2:深度2)")]
public ushort DB520_Fork_dest_pos2
{
get
{
return Query_ushort_DB_WCS_ReadWrite(24);
}
}
///
/// 任务ID
///
[Description("任务ID")]
public uint DB520_TaskID
{
get
{
return Query_uint_DB_WCS_ReadWrite(26);
}
}
///
/// 以上值写入后触发任务执行(1:执行, 0:默认),当任务执行完成后PLC将其置0
///
[Description("触发任务执行(1:执行, 0:默认),当任务执行完成后PLC将其置0")]
public ushort DB520_Task_trigger
{
get
{
return Query_ushort_DB_WCS_ReadWrite(30);
}
}
#endregion;
#region DB521信号集合
[Description("堆垛机心跳")]
public bool DB521_Handshake_to_wcs
{
get
{
return Query_bool_DB_WCS_Read(0, 0);
}
}
///
///完成取货信号
///
[Description("完成取货信号")]
public bool DB521_Get_Finishi
{
get
{
return Query_bool_DB_WCS_Read(0, 1);
}
}
///
/// 完成放货信号
///
[Description("完成放货信号")]
public bool DB521_Put_Finishi
{
get
{
return Query_bool_DB_WCS_Read(0, 2);
}
}
///
/// 设备故障状态
///
[Description("设备故障状态")]
public bool SrmDB541_Alarm
{
get
{
return Query_bool_DB_WCS_Read(0, 3);
}
}
///
/// 当前任务完成
///
[Description("当前任务完成")]
public bool DB521_Task_Finishi
{
get
{
return Query_bool_DB_WCS_Read(0, 4);
}
}
///
/// 设备上有货
///
[Description("设备上有货")]
public bool DB521_Loaded
{
get
{
return Query_bool_DB_WCS_Read(0, 5);
}
}
///
/// 货叉在原位
///
[Description("货叉在原位")]
public bool DB521_Fork_Center
{
get
{
return Query_bool_DB_WCS_Read(0, 6);
}
}
///
/// 1.远程 2.半自动 3.手动 4.维修
///
[Description("堆垛机模式(1.远程 2.半自动 3.手动 4.维修)")]
public ushort DB521_Auto_status
{
get
{
return Query_ushort_DB_WCS_Read(2);
}
}
public Auto_statusEnum DB521_Auto_statusCh
{
get
{
return (Auto_statusEnum)DB521_Auto_status;
}
}
///
/// 设备状态 空闲 = 1,取货行走 = 2,取货伸叉 = 3,取货抬叉 = 4,取货收叉 = 5,放货行走 = 6,放货伸叉 = 7,放货降叉 = 8,放货收叉 = 9,维护 = 99
///
[Description("堆垛机状态(空闲 = 1,取货行走 = 2,取货伸叉 = 3,取货抬叉 = 4,取货收叉 = 5,放货行走 = 6,放货伸叉 = 7,放货降叉 = 8,放货收叉 = 9,维护 = 99)")]
public ushort DB521_Srm_Status
{
get
{
return Query_ushort_DB_WCS_Read(4);
}
}
public Srm_StatusEnum DB521_Srm_StatusCh
{
get
{
return (Srm_StatusEnum)Query_ushort_DB_WCS_Read(4);
}
}
///
/// 任务起始行RowPos1
///
[Description("任务起始行")]
public ushort DB521_FromRowPos
{
get
{
return Query_ushort_DB_WCS_Read(6);
}
}
///
/// 任务行走起始列Travelpos1
///
[Description("任务行走起始列")]
public ushort DB521_FromColumnPos
{
get
{
return Query_ushort_DB_WCS_Read(8);
}
}
///
/// 任务提升起始层Liftpos1
///
[Description("任务提升起始层")]
public ushort DB521_FromLayerPos
{
get
{
return Query_ushort_DB_WCS_Read(10);
}
}
///
/// 任务起始深度(0:中位, 1:深度1, 2:深度2)
///
[Description("任务起始深度(0:中位, 1:深度1, 2:深度2)")]
public ushort DB521_Fork_start_pos1
{
get
{
return Query_ushort_DB_WCS_Read(12);
}
}
///
/// 任务目标行RowPos2
///
[Description("任务目标行")]
public ushort DB521_ToRowPos
{
get
{
return Query_ushort_DB_WCS_Read(14);
}
}
///
/// 任务行走目标列Travelpos2
///
[Description("任务行走目标列")]
public ushort DB521_ToColumnPos
{
get
{
return Query_ushort_DB_WCS_Read(16);
}
}
///
/// 任务提升目标层Liftpos2
///
[Description("任务提升目标层")]
public ushort DB521_ToLayerPos
{
get
{
return Query_ushort_DB_WCS_Read(18);
}
}
///
/// 任务目标深度(0:中位, 1:深度1, 2:深度2)
///
[Description("任务目标深度(0:中位, 1:深度1, 2:深度2)")]
public ushort DB521_Fork_dest_pos2s
{
get
{
return Query_ushort_DB_WCS_Read(20);
}
}
///
/// 任务ID
///
[Description("任务ID")]
public uint DB521_TaskID
{
get
{
return Query_uint_DB_WCS_Read(22);
}
}
///
/// 任务触发位
///
[Description("任务触发位")]
public ushort DB521_Task_trigger
{
get
{
return Query_ushort_DB_WCS_Read(26);
}
}
///
/// 当前行Srm_Row
///
[Description("当前行")]
public ushort DB521_CurRow
{
get
{
return Query_ushort_DB_WCS_Read(28);
}
}
///
/// 当前列Srm_Column
///
[Description("当前列")]
public ushort DB521_CurColumn
{
get
{
return Query_ushort_DB_WCS_Read(30);
}
}
///
/// 当前层Srm_Layer
///
[Description("当前层")]
public ushort DB521_CurLayer
{
get
{
return Query_ushort_DB_WCS_Read(32);
}
}
///
/// 完成任务ID Taskfinishi_ID
///
[Description("完成任务ID")]
public uint DB521_Taskfinishi_ID
{
get
{
return Query_uint_DB_WCS_Read(34);
}
}
///
/// 行走当前位置MM
///
[Description("行走当前位置MM")]
public int B521_TravelPos
{
get
{
return Query_int_DB_WCS_Read(38);
}
}
///
/// 提升当前位置MM
///
[Description("提升当前位置MM")]
public uint DB521_LiftPos
{
get
{
return Query_uint_DB_WCS_Read(42);
}
}
///
/// 货叉当前位置MM,往左为正值,往右为负值
///
[Description("货叉当前位置MM,往左为正值,往右为负值")]
public int DB521_ForkPos
{
get
{
return Query_int_DB_WCS_Read(46);
}
}
///
/// 码垛起始货位原有数量
///
[Description("码垛起始货位原有数量")]
public ushort DB521_Start_number
{
get
{
return Query_ushort_DB_WCS_Read(50);
}
}
///
/// 码垛终点货位叉取数量
///
[Description("码垛终点货位叉取数量")]
public ushort DB521_End_number
{
get
{
return Query_ushort_DB_WCS_Read(52);
}
}
///
/// 里程数(单位:千米)
///
[Description("里程数(单位:千米)")]
public float DB521_Total_KM
{
get
{
return Query_float_DB_WCS_Read(54);
}
}
///
/// 货物类型
///
[Description("货物类型")]
public ushort DB521_GoodType
{
get
{
return Query_ushort_DB_WCS_Read(58);
}
}
///
/// 运行时间(Real)(单位:小时,带小数)
///
[Description("运行时间(Real)(单位:小时,带小数)")]
public float DB521_Runtime
{
get
{
//return Query_uint_DB_WCS_Read(60);
return Query_float_DB_WCS_Read(60);
}
}
#endregion;
#region DB537 故障列表
[Description("故障信息")]
public string SrmFault
{
get
{
StringBuilder sb = new StringBuilder();
if (SrmFault1 != 0)
{
sb.Append(SrmFault1.ToString());
}
if (SrmFault2 != 0)
{
sb.Append(SrmFault2.ToString());
}
if (SrmFault3 != 0)
{
sb.Append(SrmFault3.ToString());
}
if (SrmFault4 != 0)
{
sb.Append(SrmFault4.ToString());
}
return sb.ToString();
}
}
public SrmFault1Enum SrmFault1
{
get
{
ushort num = Query_ushort_DB_Equ_Status(0);
return (SrmFault1Enum)num;
}
}
public SrmFault2Enum SrmFault2
{
get
{
ushort num = Query_ushort_DB_Equ_Status(2);
return (SrmFault2Enum)num;
}
}
public SrmFault3Enum SrmFault3
{
get
{
ushort num = Query_ushort_DB_Equ_Status(4);
return (SrmFault3Enum)num;
}
}
public SrmFault4Enum SrmFault4
{
get
{
ushort num = Query_ushort_DB_Equ_Status(6);
return (SrmFault4Enum)num;
}
}
#endregion;
#endregion;
#region Constructor
public SrmSignal(string plcname, List equDBInfoSet) : base(plcname, equDBInfoSet)
{
}
#endregion;
#region Method
#endregion;
}
}