news 2026/8/21 8:56:04

从零搭建工业控制系统(八):工作流编排系统——把阶段串成流水线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零搭建工业控制系统(八):工作流编排系统——把阶段串成流水线

工作流编排系统:把阶段串成流水线

这是「从零搭建工业控制系统」系列第8篇。前两篇讲了配方和序列——配方管参数,序列管编排。但一个完整的生产流程不只是跑序列,还有进料、预热、检测、出料等阶段。这篇讲最外层的工作流编排。


序列不够用吗

序列能编排配方,循环、跳转、暂停取消都有了。为什么还需要更外层?

因为一个完整的生产流程不只是"跑序列"这一件事。

真实场景:操作员放好物料,点"开始",设备要做的远不止跑工艺序列——

  1. 进料— 检查物料到位、关门、密封
  2. 预热— 加热器升温到目标温度,等稳定
  3. 完整性检测— 检查腔体密封性,不漏气才能继续
  4. 序列执行— 跑工艺序列(这是前面讲的序列层)
  5. 清理— 安全关闭加工相关设备
  6. 出料— 泄压、开门、提示取物料

六个阶段,一个接一个。序列层只管第4阶段,其他五个阶段谁管?

如果硬塞进序列层,序列配置里就得混入"进料""出料"这些非工艺步骤。工艺工程师看序列配置时一脸懵——“这个步骤的recipe字段为什么是空的?为什么有个type字段叫load?”

所以需要更外层。工作流层管全局阶段编排,序列层管工艺配方编排,各管各的。


工作流配置

工作流不是JSON配置驱动的——阶段是固定的,不需要工艺工程师改。工作流是代码里定义的流程控制器:

工作流定义(代码): 阶段1: 进料 阶段2: 预热 阶段3: 完整性检测 阶段4: 序列执行(由操作员选哪个序列) 阶段5: 清理 阶段6: 出料

为什么工作流不做成配置?因为阶段顺序是固定的工艺逻辑——进料必须在序列执行之前,清理必须在序列执行之后。这不是工艺工程师该改的东西,改了可能出安全事故。

序列和配方做成配置,是因为它们需要频繁调整——换产品、换工艺、调参数。工作流阶段基本不变,做成配置反而增加复杂度。


工作流执行逻辑

执行工作流(序列名): 阶段1: 进料 检查物料到位信号 关闭腔体门 等待密封确认 失败 → 立即停止,报错 阶段2: 预热 启动加热器 等待温度稳定(轮询温度值) 超时未稳定 → 停止,报错 取消 → 跳到清理阶段 阶段3: 完整性检测 执行泄漏测试 判定是否合格 不合格 → 停止,报错 阶段4: 序列执行 从注册表获取序列配置 调用序列执行器 失败 → 跳到清理阶段 阶段5: 清理 执行清理序列(安全关闭设备) 不管前面成功还是失败,这步都要跑 阶段6: 出料 泄压到大气 开门 提示操作员取物料

关键设计点:任何阶段失败都跳到清理阶段,而不是直接退出。设备不能停在"加热中"或"真空状态"就不管了,必须安全关闭。


阶段间的依赖与跳转

不是所有阶段都直线往下走。有些阶段有条件分支:

完整性检测: 如果合格 → 继续阶段4 如果不合格 → 跳到清理,然后停止
序列执行: 如果成功 → 继续阶段5(清理) 如果取消 → 跳到阶段5(清理) 如果故障 → 跳到阶段5(清理),然后报警

不管哪条路径,清理阶段都会执行。这是安全设计——设备永远不能停留在不安全状态。

有个设计决策:清理阶段失败怎么办?理论上清理失败意味着设备无法安全关闭,这是严重故障。实际做法是:清理失败触发最高级别报警,灯塔转红灯+蜂鸣器响,通知操作员手动介入。


工作流与序列的协作

工作流层调用序列层时,需要传递一些上下文:

  • 序列名— 操作员在UI上选的
  • 取消令牌— 工作流的取消要传播到序列层
  • 进度回调— 序列层的进度要报告给工作流,工作流再统一通知UI
工作流执行阶段4: 获取序列配置(从注册表) 调用序列执行器(传入取消令牌、进度回调) 等待序列执行完成 根据返回结果决定下一步

工作流不关心序列内部怎么跑配方、怎么循环。它只关心结果——成功还是失败。这就是分层的意义:每层只跟相邻层打交道,不跨层。


进度报告:三层叠加

现在有三层执行,进度报告也要三层叠加:

工作流进度:阶段 4/6 — 序列执行 序列进度:Step 2/5(第1次循环,共3次) 配方进度:Step 3/4 — 压力30,加工60s

UI上显示完整位置:

当前状态:运行中 工作流:阶段 4/6 — 序列执行 序列:Step 2/5(1/3) 配方:Step 3/4

操作员一眼就能看出当前在哪个阶段、跑到哪个序列步骤、配方执行到哪。如果卡住了,也知道卡在哪一层。

进度报告的实现是回调机制——每层执行时调用上层传入的进度回调,上层再往上传:

工作流 → 序列执行器 → 配方执行器 ↑ ↑ ↑ 进度回调 进度回调 进度回调

UI订阅最外层的进度事件,收到通知后更新界面。


工作流状态机

工作流本身也有状态:

状态含义
空闲没有在执行
运行中某个阶段正在执行
已完成所有阶段正常完成
已取消操作员取消
故障某阶段出错

跟序列层的状态几乎一样。但工作流多一个"空闲"状态——序列执行完就结束了,工作流是常驻的,执行完回到空闲等下一次。

UI上的"开始"按钮绑定工作流状态——只有空闲时才能点。运行中按钮变灰,防止重复启动。


多种工作流类型

实际项目中不只有一种工作流。不同的操作对应不同的工作流:

工作流阶段用途
主流程进料→预热→检测→序列→清理→出料完整生产流程
仅加载进料→预热→检测只进料不加工
仅卸载清理→出料只出料
维护流程清理→检查维护模式

操作员在UI上选工作流类型。不同工作流的阶段组合不同,但每个阶段内部的逻辑是复用的——进料就是进料,不管在哪个工作流里都一样。


踩坑记录

坑1:预热阶段超时判定

一开始预热阶段的超时设得太短。冬天车间温度低,加热器从5度升到200度需要的时间比夏天长很多。操作员反映"经常超时报错"。后来把超时改成动态计算——根据当前温度和目标温度的差值估算需要时间,再乘以1.5倍余量。

坑2:清理阶段执行两次

序列执行失败时,序列层自己触发了一次清理,工作流层又触发了一次。两次清理导致有些阀门开关了两次,设备状态混乱。后来明确职责:序列层不触发清理,清理是工作流层的职责。序列出错只返回错误码,由工作流层决定是否清理。

坑3:工作流状态没复位

某次故障后工作流状态卡在"故障",操作员点"开始"没反应——因为状态不是"空闲"。后来加了自动复位:故障状态下操作员确认后,状态自动回到空闲。


本篇小结

概念职责
工作流(Workflow)完整生产流程的阶段编排
六个阶段进料→预热→检测→序列→清理→出料
安全设计任何阶段失败都跳到清理
三层进度工作流+序列+配方三层叠加
多种工作流主流程/仅加载/仅卸载/维护
工作流状态空闲/运行中/已完成/已取消/故障

工作流层的核心思想:把完整的生产流程拆成固定阶段,每个阶段独立执行,失败时统一走清理。序列层管工艺编排,工作流层管全局流程。


下期预告

第9篇:报警系统设计

工艺跑起来了,万一设备出问题怎么报?下一篇讲报警规则引擎、报警通知机制、报警历史持久化。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 8:55:26

Dsh峰谷价格提醒插件:实时监控云服务与AI API成本,告别账单黑盒

你有没有遇到过这种情况:打开一个在线服务,看着它默默运行,心里却完全没底——它到底花了多少钱?是按量计费还是包月?有没有触发什么隐藏的阶梯价格?尤其是那些按分钟、按请求、按流量计费的云服务或AI工具…

作者头像 李华
网站建设 2026/8/21 8:54:32

MHmarkets:从公开信息出发 复盘技术架构与产品理解成本

对新手与注重稳健体验的外汇内容读者而言,“能看懂”往往比“堆概念”更重要。围绕MHmarkets,以下重点写清解释是否通俗、规则是否易查、提示是否前置,以及服务是否具备连续性。在外汇相关服务中,读者最在意的通常是信息是否清楚、…

作者头像 李华
网站建设 2026/8/21 8:51:37

SpringBoot+Vue构建高校实习信息管理平台实践

1. 项目背景与核心价值高校实习信息管理一直是教育信息化中的痛点。传统Excel表格邮件群发的方式存在信息孤岛、更新滞后、统计困难等问题。我曾参与过某211高校就业指导中心的信息化改造项目,亲眼目睹老师每天要手动整理几十份企业发来的实习岗位Excel,…

作者头像 李华
网站建设 2026/8/21 8:50:26

基于RBAC与Spring Boot+Vue的社区物业多角色平台设计与实现

最近在指导毕业设计时,发现很多同学在选题“社区物业数字化管理平台”后,依然感到无从下手。大家普遍困惑:一个听起来常规的管理系统,如何做出新意和深度?前后端分离、权限管理这些技术点都懂,但如何将它们…

作者头像 李华
网站建设 2026/8/21 8:47:26

多智能体协同设计:从原型草图到结构化评估的智能工具构建

1. 从“纸上谈兵”到“智能协同”:为什么我们需要多智能体原型设计工具? 在任何一个产品、功能或交互流程的早期构思阶段,我们最常干的一件事是什么?是拉上几个同事,在白板或一张白纸上,用马克笔和便利贴&a…

作者头像 李华
网站建设 2026/8/21 8:47:21

串联与并联电路:核心原理、规律对比与实战应用全解析

在初中物理的学习中,电流和电路是连接抽象概念与实际应用的关键桥梁。许多同学在学习串联和并联电路时,常常混淆其特点,面对复杂电路图感到无从下手,解题时更是错误频出。本文将系统拆解人教版九年级物理第15章第3节《串联电路和电…

作者头像 李华