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"; } } }