修改记录
维护规则
- 本文件必须与
开发规范与注释约定.md、总体架构与代码分析.md同步维护。 - 任何代码改动都必须新增一条记录。
- 记录日期必须使用绝对日期格式,例如
2026-04-13。
记录格式
每条记录至少包含:
- 日期。
- 变更范围。
- 目的与结果。
- 已同步更新的文档。
变更明细
2026-04-20(主控辅助层宽接口改为聚合结构)
变更范围:
Code/主程序入口/MachineControlTypes.stCode/主程序入口/FB_MachineCommandComposer.stCode/主程序入口/FB_MachineStatusAggregator.stCode/主程序入口/FB_MachineController.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 在
MachineControlTypes.st中新增ST_ModuleCommandSource、ST_EjectModeCommandSource、ST_MachineCommandSourceSet、ST_ModuleRuntimeStatus及各模块运行时包装结构,把主控内部命令源与运行态边界显式结构化。 FB_MachineCommandComposer改为消费两套命令源聚合结构,消除原先手动/自动超长标量入参表;托模基础块与托模组合模式块的互斥选择逻辑保持不变。FB_MachineStatusAggregator改为消费自动流程和各模块的运行时状态聚合结构,继续输出原有扁平化ST_MachineStatus,避免向下游 HMI 与输出映射层扩散接口改动。FB_MachineController本体同步把手动命令缓存、自动命令缓存和模块状态缓存收敛为聚合结构,后续新增工艺状态时优先扩展类型层与辅助层,而不是继续增加宽接口。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-20(收口 ST_MachineSensor 为纯数字量语义边界)
变更范围:
Code/主程序入口/MachineControlTypes.stCode/主程序入口/FB_MachineController.stCode/IO管理/数字量输入/FB_PLCMachineInputMapper.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 删除
ST_MachineSensor中未对应真实数字量输入来源的电子尺、压力尺以及轴实际位置/速度/压力字段,只保留当前工程真实在用的数字量语义输入。 FB_MachineController同步改为只从stSensor消费数字量条件与限位;电子尺、压力尺和轴实际反馈相关参数统一按0占位传给执行模块,避免主控接口名义上有数值反馈、实际上无人回写。FB_PLCMachineInputMapper注释同步更新,明确数字量输入语义层只维护数字量来源字段,不再承载数值采集职责。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(数字量公共命令并入输入语义映射层)
变更范围:
Code/IO管理/数字量输入/FB_PLCMachineInputMapper.st- 删除
Code/IO管理/数字量输入/FB_PLCMachineCommandMapper.st Code/实例管理/Instances.stCode/主程序入口/PRG_MainControl.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 保持
FB_PLCDigitalInputBinder与FB_PLCDigitalOutputBinder不变,继续只负责原始IN[]/OUT[]绑定。 - 将
FB_PLCMachineCommandMapper的公共运行命令映射逻辑并入FB_PLCMachineInputMapper,把数字量输入语义与公共命令收口到同一个语义层维护。 PRG_MainControl与Instances.st同步改为只通过gvl_fbPLCMachineInputMapper回写gvl_stSensor和gvl_stPLCDigitalCommandSource,移除独立gvl_fbPLCMachineCommandMapper调用链。- 同步更新开发规范与总体架构文档,明确后续数字量输入语义统一扩展在
FB_PLCMachineInputMapper,数字量输出语义统一扩展在FB_PLCMachineOutputMapper,原始 Binder 层保持稳定。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(删除 FB_Panel 兼容封装块)
变更范围:
Code/面板管理/面板公用/F_PanelReadKeyByOrder.st- 删除
Code/面板管理/面板公用/FB_Panel.st Code/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 删除
FB_Panel这一层兼容封装块,避免在当前架构里继续保留“读键 + 灯编码”的重复概念。 - 当前面板公共层正式收口为
F_PanelReadKeyByOrder、FB_PanelReader、FB_PanelLampWriter、FB_PanelLampEncoder四个公共单元,由FB_PanelDispatcher直接编排调用。 - 同步移除开发规范与总体架构文档中把
FB_Panel作为当前有效公共块的现行描述,保持当前实现与文档一致。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(统一 Modbus 通讯层收口)
变更范围:
Code/Modbus通讯/ModbusTypes.stCode/Modbus通讯/FB_Modbus.stCode/全局变量/GlobalVars.stCode/实例管理/Instances.stCode/主程序入口/PRG_MainControl.stCode/主程序入口/MachineControlTypes.stCode/面板管理/面板公用/PanelTypes.stCode/HMI系统/FB_HMIParaInterface.stCode/面板管理/面板调度/FB_PanelDispatcher.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md- 删除
Code/HMI系统/HMIModbusTypes.st - 删除
Code/HMI系统/FB_HMIModbusInputBinder.st - 删除
Code/HMI系统/FB_HMIModbusOutputBinder.st - 删除
Code/面板管理/面板公用/PanelModbusTypes.st - 删除
Code/面板管理/面板公用/FB_PanelModbusInputBinder.st - 删除
Code/面板管理/面板公用/FB_PanelModbusOutputBinder.st
目的与结果:
- 新增
Code/Modbus通讯/ModbusTypes.st,把 HMI 参数交换区与面板按键/灯交换区统一收口到ST_Modbus这一套通讯镜像结构中。 - 新增
FB_Modbus,用一个统一功能块同时处理输入绑定和输出绑定,替代原先 HMI/面板分别维护的 4 个 Modbus 绑定块。 GlobalVars.st改为只保留一个顶层统一通讯镜像gvl_stModbus,不再保留gvl_stHMIModbusInput、gvl_stHMIModbusOutput、gvl_stPanelModbusInput、gvl_stPanelModbusOutput四套分散边界。Instances.st与PRG_MainControl.st改为统一接入gvl_fbModbus,并保持同一扫描周期“先输入绑定、后业务处理、再输出绑定”的调用顺序。- HMI 和面板业务块的注释口径已统一改为“只消费 PLC 内部业务边界,实际 Modbus 通讯镜像统一由
FB_Modbus负责转换”。 - 已删除旧的 HMI/面板 Modbus 类型与绑定块文件,后续 PLC 和 HMI/面板对接只需要围绕
Code/Modbus通讯目录中的统一接口维护。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(Modbus 边界文档与全局注释收口)
变更范围:
Code/全局变量/GlobalVars.stCode/实例管理/Instances.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 补齐
GlobalVars.st中 HMI Modbus、面板 Modbus、机器传感器、机器状态、轴镜像和温控输出等边界的逐变量详细注释,保持与当前注释规范一致。 - 修正
Instances.st中 HMI 参数接口实例与面板调度实例“每拍先调用”的旧描述,使其与PRG_MainControl当前真实调用顺序一致。 - 修正总体架构文档中顶层执行链、IO 管理职责和面板职责的遗漏项,显式补上
FB_PLCMachineOutputMapper,并明确真实 Modbus 驱动/寄存器地址表仍应继续绑定在通讯镜像层。 - 在开发规范中补充真实 Modbus 地址绑定约束,明确以后协议地址、报文偏移和驱动句柄只能落在通讯镜像层与专用绑定块中,禁止重新散写到业务块。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(HMI 与面板 Modbus 绑定层补齐)
变更范围:
Code/HMI系统/HMIModbusTypes.stCode/HMI系统/FB_HMIModbusInputBinder.stCode/HMI系统/FB_HMIModbusOutputBinder.stCode/面板管理/面板公用/PanelModbusTypes.stCode/面板管理/面板公用/FB_PanelModbusInputBinder.stCode/面板管理/面板公用/FB_PanelModbusOutputBinder.stCode/主程序入口/MachineControlTypes.stCode/面板管理/面板公用/PanelTypes.stCode/全局变量/GlobalVars.stCode/实例管理/Instances.stCode/主程序入口/PRG_MainControl.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 新增
ST_HMIModbusInputArea/ST_HMIModbusOutputArea与ST_PanelModbusInputArea/ST_PanelModbusOutputArea,把 HMI/面板实际 Modbus 寄存器镜像从 PLC 内部业务边界中独立出来。 - 新增
FB_HMIModbusInputBinder、FB_HMIModbusOutputBinder、FB_PanelModbusInputBinder、FB_PanelModbusOutputBinder四个绑定块,显式收口“通讯镜像 -> 业务边界 -> 通讯镜像”的双向转换链。 - 将
ST_HMIProcessPara、ST_HMIParaCommand、ST_HMIParaStatus的注释口径调整为“PLC 内部 HMI 业务边界”,将ST_PanelIO的注释口径调整为“PLC 内部面板原始字边界”,不再把它们直接描述为实际 Modbus 通讯区。 - 在
GlobalVars.st、Instances.st、PRG_MainControl.st中接入新的 HMI/面板 Modbus 输入输出镜像与绑定实例,使顶层调用链显式变成“Modbus 输入绑定 -> 业务块 -> Modbus 输出绑定”。 - 同步更新开发规范与总体架构文档,明确以后协议演进、寄存器地址调整和业务逻辑修改必须分层处理,不再允许业务块直接依赖通讯镜像。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(公共运行命令来源显式化)
变更范围:
Code/IO管理/PLCIOTypes.stCode/IO管理/数字量输入/FB_PLCDigitalInputBinder.stCode/IO管理/数字量输入/FB_PLCMachineCommandMapper.stCode/全局变量/GlobalVars.stCode/实例管理/Instances.stCode/主程序入口/MachineControlTypes.stCode/主程序入口/FB_CommandArbiter.stCode/主程序入口/PRG_MainControl.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 新增
FB_PLCMachineCommandMapper,把gvl_PLC.X50..X53显式翻译为独立公共命令源gvl_stPLCDigitalCommandSource。 - 将
X50..X53从“备用输入”修正为当前暂定的启动、停止、复位、急停真实来源,并同步更新原始 IO 类型与输入绑定注释。 - 在
GlobalVars.st、Instances.st、PRG_MainControl.st中接入新的 PLC 数字量公共命令源调用链,保持“原始输入 -> 语义/命令映射 -> 仲裁 -> 主控”的顶层顺序。 - 扩展
FB_CommandArbiter,显式写出当前优先级:PLC 数字量公共命令源覆盖基础命令快照中的bStart、bStop、bReset、bEStop,面板命令源继续只覆盖模式与手动字段。 - 同步更新开发规范与总体架构文档,明确以后若调整这 4 个公共运行命令的物理来源,只允许修改独立命令映射层和对应 IO 注释,不再允许在顶层程序散写点号。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(液压轴接口重构)
变更范围:
Code/伺服系统/液压轴/AxisTypes.stCode/伺服系统/液压轴/FB_HydAxis.stCode/合模系统/锁模/FB_Clamp.stCode/合模系统/调模/FB_MoldAdjust.stCode/注射系统/座台/FB_Nozzle.stCode/注射系统/射胶/FB_Inject.stCode/注射系统/储料/FB_Meter.stCode/顶出系统/托模/FB_Eject.stCode/顶出系统/中子/FB_Core.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 按新的标准输入接口重构
FB_HydAxis,统一改为消费stAxisRef + 控制命令 + 目标参数,不再依赖旧的bEnable/stConfig/stStatus外挂式接口。 - 将合模、调模、座台、射胶、储料、托模、中子 7 个执行模块的轴层调用统一改为:先写现场反馈、模块报警与
stConfig,再调用FB_HydAxis,最后从stAxisRef.stStatus回收轴层结果。 - 修复
AxisTypes.st中ST_AxisRefHyd结构尾部缺失END_TYPE的结构错误。 - 同步更新规范文档与架构文档,明确当前液压轴层标准调用口径与
ST_AxisRefHyd的职责边界。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(原始数字量 IO 绑定接入)
变更范围:
Code/IO管理/PLCIOTypes.stCode/IO管理/数字量输入/FB_PLCDigitalInputBinder.stCode/IO管理/数字量输出/FB_PLCDigitalOutputBinder.stCode/全局变量/GlobalVars.stCode/实例管理/Instances.stCode/主程序入口/PRG_MainControl.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 新增
ST_PLCIO原始现场数字量边界,按电气 IO 表直接收口 48 路输入X0..X57与 48 路输出Y0..Y57。 - 在
Code/IO管理下新增FB_PLCDigitalInputBinder与FB_PLCDigitalOutputBinder,分别把运行时IN[0..47]刷新到gvl_PLC.X*,并把gvl_PLC.Y*下发到OUT[0..47]。 - 在
GlobalVars.st中新增gvl_PLC,并在Instances.st中新增两个顶层 IO 绑定实例。 - 在
PRG_MainControl.st中把数字量输入绑定接到主循环最前段,把数字量输出绑定接到主循环最后段,补齐原始数字量 IO 的顶层调用链。 - 同步更新开发规范与总体架构文档,明确当前
Code/IO管理已闭环原始数字量点位层,但机器传感器和模拟量映射仍需后续补充。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(HMI 与面板 Modbus 边界语义修正)
变更范围:
Code/面板管理/面板公用/PanelTypes.stCode/主程序入口/MachineControlTypes.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 明确
ST_PanelIO是 HMI 面板与 PLC 主机之间通过 Modbus 协议交换的原始面板字边界,而不是 PLC 内部纯工艺结构。 - 明确
ST_HMIProcessPara、ST_HMIParaCommand、ST_HMIParaStatus是 HMI 与 PLC 主机之间通过 Modbus 协议交换的统一工艺参数与命令状态边界。 - 在
PanelTypes.st和MachineControlTypes.st中补充通讯方向注释,写清楚哪些字由 HMI 写给 PLC,哪些字由 PLC 回写给 HMI。 - 在开发规范与总体架构文档中同步补上“通讯边界结构必须标明协议角色和读写方向”的说明,避免后续再次把 HMI 通讯结构误解为纯本地运行结构。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18
涉及文件:
Code/主程序入口/MachineControlTypes.stCode/面板管理/面板调度/FB_PanelDispatcher.stCode/主程序入口/FB_CommandArbiter.stCode/主程序入口/FB_MachineController.stCode/主程序入口/PRG_MainControl.stCode/实例管理/Instances.stCode/IO管理/数字量输入/FB_PLCMachineInputMapper.stCode/IO管理/数字量输出/FB_PLCMachineOutputMapper.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 在
ST_MachineManualCommand中新增bMotorStart,把马达总开关正式收口为机器级手动命令边界。 - 在
FB_PanelDispatcher中把马达键改为上升沿锁存翻转,并在FB_CommandArbiter中补齐bMotorStart透传,形成“面板马达键 -> 最终机器命令”闭环。 - 新增
FB_PLCMachineInputMapper,把gvl_PLC.X*翻译到gvl_stSensor,补齐安全门、液压就绪、合模/座台/射胶/储料/托模/中子等数字量语义输入。 - 新增
FB_PLCMachineOutputMapper,把顶层最终机器命令、机器状态、主控最终模块命令和关键动作提示翻译到gvl_PLC.Y*,补齐合模、座台、射胶、储料、托模、中子、自动/手动、报警、电热和马达输出闭环。 FB_MachineController新增stModuleCommandsOut、uiClampActHintOut、uiSelectedEjectActHintOut三个对外镜像输出,供顶层 IO 输出映射层直接消费,避免输出层重复猜模块状态机。PRG_MainControl已按“原始输入绑定 -> 机器输入语义映射 -> 主控/模块执行 -> 机器输出语义映射 -> 原始输出绑定”的顺序接入完整 IO 闭环。- 当前仍未建立明确业务边界的输出点,如拉带、夹带、吹气、辅助阀、顶压阀等,在输出映射层统一显式清零,避免现场误动作。
- 两个新增
.st文件已按当前工程约定补齐文件头与逐行意图注释,并需保持UTF-8 with BOM编码。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(面板按钮数组化重构)
变更范围:
Code/面板管理/面板公用/PanelTypes.stCode/面板管理/面板公用/FB_PanelReader.stCode/面板管理/面板公用/FB_PanelLampEncoder.stCode/面板管理/面板公用/FB_Panel.stCode/面板管理/MK110/FB_MK110.stCode/面板管理/MK116/FB_MK116.stCode/面板管理/MK150/FB_MK150.stCode/面板管理/面板调度/FB_PanelDispatcher.stCode/全局变量/GlobalVars.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 将
ST_PanelButtons从“逐字段结构体”重构为aButton数组主模型,并新增E_PanelButtonID作为唯一按钮语义索引。 - 将
FB_PanelReader与FB_PanelLampEncoder改为基于aButton数组循环处理,新增按钮后不再需要改公用读键和公用写灯代码。 - 将
FB_MK110、FB_MK116、FB_MK150改为“先清零全部排序号,再只覆写本型号支持键位”的写法,新增全局按钮但某型号不支持时,不再需要在该型号块补uiPanelOrder := 0。 - 将
FB_PanelDispatcher的无面板清零逻辑同步改为数组循环,避免新增按钮后继续维护长串逐字段清零代码。 - 同步更新全局变量注释、开发规范、总体架构分析和修改记录,明确当前面板系统的维护基线已经切换为“按钮 ID + 数组循环”模型。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(面板按键语义重命名扩展)
变更范围:
Code/面板管理/面板公用/PanelTypes.stCode/面板管理/面板公用/FB_PanelReader.stCode/面板管理/面板公用/FB_PanelLampEncoder.stCode/面板管理/MK110/FB_MK110.stCode/面板管理/MK116/FB_MK116.stCode/面板管理/MK150/FB_MK150.stCode/面板管理/面板调度/FB_PanelDispatcher.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 按最新面板命名口径重写
ST_PanelButtons,把旧字段名统一替换为工艺语义字段名,例如stSemiAuto、stFullAuto、stMoldAdjust、stHeater、stMetering、stInjection、stSuckBack、stEjectIn、stEjectOut、stNozzleIn、stNozzleOut、stCoreAIn、stCoreAOut。 - 在综合按键结构中补入
stCoreB..HIn/Out与stMoldAdjustIn/Out扩展键位,方便后续面板型号扩展时继续沿用同一套结构体边界。 - 同步重写
FB_PanelReader、FB_PanelLampEncoder、FB_PanelDispatcher与FB_MK110、FB_MK116、FB_MK150,保证新字段名在排序号定义、按键读取、灯编码和面板命令回灌链路中完全贯通。 - 当前三个硬件面板未提供的新增键位统一写成
uiPanelOrder := 0,保持“未提供键位即无效映射”的单坐标模型,不再维护第二套兼容别名或冗余映射结构。 - 同步更新开发规范、架构分析和修改记录,明确
ST_PanelButtons后续必须以当前工艺语义字段名作为唯一维护基线。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(面板吹气键扩展)
变更范围:
Code/面板管理/面板公用/PanelTypes.stCode/面板管理/面板公用/FB_PanelReader.stCode/面板管理/面板公用/FB_PanelLampEncoder.stCode/面板管理/MK110/FB_MK110.stCode/面板管理/MK116/FB_MK116.stCode/面板管理/MK150/FB_MK150.stCode/面板管理/面板调度/FB_PanelDispatcher.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 在
ST_PanelButtons中保留原stAirBlow的同时,新增stAirBlowA与stAirBlowB两个独立吹气键综合点位。 - 同步补齐公用读键层
FB_PanelReader与公用写灯层FB_PanelLampEncoder,保证新增吹气键可以被统一读取与统一编码输出。 - 同步更新
FB_MK110、FB_MK116、FB_MK150的型号映射;当前三种面板均暂未提供吹气 A/B 独立键位,因此统一写为uiPanelOrder := 0。 - 同步更新
FB_PanelDispatcher的无面板清零逻辑与灯请求回写逻辑,保证新增字段在调度链中不会留下未初始化残值。 - 同步更新开发规范、架构分析和修改记录,明确
stAirBlowA、stAirBlowB已成为当前面板综合结构的一部分。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18(面板排序号单坐标收口)
变更范围:
Code/面板管理/面板公用/PanelTypes.stCode/面板管理/面板公用/F_PanelReadKeyByOrder.stCode/面板管理/面板公用/FB_PanelReader.stCode/面板管理/面板公用/FB_Panel.stCode/面板管理/MK110/FB_MK110.stCode/面板管理/MK116/FB_MK116.stCode/面板管理/MK150/FB_MK150.stCode/面板管理/面板调度/FB_PanelDispatcher.stCode/全局变量/GlobalVars.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 删除
ST_PanelButton中的uiInputWordIndex与uiInputBitIndex,把面板公共边界收口为“uiPanelOrder + bValue + bLamp”。 - 将
F_PanelReadKeyByOrder改为只按uiPanelOrder顺排读取uiIN0..uiIN3的 64 个输入位,不再维护“输入字号 + 输入位号”的第二套坐标。 - 将
FB_PanelReader改为只消费uiPanelOrder,并让键值与灯值继续共用同一套面板排序号。 - 将
FB_MK110、FB_MK116、FB_MK150进一步收口为纯排序号定义块,后续调整不同面板型号时只需要修改对应块中的uiPanelOrder。 - 同步更新面板调度注释、全局边界注释与两份文档,明确当前面板架构已经回到“输入 64 位顺排、输出 64 位顺排、键值和灯值共用同一面板排序号”的单坐标模型。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-18
变更范围:
Code/主程序入口/MachineControlTypes.stCode/主程序入口/FB_CommandArbiter.stCode/主程序入口/FB_MachineModeResolver.stCode/主程序入口/FB_MachineCommandComposer.stCode/主程序入口/FB_MachineStatusAggregator.stCode/主程序入口/FB_MachineController.stCode/主程序入口/PRG_MainControl.stCode/全局变量/GlobalVars.stCode/实例管理/Instances.stCode/面板管理/面板公用/FB_PanelReader.stCode/面板管理/面板公用/FB_PanelLampEncoder.stCode/面板管理/面板公用/FB_Panel.stCode/面板管理/MK110/FB_MK110.stCode/面板管理/MK116/FB_MK116.stCode/面板管理/MK150/FB_MK150.stCode/面板管理/面板调度/FB_PanelDispatcher.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 新增独立命令仲裁层
FB_CommandArbiter,把面板调度块从“直接写最终gvl_stCommand”改为“只写gvl_stPanelCommandSource,再由顶层基于基础命令快照统一仲裁生成最终命令”。 - 在
MachineControlTypes.st中补充ST_MachineModeState与ST_MachineModuleCommands,把主控内部的模式解析结果与最终模块命令收口为结构化边界。 - 将
FB_MachineController内部首轮拆层:新增FB_MachineModeResolver、FB_MachineCommandComposer、FB_MachineStatusAggregator,主控本体主要保留 10ms 路由调度、执行模块调用与托模来源选择。 - 将面板公用层拆为
FB_PanelReader与FB_PanelLampEncoder两个独立公共块,FB_Panel改为兼容封装;FB_PanelDispatcher改为“型号映射 -> 读键 -> 命令源/灯请求 -> 灯编码”的单次扫描顺序,不再双调用同一型号块。 - 将
FB_MK110、FB_MK116、FB_MK150重构为纯映射定义块,后续调整面板键位时只需要修改对应型号块中的排序号定义。 - 同步更新规范文档、架构文档和修改记录,明确当前基线已经变为“面板命令源先独立锁存、顶层先保留基础公共命令再叠加面板模式/手动字段、主控内部按辅助层拆分维护”。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-17
变更范围:
Code/伺服系统/液压轴/AxisTypes.stCode/伺服系统/液压轴/FB_HydAxis.stCode/合模系统/锁模/FB_Clamp.stCode/合模系统/调模/FB_MoldAdjust.stCode/注射系统/座台/FB_Nozzle.stCode/注射系统/射胶/FB_Inject.stCode/注射系统/储料/FB_Meter.stCode/顶出系统/托模/FB_Eject.stCode/顶出系统/托模/FB_EjectMode.stCode/顶出系统/中子/FB_Core.stCode/主程序入口/FB_MachineController.stCode/主程序入口/PRG_MainControl.stCode/主程序入口/MachineControlTypes.stCode/实例管理/Instances.stCode/全局变量/GlobalVars.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.mdCode/模式管理/自动模式/FB_AutoCycle.stCode/温度系统/EK312/FB_EK312.stCode/面板管理/面板公用/PanelTypes.stCode/面板管理/面板公用/F_PanelGetBit.stCode/面板管理/面板公用/F_PanelSetBit.stCode/面板管理/面板公用/FB_PanelLampWriter.stCode/面板管理/MK110/FB_MK110.stCode/面板管理/MK116/FB_MK116.stCode/面板管理/MK150/FB_MK150.stCode/面板管理/面板公用/F_PanelReadKeyByOrder.stCode/面板管理/面板公用/FB_Panel.st
目的与结果:
- 新增
ST_HydAxisConfig,把轴号与轴保护边界从零散参数收口为统一轴配置结构。 - 将合模、调模、座台、射胶、储料、托模基础、托模模式、中子 8 个执行块的
FB_HydAxis实例全部下沉到各自子模块,FB_MachineController不再直接处理轴配置、轴使能和轴状态并入。 FB_EjectMode改为只直接复用内部FB_Eject,移除其自身重复的托模轴层执行。- 将 10ms 工艺逻辑节拍和 100ms 温控节拍统一上提到
PRG_MainControl顶层生成;FB_MachineController只消费顶层 10ms 节拍,FB_EK312只消费顶层 100ms 节拍。 FB_EK312已提升到PRG_MainControl顶层直接调用,且改为由顶层节拍驱动刷新;FB_MachineController不再消费或汇总温控块结果。- 同步更新主入口、自动流程、温控块与架构文档,明确当前固定节拍配置为:基础任务 1ms、工艺逻辑 10ms、温控计算 100ms。
- 在
开发规范与注释约定.md中新增“VAR_IN_OUT/VAR_INPUT/VAR_OUTPUT/VAR全变量强制详细注释、逐参数注释、逐执行行可读”的强制规则。 - 对
PRG_MainControl.st、FB_MachineController.st、Instances.st继续补齐详细注释,重点把顶层温控职责、变量语义和调用参数来源写明确。 - 本次再精简自动前提与温控接口:
FB_EK312删除bManualMode、uiActTime,PRG_MainControl删除温控模式判定与温控结果中转变量,FB_MachineController删除全部温控输入、温控镜像和机器级温控状态汇总,ST_MachineSensor与FB_AutoCycle同步删除bTempReady前提接口。 - 根据最新手工调整后的代码基线,再次清理
总体架构与代码分析.md中残留的旧架构表述,统一改为“10ms/100ms 节拍均由PRG_MainControl顶层生成并下发消费”。 - 新增面板管理层:使用
ST_PanelButtons统一收口按键排序号、键值和灯值,并生成FB_MK110、FB_MK116、FB_MK150三个面板功能块;后续不同面板型号只需要修改对应逻辑键的uiPanelOrder定义。 - 将
Code/面板管理下的面板输入字、输出字和位操作辅助接口全部由WORD/w*统一调整为UINT/ui*,使面板层接口前缀与整型命名规范保持一致。 - 面板管理层进一步收口为公共层复用:
FB_MK110、FB_MK116、FB_MK150都只维护各自型号的uiPanelOrder定义,读键和写灯统一交给F_PanelReadKeyByOrder、FB_Panel、FB_PanelLampWriter处理。 - 本次再按
FB_MK110的结构重写FB_MK116与FB_MK150,让三个面板型号块的接口、注释口径和调用链保持一致,后续调整键位顺序时都只需要改对应型号块中的排序号定义。 - 同步修正文档中残留的
ST_PanelMap、ST_PanelKeyMap、F_MKxxxReadKeyByOrder旧说明,并修复PanelTypes.st末尾多余END_TYPE导致的面板类型文件结构错误。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-17(面板块重写补充)
变更范围:
Code/面板管理/MK116/FB_MK116.stCode/面板管理/MK150/FB_MK150.stCode/面板管理/面板公用/PanelTypes.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 参照
FB_MK110的结构,把FB_MK116与FB_MK150的文件头说明、排序号段说明和公共调用口径统一到同一模板。 - 将面板管理相关文档全部改为当前实际实现:型号块只维护
uiPanelOrder,公共FB_Panel统一处理读键和写灯。 - 修复
PanelTypes.st末尾多余END_TYPE与个别注释瑕疵,避免面板公用类型文件保留显式结构错误。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-17(CommonTypes 收口整理)
变更范围:
Code/伺服系统/CommonTypes.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 重写
CommonTypes.st文件头说明,明确当前文件只负责液压轴执行链跨模块共用类型,不再承载旧版伺服全量元数据。 - 将
ST_AxisRefHyd收口为当前工程真实在用的最小液压轴公共边界,只保留轴参与状态、能力边界、目标命令、实际反馈、泵请求和故障码。 - 删除
ST_AxisRefHyd中当前代码未消费的大量旧伺服字段,降低后续维护时“字段很多但没人用”的误导风险。 - 同步细化
E_AxisState、ST_PumpRequest、ST_AxisRefHyd的中文注释,使结构体字段职责、读写边界和用途更直接可读。 - 在开发规范和架构文档中补充
ST_AxisRefHyd的最小公共边界约束,避免后续再次把未使用的历史字段堆回公共类型文件。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-17(温控节拍与面板调度修正)
变更范围:
Code/主程序入口/PRG_MainControl.stCode/温度系统/EK312/FB_EK312.stCode/全局变量/GlobalVars.stCode/实例管理/Instances.stCode/面板管理/面板公用/PanelTypes.stCode/面板管理/面板公用/F_PanelReadKeyByOrder.stCode/面板管理/面板公用/FB_Panel.stCode/面板管理/MK110/FB_MK110.stCode/面板管理/MK116/FB_MK116.stCode/面板管理/MK150/FB_MK150.stCode/面板管理/面板调度/FB_PanelDispatcher.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 修正
PRG_MainControl中 100ms 温控分频逻辑写反的问题,恢复温控节拍计数和顶层温控实际调用。 - 统一温控调用架构为“
PRG_MainControl每 1ms 调用一次FB_EK312,并通过bLogicTick100msIn只在 100ms 节拍上执行一轮温控计算”,同时补齐FB_EK312缺失的输入接口。 - 修正
FB_EK312的超温故障判定方式,改为按位判断报警码,只要包含超温位就立即进入故障态。 - 补上顶层面板调度链:新增
E_PanelModel、ST_PanelIO、FB_PanelDispatcher,并在Instances.st、GlobalVars.st、PRG_MainControl.st中接入顶层调度调用。 - 将面板读键层由“逻辑排序号线性映射输入位”改为“各型号块显式提供真实输入字/位映射”,解决 MK110、MK116、MK150 输入位分散时公共层无法正确表达的问题。
- 先补上基础的面板闭环:面板调度块已可把关键模式键、点动键回灌到
ST_MachineCommand,并把模式灯、温控灯和关键动作灯回写到面板输出。 - 在架构文档中同步记录当前风险:
FB_MachineController仍偏大,后续建议按“模式解析、命令合成、状态汇总”继续拆层。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-17(面板同拍出灯与 EK312 输出收口修正)
变更范围:
Code/面板管理/面板调度/FB_PanelDispatcher.stCode/温度系统/EK312/FB_EK312.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 修正
FB_PanelDispatcher的同一扫描周期时序问题:先读当前按键值并生成命令/灯请求,再在同一扫描内按最新bLamp重算原始输出字,避免面板灯继续沿用上一拍残留值。 - 在开发规范中补充“同一扫描既读键又写灯时,必须用本拍最新灯请求出灯”的约束,避免后续再次把时序写反。
- 将
FB_EK312在停止态、空闲态、故障态对aOutputAddr的清零范围统一扩展为全部 100 个输出地址镜像,消除旧输出残留风险。 - 在架构文档中同步更新面板调度当前执行顺序,以及温控块在非执行态清零全部输出地址镜像的行为说明。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-14
变更范围:
Code/合模系统/锁模/FB_Clamp.stCode/合模系统/调模/FB_MoldAdjust.stCode/注射系统/座台/FB_Nozzle.stCode/注射系统/射胶/FB_Inject.stCode/注射系统/储料/FB_Meter.stCode/顶出系统/托模/FB_Eject.stCode/顶出系统/托模/FB_EjectMode.stCode/顶出系统/中子/FB_Core.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.md
目的与结果:
- 对
FB_Clamp、FB_MoldAdjust、FB_Nozzle、FB_Inject、FB_Meter、FB_Eject、FB_EjectMode、FB_Core8 个执行功能块补齐详细注释。 - 为上述 8 个功能块的
VAR_IN_OUT、VAR_INPUT、VAR_OUTPUT、VAR变量定义补写或细化用途说明,保证所有变量声明都有明确语义。 - 对复位、急停、停止等公共分支增加意图说明,明确状态机优先级和输出收口方式。
- 对各状态段内的“命令输出、完成条件、段切换、超时报警、子块协同”逻辑增加分段注释,便于后续按状态排查异常。
- 在
开发规范与注释约定.md中把这 8 个执行块登记为详细注释基线,在总体架构与代码分析.md中同步记录注释覆盖范围和FB_EjectMode的组合关系。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
2026-04-13
变更范围:
Code/主程序入口/PRG_MainControl.stCode/主程序入口/PRG_MachineController.stCode/模式管理/手动模式/PRG_ManualMode.stCode/模式管理/调模模式/PRG_MoldAdjustMode.stCode/模式管理/自动模式/PRG_AutoCycle.stCode/全局变量/GlobalVars.stCode/实例管理/Instances.stCode/主程序入口/FB_MachineController.stCode/合模系统/锁模/FB_Clamp.stCode/温度系统/EK312/FB_EK312.stCode/伺服系统/液压轴/AxisTypes.stCode/伺服系统/液压轴/FB_HydAxis.stCode/文档/开发规范与注释约定.mdCode/文档/总体架构与代码分析.mdCode/文档/修改记录.mdCode/通用类型/CommonTypes.stCode/温度系统/EK312/EK312Types.stCode/合模系统/锁模/ClampTypes.stCode/合模系统/调模/MoldAdjustTypes.stCode/注射系统/射胶/InjectTypes.stCode/注射系统/座台/NozzleTypes.stCode/注射系统/储料/MeterTypes.stCode/顶出系统/中子/CoreTypes.stCode/顶出系统/托模/EjectTypes.stCode/模式管理/手动模式/FB_ManualMode.stCode/模式管理/调模模式/FB_MoldAdjustMode.stCode/模式管理/自动模式/FB_AutoCycle.stCode/HMI系统/FB_HMIParaInterface.stCode/注射系统/储料/FB_Meter.stCode/顶出系统/中子/FB_Core.stCode/注射系统/座台/FB_Nozzle.stCode/注射系统/射胶/FB_Inject.stCode/顶出系统/托模/FB_Eject.st
目的与结果:
- 把顶层架构统一为
PRG_MainControl单入口,补齐 HMI 同步与机器主控的完整执行链。 - 将旧版
PRG_MachineController、PRG_ManualMode、PRG_MoldAdjustMode、PRG_AutoCycle改为兼容占位,消除重复调度风险。 - 删除旧架构遗留的自动/手动中间全局缓存和多余顶层实例,收口共享边界。
- 修复
FB_Clamp.st、FB_MachineController.st、FB_EK312.st中END_FOR缺少分号的语法问题。 - 新增
伺服系统/液压轴目录,补充独立的轴功能块FB_HydAxis和轴状态类型ST_HydAxisStatus。 - 在
FB_MachineController内部完成合模、调模、座台、射胶、储料、托模基础、托模模式、中子 8 个轴的实例化,并把轴层报警并入模块报警。 - 在开发规范中新增 ST 结束关键字必须带分号的语法约束,作为后续静态检查基线。
- 新增 3 份长期维护文档,并明确后续任何代码变更都要同步更新。
- 将全局变量和全局实例前缀由
g_统一调整为gvl_,同步更新主入口调用链和架构文档。 - 对类型文件、模式路由块、温控块、HMI 参数同步块和主干执行块的文件头/接口注释进行统一补写,按 UTF-8 规范整理注释内容和注释密度。
- 在
总体架构与代码分析.md中新增Code目录树状结构图,便于后续按目录定位模块职责。 - 将
Code目录下无 BOM 的.st文件统一转换为UTF-8 with BOM,修正因编码不统一导致的注释显示异常。 - 修复
FB_AutoCycle.st缺失的局部VAR声明段,并补充FB_EK312.st在停机态、空闲态的加热输出收口逻辑。
已同步更新的文档:
开发规范与注释约定.md总体架构与代码分析.md修改记录.md
