Files
weinviews-unitouch/设计文档/IO页窗口重构施工单.md
T
admin 1946782a37 文档:新增 IO 页窗口重构施工单(去层套层,改 X1Y1 式单窗口)
- 21 页清单与组号、样板页流程、批量复制、验收 5 条
- 待定:AI 页数据源、170 DO7 来源、页签栏重复的取舍
2026-10-27 14:09:07 +08:00

6.8 KiB
Raw Blame History

IO 页面窗口重构施工单(V1:去层套层,改 X1Y1 式单窗口)

角色:指挥 = 你 / 实施 = wangli / 文档与宏 = 我 目标版本:unitouch1025.cmtp 范围:只动 IO 监控的 21 个页面(149、151~171)。操作弹窗(177185)与清洗弹窗(215251)留到 V2。


1. 为什么要改

现在 IO 页用的是「窗口重叠」三层结构:

底层 100.common-window-joyea
中层 105.X1Y5
顶层 149.上料-IO

三层同时打开,内容分散在 149(灯、CB、TB)和 158(文字标签)里,导致:

  • 页面内容不完整地属于任何一个窗口,改一页要看三处;
  • LW-300 组号没有任何窗口自己设置,只有 042/044/045 三支入口宏设,切页签数据不换;
  • 一进 158 组号是 9(DI3-4)却显示 DI1-2 的标题,天生错位。

2. 目标结构

公共窗口 100(系统参数 → 一般 → 公共窗口 = 100,自动叠加顶栏)
└─ 每个 IO 页 = 一个独立基本窗口
   ├─ 页签栏(DI1-DI2 … AI3)
   ├─ 表格线与文字标签
   ├─ 灯(读 LW-310~313 或直接读 PLC,见 §6.1)
   └─ 打开窗口时执行 = io-xxx(写 LW-300 组号)

窗口属性里的「重叠窗口」三层全部清空。

3. 页面清单(21 页)

窗口 名称 组号 idx 数据源 状态
151 制丸-IO监控DI1-2 1 050 可做
152 制丸-IO监控DI3-4 2 050 可做
153 制丸-IO监控DI5-6 3 050 可做
154 制丸-IO监控DO1-2 4 050 可做
155 制丸-IO监控DO3-4 5 050 可做
156 制丸-IO监控AI1-2 6 ? 待定
157 制丸-IO监控AI3-4 7 ? 待定
158 上料-IO监控DI1-2 8 050 可做(样板页)
159 上料-IO监控DI3-4 9 050 可做
160 上料-IO监控DI5-6 10 050 可做
161 上料-IO监控DI7-8 11 050 可做
162 上料-IO监控DO1-2 12 050 可做
163 上料-IO监控DO3-4 13 050 可做
164 上料-IO监控DO5-6 14 050 可做
165 上料-IO监控AI1-2 20 ? 待定
166 清洗-IO监控DI11-12 15 050 可做
167 清洗-IO监控DI13-14 16 050 可做
168 清洗-IO监控DO11-12 17 050 可做
169 清洗-IO监控DO13-14 18 050 可做
170 上料-IO监控DO7 22 ? 待定
171 上料-IO监控AI3 21 ? 待定

组号 6、7 原本空着;20~24 在 050 里是注释掉的“制丸2”预留,先征用 20/21/22,制丸2 真做时再往 25 以后排。

4. 施工步骤(wangli 执行)

第 0 步:备份 + 冻结

  1. 把 unitouch1025.cmtp 另存一份 unitouch1025.重构前.cmtp(本地,不进库);
  2. 通知其他人:149、151~171 这批窗口暂停改动。

第 1 步:样板页 158(先做这一页,验收通过再批量)

  1. 打开窗口 158 → 右键「属性」;
  2. 「重叠窗口」→ 底层/中层/顶层 三个下拉全部设为「无」;
  3. 打开 149,框选 CB_0~CB_7、TB_0/TB_1、全部灯(WL_0~WL_31)→ 复制;
  4. 回 158 粘贴,位置与 149 里一致(X/Y 不变,直接覆盖原坐标);
  5. 页签栏(DI1-DI2 … AI3)从 149 复制到 158,贴底部同一位置;
  6. 窗口 158「宏指令 → 打开窗口时执行」→ 选 io-158;
  7. 保存 & 编译 → 在线模拟,逐项对照 §5 验收表。

第 2 步:批量复制

  1. 窗口列表 → 右键 158 → 复制 → 得到新窗口,改号为 159;
  2. 只改三处:① 窗口名;② 页签橙色高亮挪到 DI3-DI4;③ 「打开窗口时执行」换成 io-159;
  3. 重复得到 160~164、165、170、171(上料 10 页);
  4. 同法做制丸 151157、清洗 166169。

复制比重新画快 10 倍,且坐标、样式天然一致。不要手画第 2 遍。

第 3 步:清理

  1. 21 页都独立后,149 清空内容(先别删窗口,留一周观察);
  2. 042/044/045 里删掉 SetData(byteA, "Local HMI", LW, 300, 1) 这一行,只保留 LW-2 切窗;
  3. 确认「系统参数 → 一般 → 公共窗口 = 100」。

第 4 步:验证(21 页逐页过一遍)

见 §5。

5. 每页验收清单(5 条,全过才算完)

# 检查 通过标准
1 顶栏 JOYEA / 运行 / 点动 / 网络状态 / 用户 / 时间 都在,位置不变
2 页签 10 个页签都在,当前页高亮正确
3 数据 切到该页后,灯/数值与上一页不同(说明组号变了)
4 点序 现场按一个已知输入(如“投料完成按钮”),对应那一行的灯亮,不跑到别的行
5 返回 点左侧「初始状态 / 运行 / 配方 / 设备参数 / IO监控」都能正常切走再切回

第 4 条是重构时最容易漏的:现在灯的位序是乱的(WL_0 = LW_Bit 310.1,WL_15 = 310.0),建议重构时按 310.0 → 311.7 顺排,排完必须实测一次。

6. 待确认(需要指挥拍板)

6.1 AI 页(156/157/165/171)的数据从哪来?

050 用的是 unsigned char 读字节,只适合 DI/DO 位组合;AI 是数值(16/32 位),大概率不走 050,而是数值元件直接绑 PLC 符号。

  • 若直连 → 这 4 页不设组号,050 也不用补 AI 分支;
  • 若走 LW 中转 → 要补 050 分支,且要按 REAL 处理。

确认方法:EB 打开 165,点一个数字显示框看「标签」,是 Remote_AI… 之类的 PLC 符号,还是 LW-xxx。

6.2 170(上料 DO7)走哪条

050 第 19 组读的是 Remote_DO21A/21B(远程站),这里只有 8 个点。需要确认 170 是读 Local_DO07 还是 Remote_DO21。

6.3 页签栏 10 份重复

不套层就必须每页自带页签栏,以后改样式要改 10 处。建议:

  • 页签做成群组,复制时整组带走;
  • 颜色/字号统一在样板上定死,之后不再改。

若不能接受,可退回“页签放 149、其余内容独立”——但那样又有一层,与本次目标冲突。

7. 风险与回滚

风险 应对
清空「重叠窗口」后顶栏消失 先确认公共窗口 = 100;158 试点验证后再批量
复制窗口后元件地址串页 复制后逐页核对灯地址(应在 LW-310~313)
与其他人同时改窗口 施工前口头冻结 149/151~171
改坏无法回退 每完成 5 页存一份 cmtp,并 git commit 一次

8. 分工

人 事项
指挥 拍板 §6 三项;现场验收第 4 条(点序)
wangli §4 全部施工;每 5 页提交一次
我 21 支 io-xxx 宏;页面清单与验收表;完成后更新 开发主文件.md 窗口表、地址表.md 的 LW-300/310 段