Skip to content

Repository files navigation

APS Engine V1.0

明道云外挂排产平台,为明道云 HAP 提供智能生产排程能力。

项目目标

作为明道云 HAP 的外挂插件,解决离散制造行业的生产排程问题:

  • 从明道云读取 MPS(主生产计划)、工序配置、资源日历等基础数据
  • 内置 9 种排程策略(含 GA 遗传算法)生成排产方案
  • 支持离散事件仿真验证方案鲁棒性
  • 排产结果写回明道云,指导日常生产
  • 提供数据看板:项目交付、进度甘特图、产线日清、产能利用率

后续规划(V2.0+): 明道云仅作为数据底座,需求录入、报工等功能逐步迁移到本平台。

流程图

flowchart TB
    subgraph 前端["🌐 前端界面"]
        UI[主页面<br/>排程 / 参数 / 结果]
        DASHBOARD[看板页面<br/>交付 / 甘特图 / 日清 / 产能]
        SETTINGS[设置页面<br/>HAP 凭证配置]
    end

    subgraph 服务端["⚙️ Express 服务端"]
        ROUTES[API 路由层]
        ENGINE[排程引擎核心]
        DB[(SQLite<br/>本地数据库)]
    end

    subgraph 引擎["🧠 排程引擎"]
        S9[9 种策略<br/>正向 / 逆向 / 瓶颈 /<br/>优先级 / 最小换线 /<br/>产能均衡 / 交付优先 /<br/>综合 / GA 遗传算法]
        CORE[schedulCore<br/>排产核心]
        SIM[discrete-sim<br/>离散事件仿真]
        COMP[comparer<br/>策略对比评分]
        GA[geneticStrategy<br/>GA 遗传优化]
    end

    subgraph 明道云["☁️ 明道云 HAP"]
        MPS[(MPS 主计划)]
        CAL[(资源日历)]
        PROC[(工序 / BOM)]
        REPORT[(报工数据)]
        RESULT[(排产结果)]
    end

    UI --> ROUTES
    DASHBOARD --> ROUTES
    SETTINGS --> ROUTES

    ROUTES --> ENGINE
    ROUTES --> DB

    ENGINE --> S9
    S9 --> CORE
    CORE --> COMP
    CORE --> SIM
    S9 --> GA
    GA --> CORE

    ENGINE -.->|hapClient<br/>读取基础数据| MPS
    ENGINE -.->|hapClient<br/>读取基础数据| CAL
    ENGINE -.->|hapClient<br/>读取基础数据| PROC
    ENGINE -.->|hapClient<br/>读取报工完成量| REPORT

    RESULT -.->|hapClient<br/>排产结果写回| ENGINE

    DB --> ENGINE
Loading

流程说明:

  1. 用户在前端选择排程策略和参数,发起排程请求
  2. 服务端通过 hapClient明道云 HAP 读取 MPS、资源日历、工序配置等数据
  3. 排程引擎按选中策略执行排产(支持串行工序,工序间隔 1 天)
  4. 可选执行离散事件仿真验证方案鲁棒性,或 GA 遗传算法搜索最优排序
  5. 策略对比模块对所有结果评分排序,推荐最优方案
  6. 用户确认方案后,排产结果写回明道云 HAP 的排产明细表
  7. 所有任务记录和同步状态持久化到本地 SQLite 数据库

项目进度

模块 状态
排程引擎(9 策略) ✅ 完成
离散事件仿真 ✅ 完成
GA 遗传算法 ✅ 完成
策略对比排序 ✅ 完成
明道云数据同步 ✅ 完成
排产结果上传 HAP ✅ 完成
资源日历自动生成 ✅ 完成
工单报工(回写 HAP) ✅ 完成
数据看板 ✅ 完成
前端界面(中文化) ✅ 完成
侧边栏折叠 ✅ 完成
Toast / 焦点 / 响应式 ✅ 完成

技术栈

技术
运行时 Node.js 18+
后端框架 Express 4
数据库 SQLite(sql.js,无外部依赖)
排程引擎 自研(src/engine/)
遗传算法 genetic-search
离散仿真 discrete-sim
前端 原生 HTML + CSS + JS
图表 Chart.js 4
数据源 明道云 HAP API V2

项目结构

aps-engine/
├── src/
│   ├── app.js               # 服务入口
│   ├── engine/               # 排程引擎
│   │   ├── scheduler.js      # 9 种排程策略 + 排产核心
│   │   ├── simulator.js      # 离散事件仿真
│   │   ├── geneticStrategy.js # GA 遗传算法
│   │   ├── comparer.js       # 策略对比排序
│   │   ├── hapClient.js      # 明道云 API 客户端
│   │   ├── hapReader.js      # 明道云数据读取
│   │   ├── db.js             # SQLite 本地数据库
│   │   └── sync.js           # 数据同步状态跟踪
│   ├── routes/               # API 路由
│   ├── data/                 # 数据模型
│   └── utils/                # 工具函数
├── public/                   # 前端页面(中文化)
│   ├── index.html            # 主页面(排程操作)
│   ├── dashboard.html        # 数据看板
│   ├── settings.html         # 明道云连接设置
│   ├── style.css             # 全局样式
│   ├── app.js                # 主页面逻辑
│   ├── dashboard.js          # 看板逻辑
│   └── dashboard.css         # 看板样式
├── .env                      # 环境配置
├── hap_config.json           # 明道云凭证
└── package.json

快速启动

# 1. 安装依赖(自动安装 sql.js 等所有包,无需额外安装数据库)
npm install

# 2. 确认 .env 文件存在(项目已自带,修改 HAP 凭证和端口即可)
#    .env 中 DB_PATH=./data/aps.db,数据库文件首次启动自动创建

# 3. 启动服务
npm start

#    启动后自动发生:
#    - SQLite 数据库初始化(data/aps.db 自动创建)
#    - 监听端口(默认 3006)
#    - 静态文件服务就绪

# 4. 访问
#    http://localhost:3006

# 开发模式(热重载)
npm run dev

使用注意事项

前置条件

  • 明道云 HAP 工作区已配置 高级生产计划 应用
  • 需在明道云「开放平台」获取 AppKey 和 Sign
  • 明道云中需已维护:MPS 计划、产线、工序、BOM、资源日历

运行依赖

依赖 说明
Node.js 18+ 唯一必须安装的运行时
SQLite 无需安装。通过 npm 包 sql.js 内嵌,首次启动自动创建 data/aps.db
外部数据库 无需 MySQL / PostgreSQL / SQL Server — 整个项目只有一个 .db 文件
Redis / MQ 无需 — 无中间件依赖
明道云 HAP 可选(启动不需要,排程功能需要) — 离线可启动,无法读取 MPS 数据

配置

  • 端口:.envPORT(默认 3006)
  • 明道云凭证:.envHAP_APP_KEY / HAP_SIGN / HAP_HOST
  • 支持在页面「设置」中动态修改 HAP 凭证,无需重启

项目优缺点

优点

优点 说明
零外部依赖 SQLite 本地数据库,无需额外部署数据库服务
部署简单 单 Node.js 进程,npm start 即可运行
策略丰富 9 种排程策略覆盖常见排产需求
GA 优化 内置遗传算法搜索最优 MPS 排序组合
仿真验证 离散事件仿真可验证方案在产能波动下的鲁棒性
轻量前端 原生 HTML/CSS/JS,不依赖 React/Vue 等框架
中文化界面 全中文界面,降低使用门槛
侧边栏可折叠 支持折叠为仅图标模式,节省屏幕空间

缺点 / 已知限制

限制 说明
仅支持串行工序 不支持并行工序、汇合工序、分支工序等复杂工艺拓扑。所有工序按顺序串行执行
默认工序流转时间 1 天 工序间默认间隔为 1 天(当天完成 → 次道工序次日开始)。不支持自定义工序间等待/运输时间
产能替代节拍 使用产线每日产能(件/天)进行排程,而非工序节拍时间(分钟/件)
无项目节拍差异化 同一产线同一工序对所有 MPS 项目使用相同的产能配置,不支持按产品类型设置不同的加工节拍
明道云强依赖 现阶段 MPS 录入、报工、基础数据维护仍需在明道云上完成
单机部署 不支持多节点集群部署
无用户认证 当前版本无登录/权限系统
内存数据库 使用 sql.js(SQLite WASM),数据全部加载到内存

改进路线(V2.0+)

  1. 支持工序节拍差异化,按产品类型设定独立加工时间
  2. 明道云仅作数据底座,需求录入、报工等功能迁移到本平台
  3. 支持并行工序与分支工序拓扑
  4. 支持自定义工序间流转时间
  5. 用户认证与权限管理
  6. 数据看板增强(实时推送、导出)

关键设计说明

  • 排程单位:天 — 所有排产计划按天粒度生成,最小时间单位为 1 天
  • 工序流转规则: 串行工序必须按顺序执行,前道工序在某天的产出,后道工序最早在第二天才能消耗
  • 日历机制: 支持工作日/休息日配置,排产时自动跳过非工作日
  • 产能机制: 使用每日产能(件/天)而非节拍时间。排程时会检查资源日历的可用产能总量,避免超负荷
  • 策略对比: 自动按完成率、换线次数、交期达成等指标对所有选中策略排序,推荐最优方案
  • 拖拽修改: 排产结果中可直接拖拽修改每日数量,修改后的方案可上传到明道云

About

明道云aps排产插件

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages