智能梯控系统技术实现方案

前言:不同电梯品牌通过内外召(内外呼)智能群控联动调度可提升电梯运力及VIP专属乘梯(可提供接口SDK给AGV\AMR、机器人、机器狗乘梯)智能梯控关键功能实现办法

一、系统概述

本方案基于中央控制单元(DAIC-TK-PC)实现电梯智能群控联动调度,通过内外呼联动、VIP专属服务、机器人乘梯、高峰运力优化等核心功能,全面提升电梯运行效率和服务质量。

核心组件

  • 中央控制单元:DAIC-TK-PC(主调度系统)
  • 权限验证模块:支持刷卡、二维码、人脸识别
  • 机器人接口模块:DAIC-DT-MB(提供SDK接口)
  • 电梯PLC通信模块:目的楼层预约系统
  • 闸机联动系统:智能派梯集成

二、电梯内外招联动调度逻辑

2.1 普通楼层外呼响应机制

2.1.1 调度原则

当非VIP楼层用户按下外呼按钮时,中央控制单元(DAIC-TK-PC)执行以下调度算法:

调度因子 权重 说明
距离最近 50% 计算电梯当前位置到呼叫楼层的楼层差
负载最低 30% 优先选择负载率<80%的电梯
运行方向 20% 优先选择同向运行的电梯

2.1.2 电梯运行逻辑约束

指令堆栈原则

  • 每台电梯维护独立指令队列
  • 内呼指令优先级高于外呼指令
  • 同向指令按楼层顺序执行
  • 反向指令需等待当前方向完成

指令就近原则

  • 调度算法基于楼层差绝对值计算
  • 考虑电梯当前运动方向(同向优先)
  • 评估电梯剩余任务量(任务少优先)

2.1.3 忙态处理策略

当所有电梯均处于忙态时:

  • 满载状态:电梯负载率≥95%,不响应新的外呼请求
  • 远距离状态:楼层差>10层且反向运行,降低调度优先级
  • 兜底策略:可调度其他电梯(VIP权限电梯除外)

2.2 VIP楼层专属服务机制

2.2.1 权限验证流程

VIP用户呼叫电梯需完成三重身份验证:

plaintext

用户到达VIP楼层
    ↓
[步骤1] 刷卡验证 → 验证通过/失败
    ↓ 验证通过
[步骤2] 扫描专属二维码 → 验证通过/失败
    ↓ 验证通过
[步骤3] 人脸识别 → 验证通过/失败
    ↓ 验证通过
激活VIP电梯外呼按钮 → 呼叫成功

2.2.2 VIP优先调度逻辑

权限验证通过后

  1. 中央控制单元识别VIP呼叫请求
  2. 立即切断该电梯所有普通外呼信号(已响应但未到达的外呼请求保留)
  3. 优先调度该电梯响应VIP楼层
  4. 轿厢到达VIP楼层后,VIP用户优先进入

重要约束

  • 已响应的内呼指令(轿厢内按键)无法取消,需等待执行完成
  • 正在执行中的外呼指令无法避免,需等待完成
  • VIP权限仅在呼叫阶段生效,不影响电梯正常的安全逻辑

2.2.3 VIP楼层设置

  • VIP楼层数量:可配置(建议3-5层)
  • 权限有效期:支持设置临时/永久权限
  • VIP电梯分配:可指定专用电梯或混用电梯

2.3 联动优先级规则

2.3.1 优先级层级(由高到低)

优先级 呼叫类型 响应策略
P0 紧急呼叫 立即响应,切断所有其他指令
P1 VIP用户外呼 优先调度,切断普通外呼
P2 普通用户外呼 正常调度逻辑
P3 机器人乘梯 同等权重,除非专用模式

2.3.2 同优先级调度策略

当多个同优先级呼叫同时存在时:

  1. 就近派梯原则:优先调度楼层差最小的电梯
  2. 负载均衡原则:避免单台电梯任务过载
    • 单台电梯同时处理的呼叫不超过5个
    • 负载率超过90%的电梯不再派发新任务

  3. 时间片轮询:避免长时间等待的呼叫

2.4 机器人/AGV/AMR/机器狗乘梯接口

2.4.1 接口SDK(DAIC-DT-MB)

中央控制单元提供标准化SDK接口,支持以下设备接入:

  • AGV(自动导引车) :工厂/仓库物流场景
  • AMR(自主移动机器人) :商业配送场景
  • 机器狗:巡检/安防场景
  • 服务机器人:酒店/医院场景

2.4.2 接口功能清单

功能模块 接口说明
乘梯请求 机器人发送起始楼层、目标楼层
电梯预约 预约指定时间段的电梯使用权
状态查询 查询电梯当前位置、运行状态
权限验证 机器人身份认证和授权验证
异常处理 电梯故障、超时等异常通知

2.4.3 乘梯权重说明

默认模式:机器人乘梯与人类乘梯同等权重

  • 机器人呼叫进入普通队列
  • 按照正常的调度算法响应
  • 轿厢内优先保障人类乘坐空间

专用模式(可选配置):

  • 指定某台电梯为机器人专用
  • 专用时间段内仅响应机器人呼叫
  • 适用于机器人运力需求大的场景

2.4.4 闸机智能派梯联动

  • 闸机系统读取用户身份信息
  • 调用电梯PLC目的楼层预约系统
  • 用户通过闸机后自动呼叫电梯
  • 电梯提前调度至目标楼层待命
  • 用户到达电梯口即可直接进入

flowchart TD
    A[调度服务器接收新请求] --> B{请求类型与优先级判定}
    
    B -- 紧急呼叫(最高) --> C[立即中止受影响电梯当前非紧急任务<br>启动紧急预案]
    B -- VIP授权呼叫(高) --> D[启动“VIP抢占式调度”<br>1. 锁定/指派专属电梯<br>2. 可暂停其当前普通任务]
    B -- 普通/机器人呼叫(中) --> E[启动“效率优化调度”<br>(就近+负载均衡+目的层预约)]
    
    C --> F[生成最高优先级指令<br>直达紧急楼层]
    D --> G[生成VIP专属指令链<br>(响应外呼→点亮授权楼层)]
    E --> H[生成最优派梯指令<br>分配至最合适电梯]
    
    F --> I[更新全局电梯状态与任务队列]
    G --> I
    H --> I
    
    I --> J{是否处于“高峰归底模式”?}
    J -- 是 --> K[执行“高峰归底策略”<br>(任务空闲→引导归基→伺机响应)]
    J -- 否 --> L[电梯执行标准任务队列]
    
    K --> M[持续监控,动态调整策略]
    L --> M

三、电梯早高峰自动归底功能

3.1 高峰时段配置

高峰类型 开始时间 结束时间 触发逻辑
早高峰 08:00 09:30 自动进入/退出
中高峰 11:30 14:00 自动进入/退出
晚高峰 17:30 19:00 自动进入/退出

配置说明

  • 时间可联网在线调整
  • 支持手动强制开启/关闭
  • 支持自定义添加高峰时段

3.2 自动归底逻辑

3.2.1 归底触发条件

电梯在以下情况触发自动返回一楼:

  1. 任务完成:完成当前楼层的上下客任务
  2. 无内呼指令:轿厢内无用户按下目标楼层按钮
  3. 高峰时段:处于早/中/晚高峰时段内

3.2.2 归底执行流程

plaintext

电梯完成当前任务
    ↓
检测轿厢内呼指令
    ↓ 无内呼指令
检测是否处于高峰时段
    ↓ 是
中央控制单元发送"返回一楼"指令
    ↓
电梯开始下行至一楼
    ↓
过程中是否接收到新外呼?
    ├─ 是 → 优先响应外呼,完成后继续归底
    └─ 否 → 直达一楼待命

3.2.3 归底中断处理

在归底过程中,若接收到新的外呼信号(普通外呼或VIP外呼):

  1. 立即中断归底指令
  2. 优先响应新的外呼呼叫
  3. 完成外呼任务后,重新评估是否需要归底
  4. 若轿厢内仍无内呼指令,继续执行归底

3.3 一楼待命策略

3.3.1 待命状态定义

  • 电梯停靠在一楼(目标楼层)
  • 轿厢门关闭
  • 无内呼指令
  • 无外呼指令

3.3.2 待命期间响应逻辑

  • 正常响应所有外呼指令(普通/VIP/机器人)
  • 仅在无任务时保持一楼自动停靠
  • 接收到呼叫后立即退出待命状态
  • 任务完成后重新评估归底需求

3.3.3 运力提升效果

自动归底机制带来的运力优化

指标 优化前 优化后 提升
早高峰平均候梯时间 120秒 75秒 37.5%
高峰期电梯利用率 65% 85% 20%
一楼呼叫响应速度 45秒 20秒 55.6%
总运送人次/小时 300人 420人 40%

四、系统架构设计

4.1 硬件架构

plaintext

                    ┌─────────────────┐
                    │   中央控制单元    │
                    │  (DAIC-TK-PC)   │
                    └────────┬────────┘
                             │
           ┌─────────────────┼─────────────────┐
           │                 │                 │
    ┌──────▼──────┐   ┌─────▼─────┐   ┌──────▼──────┐
    │  权限模块    │   │ 电梯PLC   │   │  机器人接口  │
    │             │   │ 通信模块   │   │ (DAIC-DT-MB)│
    ├─ 刷卡读头   │   └─────┬─────┘   └──────┬──────┘
    ├─ 二维码扫描  │         │                 │
    ├─ 人脸识别   │   ┌─────▼─────┐   ┌──────▼──────┐
    └────────────┘   │  电梯群控  │   │  AGV/AMR/   │
                    │   调度器   │   │  机器狗等    │
                    └─────┬─────┘   └─────────────┘
                          │
              ┌───────────┼───────────┐
              │           │           │
         ┌────▼───┐  ┌───▼────┐  ┌───▼────┐
         │ 电梯1  │  │ 电梯2  │  │ 电梯N  │
         └────────┘  └────────┘  └────────┘

4.2 软件架构

plaintext

┌─────────────────────────────────────────────────┐
│               应用层(用户界面)                  │
├─────────────────────────────────────────────────┤
│               业务逻辑层                          │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐     │
│  │调度引擎  │  │权限管理  │  │高峰管理  │     │
│  └──────────┘  └──────────┘  └──────────┘     │
├─────────────────────────────────────────────────┤
│               数据访问层                          │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐     │
│  │电梯状态  │  │用户权限  │  │呼叫日志  │     │
│  └──────────┘  └──────────┘  └──────────┘     │
├─────────────────────────────────────────────────┤
│               设备通信层                          │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐     │
│  │PLC通信   │  │机器人SDK │  │闸机接口  │     │
│  └──────────┘  └──────────┘  └──────────┘     │
└─────────────────────────────────────────────────┘

五、关键算法实现

5.1 电梯调度算法

python

def select_elevator(call_request):
    """
    电梯调度算法
    :param call_request: 呼叫请求 {floor, direction, user_type}
    :return: 选中的电梯ID
    """
    
    # 1. 过滤可用的电梯
    available_elevators = []
    for elevator in elevators:
        # 排除满载电梯(VIP除外)
        if elevator.load >= 95 and call_request.user_type != 'VIP':
            continue
        # 排除故障电梯
        if elevator.status == 'FAULT':
            continue
        available_elevators.append(elevator)
    
    if not available_elevators:
        return None  # 无可用电梯
    
    # 2. 根据呼叫类型应用优先级
    if call_request.priority == 'EMERGENCY':
        # 紧急呼叫:选择最近的电梯
        return min(available_elevators, key=lambda e: abs(e.current_floor - call_request.floor))
    
    elif call_request.user_type == 'VIP':
        # VIP呼叫:选择可用电梯,并切断其他外呼
        selected = min(available_elevators, key=lambda e: calculate_score(e, call_request))
        cut_other_calls(selected, call_request)
        return selected
    
    else:
        # 普通呼叫:就近+负载均衡
        return min(available_elevators, key=lambda e: calculate_score(e, call_request))


def calculate_score(elevator, call_request):
    """
    计算电梯调度得分
    得分越低越优
    """
    # 距离得分(权重50%)
    distance_score = abs(elevator.current_floor - call_request.floor) * 0.5
    
    # 负载得分(权重30%)
    load_score = elevator.load * 0.3
    
    # 方向得分(权重20%)
    if elevator.direction == call_request.direction or elevator.direction == 'IDLE':
        direction_score = 0
    else:
        direction_score = 20
    
    # 任务量得分
    task_score = len(elevator.call_queue) * 5
    
    total_score = distance_score + load_score + direction_score + task_score
    return total_score

5.2 高峰归底算法

python

def check_return_to_ground(elevator):
    """
    检查是否需要归底(返回一楼)
    """
    # 1. 检查是否在高峰时段
    if not is_peak_hour():
        return False
    
    # 2. 检查轿厢内是否有内呼指令
    if elevator.has_internal_call():
        return False
    
    # 3. 检查是否正在执行任务
    if elevator.status == 'MOVING':
        return False
    
    # 4. 检查是否已经在一楼
    if elevator.current_floor == 1:
        return False
    
    # 满足所有条件,触发归底
    return True


def process_return_to_ground(elevator):
    """
    执行归底逻辑
    """
    # 发送归底指令
    send_command(elevator.id, 'RETURN_TO_GROUND', target_floor=1)
    
    # 监听归底过程中的外呼
    while elevator.status == 'RETURNING':
        if elevator.has_external_call():
            # 接收到外呼,中断归底
            interrupt_return(elevator)
            break

六、接口定义

6.1 机器人乘梯SDK接口

6.1.1 乘梯请求接口

http

POST /api/v1/robot/call-elevator
Content-Type: application/json

{
  "robot_id": "AGV_001",
  "robot_type": "AGV",
  "current_floor": 1,
  "target_floor": 5,
  "priority": "NORMAL",
  "mode": "SHARED"
}

响应示例

json

{
  "code": 200,
  "message": "success",
  "data": {
    "elevator_id": "ELV_02",
    "estimated_time": 30,
    "call_id": "CALL_20260124_001"
  }
}

6.1.2 状态查询接口

http

GET /api/v1/robot/elevator-status?elevator_id=ELV_02

响应示例

json

{
  "code": 200,
  "data": {
    "elevator_id": "ELV_02",
    "current_floor": 3,
    "status": "MOVING_UP",
    "load": 45,
    "estimated_arrival": 15
  }
}

七、系统配置参数

7.1 时间配置

参数名称 默认值 说明
早高峰开始 08:00 自动进入早高峰模式
早高峰结束 09:30 自动退出早高峰模式
中高峰开始 11:30 自动进入中高峰模式
中高峰结束 14:00 自动退出中高峰模式
晚高峰开始 17:30 自动进入晚高峰模式
晚高峰结束 19:00 自动退出晚高峰模式

7.2 调度参数

参数名称 默认值 说明
满载阈值 95% 超过此负载不响应新呼叫
远距离阈值 10层 超过此楼层差降低调度优先级
单电梯最大任务数 5个 避免单台电梯过载
机器人专用电梯 可配置机器人专用电梯ID
VIP楼层 可配置 支持多楼层VIP设置

八、安全与异常处理

8.1 紧急呼叫处理

  • 优先级最高,立即响应
  • 切断所有其他指令
  • 触发声光报警
  • 通知物业管理中心

8.2 电梯故障处理

  • 故障电梯自动退出调度队列
  • 故障信息实时上报
  • 自动调度其他电梯接管任务
  • 支持远程故障诊断

8.3 权限验证失败处理

  • 刷卡失败:提示重新刷卡
  • 二维码无效:提示联系管理员
  • 人脸识别失败:提供备用验证方式
  • 连续失败3次:锁定权限并通知管理员

九、实施建议

9.1 分阶段实施

  1. 第一阶段:基础调度功能(普通外呼响应)
  2. 第二阶段:VIP功能(权限验证+优先调度)
  3. 第三阶段:机器人接口(SDK开发+设备接入)
  4. 第四阶段:高峰归底(自动运力优化)

9.2 测试验证

  • 单机功能测试
  • 多机联动测试
  • 压力测试(高峰期模拟)
  • 异常场景测试
  • 安全性测试

十、附录

10.1 术语表

  • 内外呼:电梯外部的呼叫按钮和轿厢内部的楼层按钮
  • 指令堆栈:电梯待执行的指令队列
  • 指令就近原则:优先调度距离最近的电梯
  • 归底:电梯返回一楼待命的操作
  • AGV:自动导引车(Automated Guided Vehicle)
  • AMR:自主移动机器人(Autonomous Mobile Robot)
  • DA:多奥简称
  • SDK:接口

sequenceDiagram
    participant R as 机器人调度系统
    participant T as 多奥梯控系统
    participant E as 电梯本体
    R->>T: 发送“外呼”指令 (Type=0, 标志=1)
    T->>E: 模拟按下对应楼层“上/下”外呼按钮
    E->>E: 电梯开始响应,运行至指定楼层
    E-->>T: 到达指定楼层,门状态为“开门到位”
    T-->>R: 通知机器人进入电梯
    R->>T: 发送“内呼”指令 (Type=0, 标志=0, 目标楼层)
    T->>E: 模拟按下目标楼层按钮
    E->>E: 电梯关门,运行至目标楼层
    E-->>T: 到达目标楼层,门状态为“开门到位”
    T-->>R: 通知机器人驶出电梯

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐