using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWareSda_QQJF.SRM.SrmModel
{
//通过构造函数参数来区分不同设备
public class SrmDBli
{
//WCS-Wirte-SRM
/// WCS心跳1-10000
///
///
public string handShakeW { get; set; }
/// 堆垛机号
///
///
public string srmNOW { get; set; }
/// 托盘类型
///
///
public string palletTypeW { get; set; }
/// 堆垛机写入起始列
/// (人站控制柜,前面号大后面小)
///
public string sourcePosXW { get; set; }
/// 堆垛机写入起始层
///
///
public string sourcePosYW { get; set; }
/// 堆垛机写入起始排1.4远2.3近
/// (人站控制柜左1.2右3.4)
///
public string sourcePosZW { get; set; }
/// 堆垛机目标列
///
///
public string destinationPosXW { get; set; }
/// 堆垛机目标层
///
///
public string destinationPosYW { get; set; }
/// 堆垛机目标排
///
///
public string destinationPosZW { get; set; }
/// 堆垛机执行功能
/// 0= 无
///1= 搬运
///2= 单放
///3= 移动
///4= 取消任务
///
public string commandW { get; set; }
/// 紧急停止(SRM=1)
///
///
public string emergencyStopW { get; set; }
/// 报警解除(SRM=1)
///
///
public string alarmAckW { get; set; }
/// 赋值为1执行任务完毕确认任务完成
///
///
public string taskFinishW { get; set; }
/// 备用2
///
///
public string Reserve2W { get; set; }
/// 备用3
///
///
public string Reserve3W { get; set; }
/// WCS通信位
/// 执行任务其他值填写完毕把该值STB置为1
/// plc收到此值把ACK置为1
/// ACK为1时WCS再把stb置为0
/// stb为0时plc把ack置为0同时执行任务
/// 以上为通信一个循环
///
public string stbW { get; set; }
/// SRM应答位(WCS只读)
///
///
public string ackW { get; set; }
/// 任务号
///
///
public string taskNOW { get; set; }
///
/// 主任务号
///
public string taskFather { get; set; }
//--------------------------------------------------------------------------------------------
//WCS-read-SRM
/// 堆垛机心跳
///
///
public string handShakeR { get; set; }
/// 堆垛机编号
/// =1 自动模式
///=2 手动模式
///=3 半自动模式
///=4 维修模式
///=0 关机模式
///
public string srmNOR { get; set; }
/// 堆垛机当前模式
///
///
public string modeR { get; set; }
/// 值为1堆垛机就是报警状态
///
///
public string alarmISR { get; set; }
/// 值为1堆垛机载货台为有货
///
///
public string liftFullR { get; set; }
/// 堆垛机当前列
///
///
public string posXR { get; set; }
/// 堆垛机当前层
///
///
public string posYR { get; set; }
/// 堆垛机当前货叉位置
/// =0 货叉原位
///=1 货叉在左侧
///=2 货叉在右侧
///
public string posZR { get; set; }
/// 堆垛机当前列坐标单位MM
///
///
public string posxmmR { get; set; }
/// 堆垛机当前层坐标
///
///
public string posymmR { get; set; }
/// 堆垛机当前货叉坐标
///
///
public string poszmmR { get; set; }
/// 值为1堆垛机取货完成
///
///
public string pickFinishR { get; set; }
/// 值为1堆垛机放货完成
///
///
public string deliveryFinishR { get; set; }
/// 值为1表示任务完成
///
///
public string taskFinishR { get; set; }
/// 报警代码
///
///
public string alarmNOR { get; set; }
/// 当前堆垛机任务状态
/// =0空闲
///=1取货定位中
///=2请求取货
///=3取货中
///=4取货完成放货定位中
///=5请求放货
///=6放货中
///=98维修
///=99报警
///
public string stateR { get; set; }
/// 堆垛机当前巷道
///
///
public string actualLaneR { get; set; }
/// 堆垛机当前任务号
///
///
public string tasknoR { get; set; }
public SrmDBli(int srmDeviceId = 0)
{
if (srmDeviceId<1||srmDeviceId >9) return;
int srmno = srmDeviceId;
handShakeW = "DB540.DBW0";
srmNOW = "DB540.DBW2";
palletTypeW = "DB540.DBW4";
sourcePosXW = "DB540.DBW6";
sourcePosYW = "DB540.DBW8";
sourcePosZW = "DB540.DBW10";
destinationPosXW = "DB540.DBW12";
destinationPosYW = "DB540.DBW14";
destinationPosZW = "DB540.DBW16";
commandW = "DB540.DBW18";
emergencyStopW = "DB540.DBW20";
alarmAckW = "DB540.DBW22";
taskFinishW = "DB540.DBW24";
Reserve2W = "DB540.DBW26";
Reserve3W = "DB540.DBW28";
stbW = "DB540.DBW30";
ackW = "DB540.DBW32";
taskNOW = "DB540.DBW34";
taskFather = "DB540.DBW26";
//----------------------------------------------------------------------------
handShakeR = "DB541.DBW0";
srmNOR = "DB541.DBW2";
modeR = "DB541.DBW4";
alarmISR = "DB541.DBW6";
liftFullR = "DB541.DBW8";
posXR = "DB541.DBW10";
posYR = "DB541.DBW12";
posZR = "DB541.DBW14";
posxmmR = "DB541.DBD16";
posymmR = "DB541.DBD20";
poszmmR = "DB541.DBD24";
pickFinishR = "DB541.DBW28";
deliveryFinishR = "DB541.DBW30";
taskFinishR = "DB541.DBW32";
alarmNOR = "DB541.DBW34";
stateR = "DB541.DBW36";
actualLaneR = "DB541.DBW38";
tasknoR = "DB541.DBW40";
}
}
}