using IMCS.DefaultList; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IMCS.Device { public class DeviceAGV { /*单例模式*/ public DeviceAGV() { } /// /// 当前任务编号 /// public string reqCode { get; set; } /*生成任务单*/ /// /// 生成任务订单 /// /// 任务类型 /// 起点坐标 /// 起点类型 /// 终点坐标 /// 终点类型 public AGVRequestDefaultList AGV_SendTask(string taskType, string startPosition, string startType, string endPosition, string endType) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = Guid.NewGuid().ToString().Substring(0, 30); reqCode = aGVRequestDefaultList.reqCode; aGVRequestDefaultList.taskTyp = taskType;// "F01"; aGVRequestDefaultList.positionCodePath = new List() { new DefaultList.AGVPositionCodePathList() { // positionCode="p001", type="02" positionCode=startPosition, type=startType }, new DefaultList.AGVPositionCodePathList(){ positionCode=endPosition, type=endType } }; //aGVRequestDefaultList.tokenCode = ""; //aGVRequestDefaultList.ctnrTyp = ""; //aGVRequestDefaultList.ctnrCode = ""; //aGVRequestDefaultList.wbCode = ""; //aGVRequestDefaultList.positionCodePath = new List() { new DefaultList.AGVPositionCodePathList() { positionCode="p001", type="02" } }; //aGVRequestDefaultList.podCode = ""; //aGVRequestDefaultList.podDir = ""; //aGVRequestDefaultList.podTyp = "-1"; //aGVRequestDefaultList.materialLot = ""; //aGVRequestDefaultList.priority = "1"; //aGVRequestDefaultList.agvCode = ""; //aGVRequestDefaultList.taskCode = ""; //aGVRequestDefaultList.data = ""; return aGVRequestDefaultList; } /* 继续执行任务*/ /// /// 继续执行任务 /// /// 继续执行的任务id public AGVRequestDefaultList AGV_ContinuTask(string reqCode) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = reqCode; return aGVRequestDefaultList; } /*取消任务*/ /// /// 取消任务 /// /// 需要取消的任务ID public AGVRequestDefaultList AGV_CancelTask(string reqCode) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = reqCode; return aGVRequestDefaultList; } /*任务执行通知*/ /// /// 任务执行通知 /// /// 当前任务编号 /// 当前位置编号 ///任务开始:该位置为任务起点 ///走出储位:该位置为任务起点 ///任务单取消:该位置为工作位编号 ///任务结束:该位置为任务终点 /// 方法名, 可使用任务类型做为方法 ///名由 RCS-2000 任务模板配置后并告知上层系统 ///默认使用方式: ///RCS-2000 接口协议 对外发布 ///start : 任务开始 ///outbin : 走出储位 ///end : 任务结束 ///cancel : 任务单取消 /// AGV 编号(同 agvCode /// public AGVRequestDefaultList AGV_agvCallback(string taskcode, string currentPositionCode, string method, string robotCode) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng(); aGVRequestDefaultList.reqTime = DateTime.Now.DateTimeToString(); aGVRequestDefaultList.currentPositionCode = currentPositionCode; aGVRequestDefaultList.method = method; aGVRequestDefaultList.robotCode = robotCode; aGVRequestDefaultList.taskCode = taskcode; return aGVRequestDefaultList; } /*任务优先级设置*/ /// /// 任务优先级设置 /// /// 当前需要设置优先级的任务id /// 当前任务优先级1-127 值越大,等级越高 /// public AGVRequestDefaultList AGV_setTaskPriority(string taskCode, string priority) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng(); aGVRequestDefaultList.priority = new List() { new AGVPrioritiesList() { taskCode = taskCode, priority = priority } }; return aGVRequestDefaultList; } /// /// 任务优先级设置 /// /// 当前所需调整优先级的列表 /// public AGVRequestDefaultList AGV_setTaskPriority(List priorities) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng(); aGVRequestDefaultList.priority = priorities; return aGVRequestDefaultList; } /*货架与位置绑定,解绑*/ /// /// 货架与位置绑定,解绑 /// /// 任务编号 /// 货架编号 /// 位置编号,地图位置的别名,能任 ///意命名(字母+数字),但要唯一,由 ///RCS-2000 界面配置。 /// 绑定或解绑 /// public AGVRequestDefaultList AGV_bindPodAndBerth(string reqCode, string podCode, string positionCode, bool agv_Enable) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = reqCode; aGVRequestDefaultList.podCode = podCode; aGVRequestDefaultList.positionCode = positionCode; aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString(); return aGVRequestDefaultList; } /// /// 货架与物料绑定、解绑 /// /// 任务编号 /// 货架编号 /// 物料批次 /// 绑定或解绑 /// public AGVRequestDefaultList AGV_bindPodAndMat(string reqCode, string podCode, string materialLot, bool agv_Enable) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = reqCode; aGVRequestDefaultList.podCode = podCode; aGVRequestDefaultList.materialLot = materialLot; aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString(); return aGVRequestDefaultList; } /*位置禁用与启用*/ /// /// /// /// 需要取消的任务ID /// 位置编号,地图位置别名, /// 是否启用 /// public AGVRequestDefaultList AGV_lockPosition(string reqCode, string positionCode, bool agv_Enable) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = reqCode; aGVRequestDefaultList.positionCode = positionCode; aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString(); return aGVRequestDefaultList; } /*地图位置信息同步*/ /*查询货架存储位与物料批次关系*/ /// /// 查询货架存储位与物料批次关系 /// /// public AGVRequestDefaultList AGV_queryPodBerthAndMat() { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng(); return aGVRequestDefaultList; } /*容器与仓位绑定,解绑*/ /// /// /// /// 容器类型 /// 是否启用,绑定为ture,解绑为false /// public AGVRequestDefaultList AGV_bindCtnrAndBin(string ctnrCode, bool agv_Enable) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng(); aGVRequestDefaultList.indBind = agv_Enable.BoolToInt().ToString(); return aGVRequestDefaultList; } /*查询任务状态*/ /// /// 查询任务状态 /// /// 需要查询的任务id /// public AGVRequestDefaultList AGV_queryTaskStatus(string reqCode) { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = reqCode; return aGVRequestDefaultList; } /*查询AGV状态*/ /// /// 查询AGV状态 /// /// public AGVRequestDefaultList AGV_queryAgvStatus() { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng(); return aGVRequestDefaultList; } /*停止AGV*/ public AGVRequestDefaultList AGV_stopRobot() { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng(); return aGVRequestDefaultList; } /*恢复AGV*/ public AGVRequestDefaultList AGV_resumeRobot() { IMCS.DefaultList.AGVRequestDefaultList aGVRequestDefaultList = new DefaultList.AGVRequestDefaultList(); aGVRequestDefaultList.reqCode = Guid.NewGuid().GuidLeng(); return aGVRequestDefaultList; } /*告警推送通知*/ /*绑定解绑通知*/ /**/ } }