以下是针对机器人(含机器狗、AGV/AMR)乘梯系统中区分电梯前门(主操)和后门(副操)的梯控技术说明,结合功能实现、协议交互及系统设计要点:
协议选项及适用场景
| 协议 | 适用场景 | 实时性 | 推荐功能 |
|---|---|---|---|
| MQTT | 大规模机器人集群 | 高 | 状态订阅、实时监控 |
| HTTP | 简单请求/响应式交互 | 中 | 电梯呼叫、基础查询 |
| TCP | 高可靠性控制指令 | 高 | 关键命令传输 |
| RS485 | 老旧系统改造/低成本部署 | 低 | 基础状态反馈 |
lowchart TD A[机器人发送乘梯请求] --> B{判断目标门<br>是前门还是后门} B -- 前门 --> C1[向前门外呼控制器发指令] B -- 后门 --> C2[向后门外呼控制器发指令] C1 --> D[电梯响应召唤] C2 --> D D --> E[机器人实时查询状态<br>(电梯位置、门状态)] E --> F{电梯是否到达<br>且门开到位?} F -- 是 --> G[机器人进入轿厢] F -- 否 --> E G --> H[机器人发送目标楼层] H --> I[楼层扩展板点亮按钮] I --> J[电梯运行至目标层] J --> K[机器人确认安全后离开]
多奥梯控支持多种通信协议,机器人需根据部署场景选择合适方式:
| 协议类型 | 指令格式示例 | 状态查询方式 |
|---|---|---|
| Modbus RTU | 01 06 0001 000A 000B(目标楼层 10,后门) | 读取寄存器 0x0004(前门状态)、0x0005(后门状态) |
| Modbus TCP | 0001 0000 0006 01 06 0001 000A 000B(同上) | 读取保持寄存器 40004(前门状态)、40005(后门状态) |
| HTTP REST | POST /elevator/call,请求体:{"target_floor":10, "door_side":"back"} | GET /elevator/status,返回 JSON 格式状态 |
| MQTT | 发布到主题/elevator/command,消息体:{"cmd":"call", "floor":10, "door":"back"} | 订阅主题/elevator/status,接收实时状态更新 |
一、前门/后门区分与梯控指令设计
- 指令参数扩展
在召梯指令中增加 门位置标识字段(如door_type),支持front(前门)或back(后门)两种模式。例如:
json{
"front_door_status": "closed",
"back_door_status": "open"
}
梯控系统根据此字段控制电梯停靠对应门侧。{ "command": "call_elevator", "target_floor": -1, "door_type": "back", // 指定后门 "direction": "up" }
|
参数名称 |
取值范围 |
默认值 |
说明 |
|---|---|---|---|
|
door_hold_time |
10~120秒 |
30秒 |
门体开启保持时间 |
|
retry_interval |
500~2000ms |
1000ms |
命令重试间隔 |
|
max_retry_count |
1~5次 |
3次 |
最大重试次数 |
|
status_query_freq |
1~10Hz |
2Hz |
状态查询频率 |
- 门状态同步监控
机器人需实时获取 前/后门独立状态(开/关/故障),通过梯控系统返回的字段如:
json{
"command": "call_elevator",
"target_floor": -1,
"door_type": "back", // 指定后门
"direction": "up"
}
确保机器人仅在目标门完全开启时进入电梯。{ "front_door_status": "closed", "back_door_status": "open" }

// 机器人→梯控系统(HTTP POST示例)
{
"robot_id": "AGV-007",
"target_floor": 5,
"target_door": "rear", // 指定后门
"command_type": "call", // 呼叫类型:call(召梯)/ select(选层)
"timestamp": 1689900000
}
具体到每一步的通信细节如下:
机器人发送乘梯请求:机器人通过无线网络(如Wi-Fi、4G/5G或LoRa)向梯控系统发送请求。指令中必须明确指定目标门,例如 "call_type": "front_door"或 "call_type": "rear_door",并包含目标楼层信息
梯控系统响应与电梯调度:梯控主板解析指令,驱动相应的前门或后门外呼控制器动作。系统会返回一个确认回码(如 {"status": "success", "command_id": "12345"})。若机器人1秒内未收到回码,会按您设定的规则重发,最多3次
状态查询与安全进入:机器人可每秒查询一次电梯状态(如 get_elevator_status),直至确认电梯已到达且指定门(前门或后门)完全开启,才会安全进入
选层与运行:机器人进入轿厢后,发送内呼指令(如 {"target_floor": "10"})。梯控系统通过楼层扩展板点亮对应楼层按钮。电梯开始运行
到达与离开:机器人持续查询状态,到达目标层且门开到位后,机器人离开。您提到的“关门指令”实质是松开开门按钮的信号(如 door_release),告知电梯可自行决定关门时机,而非强制关门,这是重要的安全设计

sequenceDiagram
participant R as 机器狗
participant C as 梯控主机
participant E as 电梯系统
R->>C: 发送前门召梯指令(DAIC-TK-WH-FRONT)
C->>E: 通过无源干接点模拟前门外呼按钮
Note over C,E: 电梯响应召唤
E-->>C: 实时状态反馈(平层/开关门/上下行)
C->>R: 返回确认码及前门开关状态
R->>C: 进梯确认及目标楼层指令
C->>E: 通过无源干接点模拟轿厢内选层按钮
E-->>C: 运行中状态更新
C->>R: 实时播报楼层变化
二、超时重试与通信容错机制
- 指令发送与响应验证
- 机器人发送召梯指令后,若 1秒内未收到梯控返回码,触发重试(最多3次)。
- 若连续3次无响应,标记电梯为“不可用”并切换备用电梯(如存在)。
sequenceDiagram participant R as 机器人(AMR/AGV) participant E as 多奥梯控系统 R->>E: 发送后门呼叫命令 {“command”: “call_elevator”, “floor”: -1, “door_id”: “rear”} E-->>R: 返回ACK码(如:{“code”: 200, “msg”: “command_received”}) alt 电梯在-1楼 E->>E: 直接开后门 else 电梯不在-1楼 E->>E: 调度电梯至-1楼后开门 end loop 开门保持期 R->>E: 每20秒重发开门命令(防超时) E-->>R: 返回状态码 + 门状态(如:{“door_status”: “open”}) end R->>E: 机器人进入轿厢后发送停止开门命令
- 通信协议选择
协议类型 适用场景 特点 Modbus TCP 工业自动化环境 高可靠性,支持寄存器映射(如保持寄存器存储电梯状态) MQTT 物联网/云端集成 异步通信,支持QoS 1/2保障消息可靠传输 HTTP API 跨平台系统对接 易于调试,支持JSON格式交互 RS-485 无网络环境或长距离传输 抗干扰强,需配合Modbus RTU协议
# 机器人调度系统→梯控系统(MQTT订阅主题)
topic: elevator/status/<elevator_id>
payload:
{
"floor": 3, // 当前楼层
"direction": "up", // 运行方向
"door_front": "closed", // 前门状态(open/closed)
"door_rear": "open", // 后门状态
"error_code": "0x00" // 故障码(0x00为正常)
}

核心通信协议与技术栈
| 功能 | 通信协议 | 数据格式 | 应用场景 |
|---|---|---|---|
| 机器人乘梯请求 | MQTT/HTTP | JSON | 云端调度指令下发 |
| 电梯状态实时查询 | MQTT | JSON(Pub/Sub) | 运行状态主动推送 |
| 梯控硬件控制指令 | Modbus RTU | 功能码+寄存器地址 | 开关门/楼层选择 |
| 故障码传输 | RS485 | 十六进制报文 | 传感器与主控板通信 |
| 系统级对接(调度平台) | TCP/HTTP API | RESTful | 多电梯集群管理 |
graph LR
A[机器人调度中心] -- HTTP API --> B(云端控制平台)
B -- MQTT --> C[梯控主机1]
B -- MQTT --> D[梯控主机2]
C -- RS485 --> E[前门控制器]
C -- RS485 --> F[后门控制器]
E --> G[楼层传感器]
F --> H[门继电器]

{
"cmd": "call_elevator",
"elevator_id": "EL-01",
"floor": -1,
"door": "rear",
"timestamp": 1730000000
}
三、电梯状态监控与动态调度
- 实时状态查询字段
机器人通过梯控系统获取以下数据(更新频率建议200ms~1s):- 电梯当前楼层(
current_floor) - 前/后门状态(
front_door_status/back_door_status) - 运行方向(
direction:上行/下行/停止) - 故障代码(
fault_code)。
- 电梯当前楼层(
返回码机制:
| 状态码 | 含义 | 处理建议 |
|---|---|---|
| 200 | 成功受理 | 等待电梯到达 |
| 400 | 参数错误(如门标识无效) | 检查target_door字段 |
| 503 | 电梯忙(无空闲梯) | 重试或调度备用梯 |
| 550 | 目标门故障 | 切换门或人工干预 |
- 动态调度逻辑
- 多电梯场景:调度系统根据前/后门使用率分配电梯(如后门优先响应-1楼任务)。
- 人机混用场景:通过权限管理模块屏蔽人工外呼按钮,确保机器人专用模式。
四、项目配置与部署建议
- 硬件兼容性
- 梯控系统需支持 无源干接点接入(如多奥DAIC系列),避免改造电梯电路。
- 前/后门传感器推荐光电开关(精度±1mm)或U感技术,确保门状态检测可靠。
- 软件集成要点
- API开发:调用多奥SDK实现召梯、状态查询等接口(支持C++/Python)。
- 异常处理:
- 电梯未开门时触发重试逻辑;
- 机器人卡在电梯口时暂停任务并报警。
# Python示例(伪代码)
from doortec_sdk import ElevatorController
controller = ElevatorController(ip="192.168.1.100", protocol="MQTT")
controller.call_elevator(robot_id="AGV-007", floor=5, door="rear")
- 部署优化
- 信号覆盖:电梯井道内加装Wi-Fi中继器或4G路由器,解决信号盲区。
- 双网冗余:有线(RS-485)+无线(4G)双通道保障通信稳定性。
|
命令类型 |
功能描述 |
响应码 |
备注 |
|---|---|---|---|
|
call_elevator |
请求电梯到达目标楼层 |
0x00 |
成功 |
|
0x01 |
电梯忙 | ||
|
query_status |
查询电梯状态 |
0x00 |
成功 |
|
release_door |
释放开门按钮 |
0x00 |
成功 |
|
force_open |
紧急开门(仅维护模式) |
0x00 |
需权限验证 |
五、典型场景示例
场景:机器人在-1楼后门呼叫电梯上楼
- 机器人发送指令:
{"command": "call_elevator", "target_floor": -1, "door_type": "back"}。 - 梯控响应:调度电梯至-1楼后门并开门(保持30秒,可延长)。
- 机器人检测到后门开启后驶入,发送内呼指令至目标楼层。
- 到达目标楼层后,机器人发送关门指令(梯控仅松开开门按钮,由电梯逻辑决定实际关门)。
六、技术挑战与解决方案
| 挑战 | 解决方案 |
|---|---|
| 前后门状态误判 | 采用双传感器冗余(如光电+U感) |
| 通信中断导致任务中断 | 本地缓存任务指令,断网后持续工作≥2小时 |
| 多品牌电梯协议兼容性 | 无侵入式硬件适配(如多奥DAIC-TK-WH支持主流电梯品牌) |

必选功能接口
| 功能 | 请求示例(JSON) | 返回字段说明 |
|---|---|---|
| 电梯呼叫 | {"cmd": "call", "floor": -1, "door": "rear"} | code(状态码), elevator_id(电梯编号) |
| 实时状态查询 | {"cmd": "query_status", "elevator_id": "E01"} | current_floor, door_status(open/closed), direction(up/down/idle) |
| 开门保持延长 | {"cmd": "hold_door", "door": "front", "duration": 30} | remaining_time(剩余开门时间) |
通过上述设计,可实现机器人对电梯前/后门的精准控制与高效调度,适用于医院、工厂、写字楼等多场景。实际部署时需结合多奥梯控SDK文档及电梯厂商协议进行定制开发。
机器人乘梯前后门控制方案



被折叠的 条评论
为什么被折叠?



