
单锅状态机逻辑跑通后多锅并行是产能提升的核心需求。多锅场景的核心难点不是多复制几份单锅逻辑而是公共资源冲突规避、生产工单有序调度、故障隔离与断点续跑。采用「全局调度层 单锅状态机层」的两层架构可以完全复用单锅工艺逻辑仅通过上层仲裁实现多锅协同开发成本低、扩展性强、故障边界清晰。一、整体架构两层三级协同设计整体采用分层解耦设计单锅层专注工艺执行调度层专注资源分配与工单管理公共资源统一纳管禁止单锅直接操控从架构上避免资源冲突。公共资源层单锅设备层调度仲裁层生产管理层资源申请/释放资源申请/释放资源申请/释放资源申请/释放上位机MES/工单系统全局调度器公共资源仲裁中心工单队列管理器错峰功率管控1号锅 独立状态机2号锅 独立状态机3号锅 独立状态机N号锅 独立状态机主进水总管出液主管路排渣传送带清洗水泵总供电容量核心设计原则工艺与调度分离单锅状态机完全保留浸泡、煎煮、挤压、清洗的工艺逻辑仅增加「资源申请-等待-释放」接口不修改原有工艺流转。资源统一仲裁所有公共资源由调度器统一管理单锅只能发起申请、接收授权、用完释放无权直接操控公共阀门与管路。故障隔离单锅故障仅释放自身占用资源不影响其他锅正常运行公共资源故障才会触发全线等待。弹性扩展新增煎药锅仅需新增1个单锅状态机实例调度器配置扩容即可无需修改核心逻辑。二、公共资源建模与仲裁机制多锅并行的绝大多数问题都源于资源争抢先对资源分类建模再对应设计仲裁策略是最稳妥的落地方式。2.1 三类公共资源分类资源类型典型设备特性管控规则独占型资源主进水总管、排渣传送带、出液主管路同一时间只能供1个锅使用互斥占用申请排队用完释放容量型共享资源总供电容量、压缩空气总流量、清洗水泵可同时供多锅使用但有总上限配额管理累计用量不超阈值超额错峰半共享资源清洗喷淋管路、药液过滤机组可同时供固定数量锅使用如2台多槽位互斥占满则排队煎药产线最核心的两类冲突点一是进水、排渣等独占管路的抢用二是多锅同时加热导致总功率超限跳闸必须分别管控。2.2 资源仲裁与分配策略基础分配规则默认采用FIFO先来先服务 优先级插队组合策略兼顾公平性与生产灵活性普通工单按申请时间排序先到先得依次授权。加急处方、优先工单可配置更高优先级允许插入等待队列头部。资源释放后自动从等待队列队首取出下一个申请进行授权。死锁避免机制多资源申请最容易出现死锁A锅占进水等出液B锅占出液等进水落地时强制执行两条规则统一申请顺序所有锅必须按「进水→加热→出液→排渣→清洗」的固定顺序申请资源禁止逆向申请。申请超时回收获得资源授权后若规定时间内未开始使用如单锅故障暂停调度器强制回收资源分配给下一个等待者避免资源空占。2.3 功率错峰管控产线必加多锅同时进入武火升温阶段时总功率极易超出车间供电容量导致跳闸是煎药产线最高频的隐性坑。调度器实时统计所有处于加热状态的锅的总功率。当总功率接近阈值时对后申请加热的锅进行启动延时或降低其加热档位。优先保证已进入沸腾阶段的锅功率延后处于升温阶段的锅不影响核心工艺。三、单锅状态机的适配改造单锅原有工艺状态完全保留仅在涉及公共资源的工序前插入「申请-等待-释放」子步改造量极小且逻辑内聚。3.1 工序资源绑定每个涉及公共资源的子步都对应一套完整的资源交互流程工序占用公共资源交互流程浸泡-定量进水主进水总管申请进水资源 → 等待授权 → 开阀进水 → 关阀 → 释放资源出液-药液输出出液主管路过滤机组申请出液资源 → 等待授权 → 开阀出液 → 关阀 → 释放资源排渣-药渣排出排渣传送带申请排渣资源 → 等待授权 → 开门排渣 → 关门 → 释放资源清洗-喷淋冲洗清洗水泵排污管申请清洗资源 → 等待授权 → 喷淋清洗 → 关阀 → 释放资源煎煮-加热总供电容量申请功率配额 → 动态调节 → 工序结束释放配额3.2 状态机改造示例以进水子步为例原来的进水子步直接开关阀改造后拆分为4个原子步// 浸泡工序-进水子步改造后 CASE SoakStep OF // 申请资源 0: ResourceRequest_WaterIn : TRUE; // 向调度器发申请 SoakStep : 1; // 等待授权 1: IF ResourceGrant_WaterIn THEN // 收到调度器授权 InletValve : TRUE; // 开进水阀 SoakStep : 2; END_IF // 申请超时告警 IF RequestTimer.Q THEN AlarmCode : 1001; // 进水资源申请超时 MainState : PAUSE; END_IF // 定量进水 2: IF LevelReached THEN InletValve : FALSE; // 关阀 SoakStep : 3; END_IF // 释放资源 3: ResourceRequest_WaterIn : FALSE; // 释放资源 SoakStep : 4; // 进入浸泡计时 // 浸泡计时 4: SoakTimer.IN : TRUE; IF SoakTimer.Q THEN SoakStep : 0; MainState : DECOCT; END_IF END_CASE改造后单锅依然是完整的自治单元工艺逻辑内聚资源交互接口统一便于单独调试与维护。四、全局调度器核心逻辑调度器是多锅系统的大脑核心负责工单派发、资源仲裁、异常兜底三大职能本身不涉及任何工艺细节。4.1 工单队列管理上位机下发的生产工单包含处方ID、配方参数、优先级、批次号先进入全局工单队列。调度器轮询所有锅的状态当出现空闲锅且首段资源可用时将队首工单派发给对应锅自动下载配方参数并触发启动。支持手动指定锅位派发也支持自动分配最优锅位。4.2 资源仲裁中心核心逻辑以独占型资源「主进水」为例仲裁逻辑框架如下// 进水资源仲裁核心 CASE WaterInResource.State OF // 空闲状态 0: // 遍历所有锅的申请找优先级最高/最早的申请 potIndex : FindHighestPriorityRequest(WaterInRequest); IF potIndex 0 THEN WaterInResource.OccupiedBy : potIndex; WaterInGrant[potIndex] : TRUE; WaterInResource.State : 1; END_IF // 占用状态 1: // 占用者释放资源 IF NOT WaterInRequest[WaterInResource.OccupiedBy] THEN WaterInGrant[WaterInResource.OccupiedBy] : FALSE; WaterInResource.OccupiedBy : -1; WaterInResource.State : 0; END_IF // 占用者故障强制回收 IF PotFault[WaterInResource.OccupiedBy] THEN WaterInGrant[WaterInResource.OccupiedBy] : FALSE; WaterInResource.OccupiedBy : -1; WaterInResource.State : 0; END_IF END_CASE4.3 批次全链路追溯多锅并行必须保证批次不混淆调度层统一维护批次生命周期每个工单生成唯一批次号派发时绑定到对应锅全程跟随工序流转。出液、灌装节点校验批次号防止不同处方药液混装。每锅的温度、压力、时长等工艺数据按批次号归档支持全流程追溯。五、异常与安全分级处理多锅场景的异常处理核心原则是最小影响面能单锅隔离就不影响全线公共故障再统一处理。三级故障体系故障等级触发场景处理动作影响范围单锅级故障单锅传感器异常、阀门故障、轻微超温立即暂停当前锅释放所有占用资源故障锅剔出可用队列工单自动重排到其他空闲锅仅单锅其他锅正常运行资源级故障总进水阀坏、排渣传送带卡、水泵故障所有申请该资源的锅进入等待状态已占用资源的锅完成当前工序后暂停故障排除后自动恢复调度仅影响依赖该资源的工序不影响其他工序执行全线级故障急停拍下、总电源异常、气源中断所有锅立即切断动力输出进入安全停机状态所有资源强制释放调度暂停全线停机需人工排查复位断点续跑与工单兜底单锅故障恢复后保留原批次号与工序进度重新申请资源后从断点继续执行无需从头开始避免药材报废。若某锅长时间无法修复调度器支持将未完成工单转派到其他空闲锅重新执行对应工序保证生产进度。六、PLC程序结构化落地建议6.1 单锅逻辑FB化封装将单锅完整状态机封装为独立功能块FB_DecoctionPot对外暴露三类接口输入启动/暂停/复位指令、配方参数、资源授权信号、传感器信号输出当前状态、工序进度、资源申请信号、阀门电机输出、故障码内部完整的单锅状态机、子步逻辑、计时控制多锅并行时直接实例化多次即可Pot1 : FB_DecoctionPot; Pot2 : FB_DecoctionPot; Pot3 : FB_DecoctionPot;新增锅位仅需新增一行实例化代码工艺逻辑零修改。6.2 调度器独立FB封装全局调度器封装为FB_GlobalScheduler内部包含工单队列、资源仲裁、功率管控三个子模块与单锅FB完全解耦。优势调度策略调整如改优先级规则、加工位数量不会影响单锅工艺逻辑调试风险低。扩展后续加AGV调度、药液缓存罐管理等功能都在调度层扩展不触碰底层单锅逻辑。七、上位机多锅监控对接要点总览大屏一屏展示所有锅的当前工序、运行进度、批次号、状态颜色异常锅位高亮闪烁。工单管理界面支持工单下发、队列调整、优先级修改、加急处理、工单转派。资源状态面板直观展示每个公共资源的占用者、等待队列、实时负载。单锅详情页点击对应锅位可查看详细工艺曲线、参数记录、故障历史。批次追溯查询按批次号检索全流程工艺数据、操作记录、操作人员。八、现场落地避坑指南绝对禁止单锅直接操控公共资源必须走调度器申请授权否则多锅同时开关阀会出现硬件冲突、逻辑打架排查极其困难。资源申请必须加超时保护防止单锅故障后长期占用资源导致其他锅一直等待、全线产能卡死。功率错峰一定要做3锅以上并行时同时升温的功率冲击极易触发总闸跳闸是投产初期最高频的问题。批次号全程跟随校验出液、灌装节点必须校验批次一致性避免多锅药液混批造成质量事故。预留锅位扩展余量调度器设计时按最大产能配置队列与资源变量后续加锅不用改核心逻辑改配置即可上线。总结多锅并行的核心不是「多写几份单锅逻辑」而是做好「分层解耦资源仲裁」。单锅状态机保证工艺稳定可靠全局调度器负责协同与效率两者独立演进既能快速落地也能支撑后续产能持续扩容。