综合平台编程器项目的远程存储
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

3.8 KiB

当前开发交接

更新日期:2026-08-27。本文件只保留当前工作区、本轮改动、验证结果和后续人工检查项。

当前状态

  • 当前窗口需求.md 的状态文本控件已完成,新增独立 HmiControlType::StatusText,普通 Label 保持固定文本职责
  • M 状态支持一个 M 地址和 OFF/ON 两个显示文本,D 状态支持 Int16/Int32/Float32/Float64 以及最多 16 个连续区间
  • D 区间统一为 [下限, 上限),首个下限和末个上限必须为“不限”,相邻区间必须首尾相接,覆盖整个数值域
  • 状态文本只读;离线从虚拟寄存器读取,真机从 PLC 轮询缓存读取;绑定缺失、仓库不可用、读取失败和 NaN/Inf 统一显示 --
  • 编辑画布固定显示“状态文本”,运行画布显示映射结果;字号、颜色、粗体、斜体复用现有 HMI 外观属性
  • 状态文本配置使用独立 Qt Designer 对话框;属性面板隐藏普通绑定和数值类型编辑入口,改用“状态映射”专用配置按钮

领域与运行链路

  • 新增 HmiStatusBitTextConfigHmiStatusWordTextConfigHmiStatusValueRange 及状态文本领域校验
  • D 状态文本参与完整连续 D 字范围的冲突检查,也参与 16 位 MOVE/ADD/SUB 写入保护
  • HmiRuntimeService::readStatusText() 统一执行 M 位文本映射和 D 半开区间映射,不提供写入接口
  • RuntimeModeService 将 D 状态文本占用的全部连续字加入 PLC 轮询地址和 RegisterWordRange
  • JSON 已升级为唯一 formatVersion: "3.0";状态文本保存为 statusText.source、M 的 offText/onText 或 D 的 ranges
  • 1.02.0 和其他版本工程直接拒绝,不提供迁移、双写、回退或兼容适配

关键文件

  • 领域模型和规则:app/src/domain/hmi_model.h/.cpphmi_control_registry.*project_model.cppproject_limits.h
  • 运行读取:app/src/services/hmi_runtime_service.*runtime_mode_service.cpp
  • 工程持久化:app/src/infrastructure/json_project_storage.*
  • 编辑服务和属性面板:app/src/services/hmi_editor_service.cppapp/src/ui/property_panel_controller.*
  • 状态文本对话框:app/src/ui/status_text_dialog.*
  • HMI 画布和工具栏:app/src/ui/hmi_editor_widget.cppmain_window.cpp/.uitoolbar_icon_factory.*
  • 用户说明:docs/用户使用/状态文本控件说明.md
  • 格式契约:docs/工程格式说明.md

验证结果

  • 13 个 Release Functional 测试目标全部通过:领域、设置、报警、HMI 编辑、逻辑编辑、离线仿真、工程管理、监控、运行包、运行模式、运行面板、PLC 对话框、PLC 运行时
  • 状态文本专项覆盖 M OFF/ON 映射、D 四类型区间边界、区间间隙/重叠、整数边界、NaN/Inf、只读约束、16 区间上限、JSON 往返和旧 2.0 拒绝
  • 运行模式专项覆盖 Double 状态文本的 D70~D73 轮询地址及四字 RegisterWordRange
  • git diff --check 已通过;当前尚未连接真实 PLC,本轮功能为只读映射并复用既有缓存/轮询链路,不需要改写设备
  • Release 主程序已在本轮最终代码上重新构建;设置 Qt offscreen 环境后启动 3 秒仍保持事件循环,验证结束已关闭进程

工作区说明

  • 保留用户已有的 AGENTS.md 修改和未跟踪 Word 临时文件,不覆盖、不回退
  • 本轮不提交 Git,等待用户确认后再决定提交边界

后续人工检查

  • 打开 HMI 页面添加“状态文本”,确认属性面板的专用配置按钮、M/D 切换和区间表布局在常用缩放下无重叠
  • 离线运行写入虚拟 M/D,确认 M OFF/ON 和 D 在 30、80 边界的显示结果;停止运行后恢复编辑占位词
  • 设备可用时在 STOP 状态读取原值,确认状态文本使用的 M/D 被轮询读回;测试只读,不向设备写入状态文本数据