Repository navigation
Interface Walkthrough zh CN
下载完整练习包(SQL、字段清单、Python脚本、数据库及CSV)
本案例用冲压、装配两道工序,把时间、需求、路线、资源、物料和库存联系起来。完成后可以得到一个可加载的教学数据库、表格文件和数量核算报告。全程不需要修改自己的业务数据库。
| 项目 | 条件 |
|---|---|
| 制品 | P-1蓝色支架 |
| 订单 | 第1期80件、第2期40件 |
| 时间 | 两个8小时正常生产期,每期28800秒 |
| 冲压 | 设备11,每次4件,每次600秒,批量20件 |
| 装配 | 设备12,每次1件,每次120秒,批量20件 |
| 维护 | 第1期冲压设备不可用2小时,used=0.25
|
| BOM | 每件冲压消耗坯料1件,每件装配消耗紧固件2件 |
| 供给 | 第1期坯料80、紧固件160;第2期新增40、80 |
| 成品库存 | 期初20,期末要求20至100,出库80、40 |
| 简化条件 | 无报废、无切换损失,OEE为100,无备选资源 |
两个时期在本例中对应两个生产窗口。接入真实日期时,应另外保留计划起点、班次时间和非工作时段的映射。
在配套的examples目录中使用Python 3.10或以上版本执行以下命令;基础脚本只使用标准库。Windows可使用环境中的python,Linux可按环境改为python3。
python build_example.py --output-dir ./my-first-example
python check_example.py ./my-first-example/data.db
python calculate_candidate.py ./my-first-example
python test_examples.py创建程序会生成:
| 文件 | 用途 |
|---|---|
data.db |
18张标准表的教学数据库 |
| 各表同名CSV | 查看、比较输入表;结果表初始只有表头 |
manual_candidate.csv |
四条人工候选工序产出,供手算练习 |
scenario.json |
单位、供给口径、期初库存、独立的各期出库计划period_issues及简化条件 |
程序遇到已有data.db会停止,请另选目录。也可以先查看随附的完整示例下载,再从SQL重建。两份数据的业务内容相同。
check_example.py应返回ok: true、18张表、105个字段;其中订单明细2行、工序2行、适配2行、产能4行、BOM2行、齐套4行、库存限制2行。
planning_result为0行。人工候选计划独立保存,不会被当作真实求解结果写回输入库。
可以在SQLite查看器中运行以下查询,核对需求通过何种路线进入工序:
SELECT oi.id AS order_line, p.code AS product_code,
oi.delivery_time, oi.number AS demand_quantity,
r.code AS route_code, op.code AS operation_code, op.seqno
FROM order_item oi
JOIN product p ON p.id = oi.product
JOIN process_route r ON r.product = p.id
JOIN process op ON op.route = r.id
ORDER BY oi.id, r.id, op.seqno;查询会返回4行,因为2条需求分别关联2道工序。连接后不要把重复显示的需求数相加当成新需求。
已有安装及依赖的环境可以从任意目录执行:
python /path/to/examples/load_with_decisioworks.py /path/to/my-first-example/data.db --project-root /path/to/DecisioWorks把三个路径替换为实际位置。该脚本设置项目导入路径,调用真实的load_business_data,随后执行validate_batch_productivity_multiple预处理。
本例实际加载结果为:demand=2、process=2、capacity=4、bom=2、kitting=4、inventory_limit=2,预处理状态ok。这验证了示例可进入数据层;此步骤没有执行求解。
| 资源 | 时期 | 工序 | 产出件数 | 加工次数 | 纯加工分钟 |
|---|---|---|---|---|---|
| 11 | 1 | 冲压 | 80 | 20 | 200 |
| 12 | 1 | 装配 | 80 | 80 | 160 |
| 11 | 2 | 冲压 | 40 | 10 | 100 |
| 12 | 2 | 装配 | 40 | 40 | 80 |
冲压第1期可用360分钟,其他资源期均可用480分钟。两期累计消耗坯料120件、紧固件240件,与累计供给一致;各期成品库存都为20件,累计生产分别80、120件。
计算器应返回aggregate_checks_passed: true。结果还保留solver_executed: false与full_scheduling_feasibility_proven: false,因为核算验证的是上述候选的汇总数量关系,未覆盖全部时刻、搬运、切换和任务重叠条件。
ok表示输入满足此手算程序的要求;aggregate_checks_passed表示候选的资源、物料及库存汇总检查通过。demand_issue_comparison逐期列出订单量、假定出库量与差额;issues_match_due_quantities只比较这两组数量,不能证明订单分配或准时交付,故demand_coverage_checked仍为false。缺少配套记录或输入不受支持时,程序返回ok: false、定位信息errors及非零退出码。
另建练习副本:
python build_example.py --output-dir ./three-hour-maintenance在副本数据库中执行:
UPDATE capacity SET used=0.375
WHERE workcenter=11 AND time_unit=1;再运行检查与核算。冲压可用时间降为300分钟,200分钟加工仍在汇总能力内。
增加“维护在班初、全部冲压完成后才开始装配、两道工序不重叠”的假设:原条件需要120+200+160=480分钟;维护延长后需要180+200+160=540分钟。由此可见,单设备总量通过,并不等于整个工艺链可在8小时内完成。
下一步应选择具体业务动作,例如允许经确认的转运批次重叠、调整到料与开工时点、调整交付安排,或启用可选时间。将所选条件交给相应排程能力重新运行,再用实际结果复核。
从保留本例对象关系的小改动开始。改变交期或计划期数时,按第02课同步出库计划、库存界限、资源日历、供给和人工候选产出;导出的表CSV用于查看,计算以data.db为准。每次记录来源、单位、预期变化和检查结果。
此手算脚本适用于单制品id=1、一条路线、两道顺序工序、每道工序一个独立资源、OEE100、无准备损失的离散件数练习。每期两道工序产出相等,不带期初在制品;时间单元均为正常生产期。允许按完整步骤增加时期,不自动处理替代路线、共享资源、替代料、共同加工、可选时间或高级批次规则。批次派工、在制品容量、订单分配和详细时间可行性应通过对应模型另行检查。
改变需求不会自动修改scenario.json的出库假设或manual_candidate.csv的候选产出。先解释差额,再决定改订单、出库安排还是候选方案。迁移到超出上述范围的业务时,继续使用字段和关系检查,并切换到相应DecisioWorks模型与运行配置;不要沿用此手算报告作为完整验收结论。
建议提交给同事共同检查的材料包括:输入表、来源映射、规则配置、运行记录、结果表、前后变化说明。字段查询回到字段参考,业务关系疑问回到语义详解。
Product Home | DecisioWorks v1.4.0 | English / 中文
- What Is DecisioWorks / DecisioWorks 是什么
- Scenarios and Pain Points / 适用场景与痛点
- Quick Start / 快速开始
- Documentation Map / 文档地图
- Research and Commercial Editions / 研究版与商业版
- Whitepapers / 白皮书
-
Learning Center / 学习中心: 8 topics / 8 个专题
- Design Principles and Differentiation / 设计原则与差异化
- Architecture Overview / 总体架构
- Component Responsibilities / 组件职责
- Standard Actions and Orchestration / 标准动作与能力编排
- Objectives and Rule Control / 目标与规则控制
- Controlled Solving and Engine Adapters / 受控求解与模型适配
- Results, Evidence, and Feedback / 结果、证据与反馈
- Developer Guide Index / 开发手册索引
- Data Objects and Fields / 数据对象与字段
- Actions, Recipes, and Execution / 动作、配方与执行
- Runtime Status, Errors, and Limits / 运行状态、错误与限制