MES和AGV对接,核心就一句话:MES管业务逻辑,AGV只管跑腿,中间必须有个调度系统(RCS/WCS)做翻译和交通管制。千万别让MES直连AGV,后期维护会非常痛苦。
RCS/WCS:把业务指令转成车辆动作,负责多车调度、路径规划、避障、锁格。
有些小项目为了省事让MES直接调AGV的API,这种只适合单车、固定路线的玩具级场景。只要现场超过3台车、有交叉路口、有动态任务,就必须上RCS。否则死锁、撞车、任务丢失是迟早的事。
如果现场有立库或者复杂的仓储策略,那就再加一层WMS,MES→WMS→RCS→AGV。MES只管生产节拍,库存策略交给WMS。

首选RESTful API:JSON格式,轻量,调试方便。MES发任务用POST,查状态用GET。现在主流AGV厂商都支持。
高频心跳用TCP Socket或MQTT:车辆位置、电量、故障码这些秒级变化的数据,别用HTTP轮询,扛不住。用消息推送,RCS主动推给万界星空MES。
数据库中间表:老系统没API能力时的无奈之选。实时性差,容易锁表,能不用就不用。如果非要用,记得加索引、控制轮询频率、做好事务隔离。
MES下发任务至少包含:任务类型、源站点编码、目标站点编码、物料/托盘条码、优先级、业务单号。
RCS回传状态至少包含:任务ID、当前状态(待命/执行中/完成/失败/暂停)、当前位置、故障代码、完成时间戳。
MES里的工位代码和AGV地图里的站点ID往往不是一套命名规则。必须在RCS或中间件里维护一张映射表。上线前逐个核对,这是联调阶段最耗时间的坑,一个编码对不上,车就到不了位。
AGV堵车、没电、读码失败、目标位被占,这些是常态。接口设计时必须包含:
超时机制:任务下发后N分钟未接单或未到达,自动告警并允许MES取消重派。
失败反馈:RCS要返回明确的失败原因码,MES根据原因码决定是重试、降级还是转人工。
手动干预接口:提供强制取消、强制完成、重新分配的API,现场操作员不能每次都找开发改数据库。
AGV说“到了”不等于真的对了。关键工位必须加扫码枪或RFID门禁,实物校验通过后才算任务完成,MES才过账。不然送错料、送错位,后面工序全乱套,追溯都追不回来。
AGV跑无线,MES在有线网。跨网段通信要确保稳定。Wi-Fi覆盖要做热图测试,漫游切换延迟要低于业务容忍阈值。条件允许的话,在车间部署边缘节点做本地缓存,断网时RCS能继续调度已下发的任务,网络恢复后再同步MES。别指望现场Wi-Fi永远不掉线、别把MES当实时监控用
MES是业务系统,不是SCADA。车辆实时坐标、电池曲线这些数据,存到时序数据库或者RCS自己的历史库里就行,别往MES的业务库里写。MES只需要知道任务结果和关键节点状态。把MES数据库搞崩了,产线停摆的责任算谁的。
准备一套完整的异常测试用例:断网、急停、目标位占用、条码错误、任务取消。正常流程谁都会跑,异常处理才是验收重点。
MES、AGV、工艺三方一起评审接口文档和业务SOP。别等开发完了才发现业务流程本身就没跑通,那时候改接口成本翻倍。
说白了,MES和AGV联动,技术实现不难,难的是把现场的脏活累活、各种意外情况都想清楚,落到接口和流程里。代码好写,坑难填。


