多车调度系统上位机
·
多车调度系统上位机的核心,就是做一个“车队大脑 + 交通警察 + 业务接口”:
- 上面接 MES/WMS/ERP,下面接各 AGV 单车上位机,
- 左边管任务(谁干、何时干),右边管交通(谁先走、避撞、防死锁),
- 再加上地图/模型、监控诊断、配置运维这几块支撑。
一、整体架构一图看懂
推荐一个5 层 + 2 侧的架构,和单车那套对得上,只是重心从“单车控制”变成“多车调度与交通”:

二、各层职责 & 关键点
1. 地图与模型层(L1)
- 地图 / 拓扑
- 二维码/激光/SLAM 地图抽象成拓扑图:节点(站点、充电点、待命点)+ 边(路径段、单向/双向、限速、区域)
- 支持多地图(车间、楼层、区域),方便分区调度。
- 车型 / 充电 / 区域模型
- 不同 AGV 类型(载重、速度、顶升/牵引)
- 充电策略:低电自动回充、充电站占用规则
- 区域划分:普通区、限速区、禁行区、门禁区、对头禁止区等
- 参数配置
- 调度参数:优先级规则、任务超时、重试策略
- 交通参数:区域容量、锁定策略、死锁检测阈值
2. 单车代理层(L2)
- 每台 AGV 在调度侧有一个代理(Agent),负责:
- 维护本车状态:位置、速度、电量、故障、任务进度等
- 下发/取消路径段、任务指令(目标点 + 操作)
- 上报心跳、位置、传感器事件(避障、急停等)
- 好处:
- 对上层屏蔽不同品牌/协议差异,统一“AGV 代理接口”
- 便于做模拟/仿真:用假 AGV 代理测调度算法。
3. 通信与状态层(L3)
- 通信管理
- 与 AGV 代理的通信:MQTT / WebSocket / 自定义 TCP / DDS 等
- 与 MES/WMS:REST / OPC UA / MQTT / Web
- 与现场设备:Modbus / PLC / IO 模块(联动门、输送线)
- 实时状态 / 位置
- 维护全场 AGV 位置(站点 / 坐标)、路径占用、区域锁定
- 常用 Redis / 内存数据库做位置索引,支持快速区域查询
- 日志 / 报警 / OTA
- 任务日志、状态变更、报警记录
- 远程升级、参数下发电台。
4. 调度与决策层(L4)—— 核心
这一层就是“多车调度系统上位机”的大脑,一般分为三大模块:任务、车辆、路径/交通。
4.1 任务管理(TM)
- 功能:
- 接收 MES/WMS 订单,拆成 AGV 任务(搬运/充电/移库)
- 任务队列:优先级、FIFO、插队、挂起、取消
- 任务状态机:Created → Queued → Assigned → Running → Finished / Failed
- 关键设计:
- 任务 ID + 优先级 + 截止时间 + 起始/目标工位 + 关联订单号
- 支持任务模板(常见搬运流程),减少上层传参复杂度。
4.2 车辆管理(VM)
- 功能:
- 维护所有 AGV 的状态模型:空闲/忙碌/故障/充电/离线
- 根据任务 + 车辆状态做匹配:选哪台车、何时去、是否需要先充电
- 充电调度:低电→回充,高电→接任务,避免“全跑光没人充电”
- 选车策略(常见):
- 最近优先(距离/时间最短)
- 电量优先(保证续航)
- 均衡利用率(避免有的车累死,有的车闲着)
- 指定车辆(某些任务必须特定 AGV 执行)
4.3 路径与交通管理(PM)
- 路径规划
- 基于拓扑图做全局路径:Dijkstra / A*,边权重可以是距离 + 时间 + 拥堵度
- 支持动态重规划:AGV 故障/路堵时自动换路。
- 交通管制 / 避撞 / 防死锁
- 区域锁定:AGV 进入某区域时锁定,其他车等待
- 交叉路口 / 对头禁行区域:按优先级或先到先过
- 死锁检测与恢复:发现环形等待时,调整路径或让某台车退让
- 常见策略:
- 基于时间窗/资源预留(IDRR 等):给 AGV 预约“路段 + 时间窗”,避免冲突
- 优先级 + 避让点:高优先级任务优先通行,其他车在避让点等
5. 业务与接口层(L5)
- MES/WMS/ERP 接口
- 任务下达 / 修改 / 取消
- 任务执行结果回报
- AGV 状态 / 任务状态查询
- 监控 UI / 大屏
- 实时地图 + AGV 位置 + 路径 + 任务状态
- 报警、KPI(利用率、任务完成率、平均响应时间等)
- 仿真 / 回放
- 用历史数据回放运行情况,验证调度策略
- 新算法先在仿真环境跑,再上现网。
6. 横切:安全与运维(Side)
- 安全策略 / 权限
- 急停联动:调度层急停 → 所有 AGV 停车,并标记任务异常
- 区域安全:人车混行区限速、禁行;门禁联动
- 操作权限:谁可以手动改任务、谁可以远程控车
- 备份 / 归档 / 升级
- 地图/配置/任务日志归档,支持回溯
- 调度服务主备/集群,避免单点故障
- 灰度升级调度服务,先在部分 AGV 代理上验证。
三、集中式 vs 分布式调度怎么选?
| 架构 | 特点 | 适用场景 |
|---|---|---|
| 集中式调度 | 一个调度器全局决策,简单易实现,但单点风险、扩展性有限csdn.net+1 | AGV 数量 < 50,任务复杂度一般 |
| 分布式调度 | 按区域/车间划分多个调度器,协调跨区任务,扩展性好,但协调复杂csdn.net | 大规模(50~200+)、多车间、多品牌混合 |
| 混合式 | 区域自治 + 中心协调,现实中最常见 | 中大型项目 |
工程上建议:从小规模集中式起步,预留分布式扩展能力(按区域划分调度实例,中心负责跨区协调)。
四、典型技术栈参考
很多成熟 RCS 采用类似组合:
- 后端:Java / SpringBoot + MySQL + Redis
- 前端:Vue / React + 大屏可视化
- 通信:MQTT(车端) + REST(MES/WMS) + WebSocket(实时推送)
- 实时位置与拥堵:Redis GEO / 内存网格
- 消息队列:Kafka / RabbitMQ 做任务/事件流,压测表明可显著降低延迟
五、和“单车上位机”的边界
- 单车上位机:
- 负责“我怎么去”:局部避障、轨迹跟踪、实时安全逻辑;
- 多车调度上位机:
- 负责“谁去、何时去、走哪条大路线、怎么避让”,
- 把“路径段 + 目标点 + 操作”下发给单车,单车再自己做局部跟踪和避障。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)