using System; using System.Collections; using System.Collections.Generic; using System.Security.Policy; using System.Text; using System.Threading.Channels; using System.Threading; using System.Text.RegularExpressions; namespace Model.InterFaceModel { public class AgvCreateTaskModel { /// /// 任务类型 /// public string taskType { get; set; } = "PF-LMR-COMMON"; /// /// 执行步骤集合。本次任务机器人需要执行的关键路径,如货架起点 A 至出库工作台 B /// public List targetRoute { get; set; } /// /// 任务执行的初始优先顺序,数值越大,优先级越高。但机器人调度系统会根据任务繁忙程度,机器人的工作状态,以及其他优先级修正条件,进行综合判定后,实时动态调整任务实际的优先级数值。范围:1~120 /// public int initPriority { get; set; } /// /// 任务截止时间,任务优先级修正条件之一。截止时间之前需要任务执行完成, 超过时间后,系统会将任务单做出超时提示。格式:秒精度。 /// public string deadline { get; set; } /// /// 要求调度系统仅在当前指定的范围内选择机器人执行该任务。可能出现任务与机器人类型不匹配的异常,需要业务系统确保任务与机器人类型的匹配。如果不指定,则调度系统会在所有可用机器人的范围内寻找最优方案。 /// 固定枚举值: /// GROUPS机器人资源组编号 /// ROBOTS机器人编号 /// public string robotType { get; set; } /// /// 与 robotType 匹配的资源类型唯一标识。支持单个和多个编号。若写入多个编号时,之间用逗号隔开。 /// public string robotCode { get; set; } /// /// 能否打断, /// 1:可打断 /// 该货架中途有其他任务时,打断当前任务。 /// 0:不可打断 /// 该货架中途有其他任务时,不能打断当前任务。默认不可打断。 /// public int interrupt { get; set; } /// /// 外部任务唯一编号,如果为空,系统生成任务号并返回。 /// public string robotTaskCode { get; set; } /// /// 任务组编号,全局唯一 /// public string groupCode { get; set; } /// /// 自定义扩展字段,可随业务的差异而传入不同的扩展内容,在业务流程的执行中使用 /// public extra extra { get; set; } } /// /// 执行步骤集合。本次任务机器人需要执行的关键路径,如货架起点 A 至出库工作台 B /// public class targetRoute { /// /// 目标路径序列。从 0 开始。 /// public int seq { get; set; } /// /// 目标类型。可扩展枚举值。 /// 预制枚举值: /// ZONE目标所处区域编号 /// SITE站点别名 /// STORAGE仓位别名 /// MAT_LABEL物料标签 /// CARRIER载具编号 /// STACK巷道编号 /// STACK_LABEL巷道特征值 /// CHANNEL通道编号 /// EQPT 外部设备 /// PTL_WALL /// CTU 缓存架 /// CARRIER_TYPE载具类型 /// BIN_TYPE仓位类型 /// AREA_STATION区域工作台 /// PILE_COUNT一次搬几个 /// MIX_CONDITION条件组合 /// DEGREE 热度 /// MULTI_BIN_GROUP多深位组号 /// public string type { get; set; } /// /// 机器人到达目标位置后的操作。国标要求, /// 非必要。对 AMR 动作无影响。可扩展的枚举值。 /// 预制枚举值: /// COLLECT取货 /// DELIVERY送货 /// ROTATE旋转 /// public string code { get; set; } /// /// 要求调度系统仅在当前指定的范围内选择机器人执行该步骤。可能出现任务步骤与机器人类型不匹配的异常,需要业务系统确保任务与机器人类型的匹配。如果指定当前步骤的机器人选择范围,则调度系统无视任务中设定的机器人选择范围;如果任务中也没有指定机器人选择范围,则调度系统会在所有可用机器人的范围内寻找最优方案。 /// 固定枚举值: /// GROUPS机器人资源组编号 /// ROBOTS机器人编号 /// public string robotType { get; set; } /// /// 与 robotType 匹配的资源类型唯一标识。 /// public string robotCode { get; set; } /// /// 自定义扩展字段,可随业务的差异而传入不同的扩展内容,在业务流程的执行中使用 /// public extra extra { get; set; } } public class extra { /// /// 角度信息,包含角度类型与角度值。 /// public angleInfo angleInfo { get; set; } /// /// 载具的信息,包含载具编号、层号。 /// 使用场景: /// 1.装卸机或输送线专用 /// 2.载具与站点没有绑定,但需要传入载具的场景。 /// public List carrierInfo { get; set; } } public class angleInfo { /// /// 角度类型。可扩展枚举值。 /// 预制枚举值: ///绝对角度(与工作站的方向有关)ABSOLUTE /// public string type { get; set; } /// /// 与 type 对应的值 /// 角度值[0, 90, 180, -90, 360] /// public string code { get; set; } } public class carrierInfo { /// /// 载具类型 /// public string carrierType { get; set; } /// /// 载具编号 /// public string carrierCode { get; set; } /// /// 层号: 从 0 开始、从下往上编号 /// public int layer { get; set; } } /// /// 返回实体 /// public class ResponseAgvDto { /// /// 返回码 /// SUCCESS:成功 /// FAIL:失败 /// 是否必填:是 /// public string code { get; set; } /// /// 返回消息 /// 是否必填:是 /// public string message { get; set; } /// /// 返回的数据结构 /// 是否必填:否 /// public data data { get; set; } } public class data { public string robotTaskCode { get; set; } } public class TaskDetial { public string Taskno { get; set; } public string Startport { get; set; } public string Endport { get; set; } public string Pallno { get; set; } /// /// 任务类型 /// 0:申请储位 /// 1:叫桶 /// 2:同车间平层搬运 /// public string Crtype { get; set; } /// /// 车间编码 /// public string WareHouseNo { get; set; } } }