using System;
using System.ComponentModel;
using WCS.Entity.Protocol.Protocol.SRM;
namespace WCS.Entity.Protocol.SRM
{
///
/// 堆垛机DB521
///
/// 状态
/// 运行模式
/// 运行状态
/// 运行速度
/// 深度
/// 任务类型
public interface SRM521 : IProtocol
{
#region 一工位
///
/// 任务 ID
///
int TaskID_1 { get; set; }
///
/// 任务起始行
///
short RowPos1_1 { get; set; }
///
/// 任务行走起始列
///
short TravelPos1_1 { get; set; }
///
/// 任务提升起始层
///
short LiftPos1_1 { get; set; }
///
/// 任务起始伸叉深度
///
SRMForkPos ForkStartPos1_1 { get; set; }
///
/// 任务目标行
///
short RowPos2_1 { get; set; }
///
/// 任务行走目标列
///
short TravelPos2_1 { get; set; }
///
/// 任务提升目标层
///
short LiftPos2_1 { get; set; }
///
/// 任务目标伸叉深度
///
SRMForkPos ForkDestPos2_1 { get; set; }
///
/// 完成任务ID
///
int TaskFinishiID_1 { get; set; }
///
/// 货叉模式
///
SRMAutoStatus AutoStatus_1 { get; set; }
///
/// 货叉运行状态
///
SRMForkRunStatus RunStatus_1 { get; set; }
///
/// 当前行
///
short Srm_Row_1 { get; set; }
///
/// 当前列
///
short Srm_Column_1 { get; set; }
///
/// 当前层
///
short Srm_Layer_1 { get; set; }
///
/// 行走当前位置 MM
///
[IgnoreChanging]
int TravelPos_1 { get; set; }
///
/// 提升当前位置 MM
///
[IgnoreChanging]
int LiftPos_1 { get; set; }
///
/// 货叉当前位置 MM 往左为负值,往右为正
///
[IgnoreChanging]
int ForkPos_1 { get; set; }
///
/// 备用
///
[IgnoreChanging]
float RES_1_1 { get; set; }
///
/// 货物类型
///
short Goodstype_1 { get; set; }
///
/// 运行时间(Real)(单位:小时,带小数)
///
[IgnoreChanging]
float Runtime_1 { get; set; }
///
/// 备用
///
int RES_1_2 { get; set; }
///
/// 备用
///
short RES_1_3 { get; set; }
///
/// 备用
///
short RES_1_5 { get; set; }
///
/// 备用
///
short RES_1_6 { get; set; }
///
/// 备用
///
short RES_1_7 { get; set; }
///
/// 备用
///
short RES_1_8 { get; set; }
///
/// 货叉状态
///
SRMForkStatus RES_1_9 { get; set; }
#endregion 一工位
#region 二工位
///
/// 任务 ID
///
int TaskID_2 { get; set; }
///
/// 任务起始行
///
short RowPos1_2 { get; set; }
///
/// 任务行走起始列
///
short TravelPos1_2 { get; set; }
///
/// 任务提升起始层
///
short LiftPos1_2 { get; set; }
///
/// 任务起始伸叉深度
///
SRMForkPos ForkStartPos1_2 { get; set; }
///
/// 任务目标行
///
short RowPos2_2 { get; set; }
///
/// 任务行走目标列
///
short TravelPos2_2 { get; set; }
///
/// 任务提升目标层
///
short LiftPos2_2 { get; set; }
///
/// 任务目标伸叉深度
///
SRMForkPos ForkDestPos2_2 { get; set; }
///
/// 完成任务ID
///
int TaskFinishiID_2 { get; set; }
///
/// 货叉模式
///
SRMAutoStatus AutoStatus_2 { get; set; }
///
/// 货叉运行状态
///
SRMForkRunStatus RunStatus_2 { get; set; }
///
/// 当前行
///
short Srm_Row_2 { get; set; }
///
/// 当前列
///
short Srm_Column_2 { get; set; }
///
/// 当前层
///
short Srm_Layer_2 { get; set; }
///
/// 行走当前位置 MM
///
[IgnoreChanging]
int TravelPos_2 { get; set; }
///
/// 提升当前位置 MM
///
[IgnoreChanging]
int LiftPos_2 { get; set; }
///
/// 货叉当前位置 MM 往左为负值,往右为正
///
[IgnoreChanging]
int ForkPos_2 { get; set; }
///
/// 备用
///
[IgnoreChanging]
float RES_2_1 { get; set; }
///
/// 货物类型
///
short Goodstype_2 { get; set; }
///
/// 运行时间(Real)(单位:小时,带小数)
///
[IgnoreChanging]
float Runtime_2 { get; set; }
///
/// 凭证号
///
int VoucherNo_2 { get; set; }
///
/// 备用
///
int RES_2_2 { get; set; }
///
/// 备用
///
short RES_2_3 { get; set; }
///
/// 备用
///
short RES_2_4 { get; set; }
///
/// 备用
///
short RES_2_5 { get; set; }
///
/// 货叉状态
///
SRMForkStatus RES_2_6 { get; set; }
#endregion 二工位
#region 公用
///
/// 堆垛机模式
///
SRMAutoStatus SRMStatus { get; set; }
///
/// 堆垛机状态
///
SRMFRunStatus SrmRunStatus { get; set; }
///
/// 堆垛机运行里程数(单位:千米)
///
[IgnoreChanging]
float TotalKM { get; set; }
///
/// 运行时间(Real)(单位:小时,带小数)
///
[IgnoreChanging]
float Runtime { get; set; }
///
/// 堆垛机是否异常 1:异常 0:正常
///
short Alarm { get; set; }
///
/// 备用
///
int RES1 { get; set; }
///
/// 备用
///
short RES2 { get; set; }
///
/// 备用
///
short RES3 { get; set; }
///
/// 备用
///
int RES4 { get; set; }
///
/// 备用
///
short RES5 { get; set; }
///
/// 备用
///
short RES6 { get; set; }
#endregion 公用
}
///
/// 货叉深度
///
public enum SRMForkPos : short
{
中位 = 0,
深度1 = 1,
深度2 = 2
}
///
/// 任务类型
///
public enum SRMTaskType : short
{
完成任务 = 1,
删除任务 = 2,
移动任务 = 3,
取放货任务 = 4
}
///
/// SRM状态
///
[Flags]
public enum SRMStatus : ushort
{
RES_1_5 = 1 << 0,
RES_1_6 = 1 << 1,
RES_1_7 = 1 << 2,
RES_1_8 = 1 << 3,
RES_1_9 = 1 << 4,
RES_1_10 = 1 << 5,
RES_1_11 = 1 << 6,
RES_1_12 = 1 << 7,
RES_1_13 = 1 << 8,
RES_1_14 = 1 << 9,
RES_1_15 = 1 << 10,
RES_1_16 = 1 << 11,
RES_1_17 = 1 << 12,
RES_1_18 = 1 << 13,
RES_1_19 = 1 << 14,
RES_1_20 = 1 << 15,
}
///
/// 速度模式
///
public enum SCSpeedMode : short
{
正常 = 0,
低速 = 1
}
///
/// 货叉运行状态
///
public enum SRMForkRunStatus : short
{
空闲 = 1,
取货伸叉 = 2,
取货抬叉 = 3,
取货收叉 = 4,
放货伸叉 = 5,
取货降叉 = 6,
放货收叉 = 7,
维护 = 99
}
///
/// 堆垛机运行状态
///
public enum SRMFRunStatus : short
{
///
///
///
空闲 = 1,
///
///
///
取货行走 = 2,
///
///
///
取货伸叉 = 3,
///
///
///
取货抬叉 = 4,
///
///
///
取货收叉 = 5,
///
///
///
放货行走 = 6,
///
///
///
放货伸叉 = 7,
///
///
///
取货降叉 = 8,
///
///
///
放货收叉 = 9,
///
///
///
维护 = 99
}
///
/// 运行模式
///
public enum SRMAutoStatus : short
{
远程 = 1,
半自动 = 2,
手动 = 3,
维修 = 4
}
///
/// 货叉状态
///
[Flags]
public enum SRMForkStatus : ushort
{
///
/// 完成取货信号
///
Get_Finishi = 1 << 0,
///
/// 完成放货信号
///
Put_Finishi = 1 << 1,
///
/// 设备故障状态
///
Alarm = 1 << 2,
///
/// 当前任务完成
///
Task_Finishi = 1 << 3,
///
/// 设备上有货
///
Loaded = 1 << 4,
///
/// 货叉在原位
///
Fork_Center = 1 << 5,
///
/// 反馈WCS能否发任务
///
IssueTask = 1 << 6,
RES_1_9 = 1 << 7,
RES_1_10 = 1 << 8,
RES_1_11 = 1 << 9,
RES_1_12 = 1 << 10,
RES_1_13 = 1 << 11,
RES_1_14 = 1 << 12,
RES_1_15 = 1 << 13,
RES_1_16 = 1 << 14,
RES_1_17 = 1 << 15,
}
///
/// 堆垛机报警
///
[Flags]
public enum SCAlarm : ulong
{
无 = 0,
主柜急停 = 1L << 0,
分柜急停 = 1L << 1,
取货点异常 = 1L << 2,
放货点有货 = 1L << 3,
货叉取货完成后无货 = 1L << 4,
货叉无任务有货异常 = 1L << 5,
货叉运行超时 = 1L << 6,
货叉左侧超行程 = 1L << 7,
货物左前坍塌 = 1L << 8,
货物右前坍塌 = 1L << 9,
前限位触发 = 1L << 10,
后限位触发 = 1L << 11,
上限位触发 = 1L << 12,
下限位触发 = 1L << 13,
超载限位触发 = 1L << 14,
松绳限位触发1 = 1L << 15,
行走运动超行程 = 1L << 16,
起升运动超行程 = 1L << 17,
行走变频器报警 = 1L << 18,
提升变频器报警 = 1L << 19,
货叉变频器报警 = 1L << 20,
提升超速报警 = 1L << 21,
风扇, 灯, 插座空开 = 1L << 22,
触摸屏, 光通讯, 激光测距空开 = 1L << 23,
行走马达保护器 = 1L << 24,
行走抱闸空开 = 1L << 25,
起升马达保护器 = 1L << 26,
起升抱闸空开 = 1L << 27,
货叉马达保护器 = 1L << 28,
货叉抱闸空开 = 1L << 29,
安全门打开 = 1L << 30,
安全继电器报警 = 1L << 31,
当前货位已禁用 = 1L << 32,
组态中断报警 = 1L << 33,
货物左前超出 = 1L << 34,
货物左后超出 = 1L << 35,
货物右前超出 = 1L << 36,
货物右后超出 = 1L << 37,
相序保护 = 1L << 38,
货物右超高1M5 = 1L << 39,
安全门1报警 = 1L << 40,
安全门2报警 = 1L << 41,
行走测距信号丢失报警 = 1L << 42,
提升测距信号丢失报警 = 1L << 43,
行走定位失败 = 1L << 44,
提升定位失败 = 1L << 45,
回中定位失败 = 1L << 46,
//根据堆垛机通讯协议定义 下述报警暂时不存在
堆垛机巷道有人进入, 光通讯中断 = 1L << 47,
货叉位置错误 = 1L << 48,
货叉编码器报警 = 1L << 49,
货叉编码器报警中间位 = 1L << 50,
货叉中位光电异常 = 1L << 51,
载货台电源空开 = 1L << 52,
按钮, 安全回路空开 = 1L << 53,
货物左后坍塌 = 1L << 54,
货物右后坍塌 = 1L << 55,
登梯口急停 = 1L << 56,
货物左超高1M9 = 1L << 57,
货物右超高1M9 = 1L << 58,
松绳限位触发2 = 1L << 59,
货叉右侧超行程 = 1L << 60,
取放货托盘总数超限 = 1L << 61,
安全门急停 = 1L << 62,
}
}