Files
weinviews-unitouch/设计文档/IO页窗口重构施工单.md
T

12 KiB
Raw Blame History

IO 页窗口重构施工单(V2 · 可执行版)

角色:指挥 = 你 / 实施 = wangli / 文档·宏·验收表 = 我 基准工程:unitouch1025.cmtp 依据:工程窗口表(0282)、宏列表(50 条)、158 的窗口属性、149 的元件树 本次范围:IO 相关 24 个窗口(148/149/150 + 151171)。操作弹窗与清洗弹窗列 V2,见 §8。


1. 现状盘点(按工程窗口表)

类别 窗口号 数量 当前结构
系统窗 3~9 5 EB 内置,不动
登录/弹窗 10~17、20 9 基本窗口,不动
区域聚焦弹窗 30~32 3 弹窗,不动
键盘/ASCII/用户窗 50~90 — EB 内置,不动
公共窗口 100 common-window-joyea 1 顶栏 + 左侧导航
主画面 101107、109、112、115121、123、126 15 X1Y1 式样板,不改
IO 段容器 148 清洗-IO、149 上料-IO、150 制丸-IO 3 层叠容器
IO 分组页 151157(制丸)、158165·170·171(上料)、166~169(清洗) 21 层套层:底层 100 / 中层 X?Y5 / 顶层 14x
制丸操作弹窗 177~185 9 V2
上料/清洗页 190202、204210 12 V2
状态/清洗弹窗 215251、260265、280 39 V2

判定方法(wangli 先批量查一遍,5 分钟)

窗口列表右键某页 → 属性 → 看「重叠窗口」三栏。有值 = 层套层;全「无」= 已经是独立页。 把 24 个窗口的结果记在 §10 的表里,作为施工依据。


2. 目标规范(X1Y1 式)

公共窗口 100(系统参数 → 一般 → 公共窗口 = 100)
└─ 功能页 = 一个基本窗口 1920×1080
   ├─ 标题(左上,窗口名)
   ├─ 内容区(表格 / 灯 / 数值)
   ├─ 页签栏(底部,段内分组)
   ├─ 返回/总览(右下)
   └─ 打开窗口时执行 = io-xxx(写组号 LW-300)

不允许:窗口属性里再挂底层/中层/顶层。 允许保留的一层:弹窗用「直接窗口」弹出(这是交互必需,不算层套层),但要设「重叠 = 独立窗口」,且弹窗自己不透明。


3. 需要准备的界面(这是“还缺什么”的正面回答)

# 界面 / 元件 数量 谁做 说明
1 页签栏(DI1-DI2…AI3,10 个按钮) 1 套 wangli 做成一个群组,复制到 21 页。先确认它现在挂在 158 还是 149 上(见 §5 步骤 2)
2 页标题 21 wangli 左上角,文字 = 窗口名(如 上料-IO监控 DI1-2)
3 返回/总览按钮 21 wangli 右下角,功能键 → 切到 148/149/150 对应段
4 IO 段总览页 3 待定 148/149/150 保留为“段入口”(三个大按钮进各分组),或直接删掉由左侧导航进入
5 io-xxx 宏 21 我 每页写自己的组号(§6 已给全表)
6 通讯状态提示条 1 待定 公共窗口顶部,读 LB-10100/LB-10400,断线变红。V3
7 制丸2 预留页 5 暂不做 050 里 20~24 号位是给它留的,等有第二台制丸 PLC 再说

不需要新建的:表格线、灯、位号文字——这些 158 已经全有了,复制即可。


4. 单页标准布局(1920×1080)

区域 元素 位置 (x,y) 尺寸
标题 文字(窗口名) 200, 60 —
内容-左列 灯 + 位号 + 说明 ×16 210, 150 起,行高 44 灯 30×30
内容-右列 灯 + 位号 + 说明 ×16 790, 150 起,行高 44 同上
页签栏 10 个按钮 210~1700, y=960 130×52,间距 8
返回 功能键「返回总览」 1700, 960 140×52

现有 158 就是这套坐标,照抄不用重新量。


5. 施工步骤(第一阶段:样板页 158)

步骤 0:开工前两件事

  1. 系统参数 → 一般 → 公共窗口,确认值为 100。
    • 若是 0/空 → 改成 100。否则清空重叠后顶栏会消失,全工程都受影响。
  2. 文件 → 另存为 → unitouch1025.重构前.cmtp(本地备份,不进库)。

步骤 1:清空重叠窗口

  1. 窗口列表点 158;
  2. 右键 → 属性;
  3. 「重叠窗口」三栏全部改成 (无):
    • 底层 100.common-window-joyea → 无
    • 中层 105.X1Y5 → 无
    • 顶层 149.上料-IO → 无
  4. 确定。

步骤 2:确认页签栏在哪个窗口

  1. 打开 149,在编辑区按 Ctrl+A,看状态栏/选框里有没有那 10 个页签按钮;
  2. 打开 158,同样看一遍。
结果 动作
页签在 149 149 全选 → Ctrl+C → 158 → Ctrl+V
页签在 158 跳过,只搬 149 的灯和表格

步骤 3:搬元件

  1. 打开 149 → Ctrl+A → Ctrl+C;
  2. 切到 158 → Ctrl+V;
  3. 弹「内部粘贴偏移」时选 不偏移(原坐标)。

步骤 4:补标题和返回

  1. 左上角放文字:上料-IO监控 DI1-2;
  2. 右下角放功能键:返回总览 → 动作 = 切换基本窗口 → 149。

步骤 5:挂宏

  1. 右键 158 → 属性 → 宏指令 → 打开窗口时执行 = io-158;
  2. 循环执行 保持停用;
  3. 确定。

步骤 6:编译验收

保存 → 编译 → 在线模拟,对照 §7 的 5 条。全过才进批量。


6. 第二阶段:批量(21 页)

每页固定 4 个动作

动作 怎么做
① 复制 窗口列表右键 158 → 复制 → 新窗口号
② 改名 窗口名改成对应名称(§10 表)
③ 换宏 属性 → 打开窗口时执行 → io-新号
④ 挪高亮 页签栏里把橙色底/选中图移到当前页签

元件地址不要动:所有页的灯都读 LW-310~313,共用同一批本地字。 复制会把 io-158 一起带过去,这是最容易漏的,必须逐页改。

顺序(按批,每批 5 页,批后编译 + commit)

批 窗口 内容
1 158、159、160、161、162 上料 DI/DO(组号 8~12,已确认)
2 163、164、166、167、168 上料 DO + 清洗 DI/DO
3 169、151、152、153、154 清洗 + 制丸
4 155、165、170、171、156、157 剩余(含 4 页待定数据源)

组号对照(io-xxx 宏)

窗口 idx 窗口 idx 窗口 idx
151 1 158 8 166 15
152 2 159 9 167 16
153 3 160 10 168 17
154 4 161 11 169 18
155 5 162 12 165 20
156 6 163 13 170 22
157 7 164 14 171 21

宏模板(只改第一行):

macro_command main()
    short idx = 8
    SetData(idx, "Local HMI", LW, 300, 1)
end macro_command

7. 第三阶段:收尾

  1. 删入口宏里的组号:042/044/045 中各删一行 SetData(byteA, "Local HMI", LW, 300, 1),只留 LW-2 切窗;
  2. 清空 149/148/150:内容全删,窗口先留一周再删;
  3. 更新文档:窗口表、LW-300/310 归属(我做)。

8. 验收清单(每页 5 条)

# 检查 通过标准
1 顶栏 JOYEA/运行/点动/网络状态/用户/时间 都在,位置不变
2 页签 10 个都在,当前页高亮
3 数据 切页后灯与上一页不同
4 点序 现场按一个已知输入,对应那一行亮
5 往返 左侧 5 个导航按钮来回切正常

第 4 条必做:现有灯位序是乱的(WL_0 = LW_Bit 310.1、WL_15 = 310.0),重构时按 310.0 → 311.7 重排,排完必须实测。


9. V2 范围(本次不做,先列出来免得漏)

类别 窗口 处理原则
制丸操作弹窗 177~185 不透明底 + 关闭按钮 + 「重叠 = 独立窗口」
上料/清洗页 190202、204210 与 IO 页同法,单窗口
状态弹窗 215~251 同上,但要确认是否共用同一套元件
IO 弹窗 260~265 同上

10. 施工记录表(wangli 填,每页打勾)

窗口 名称 重叠清空 元件已搬 宏 高亮 验收
158 上料-IO监控DI1-2 ☐ ☐ io-158 ☐ ☐
159 上料-IO监控DI3-4 ☐ ☐ io-159 ☐ ☐
160 上料-IO监控DI5-6 ☐ ☐ io-160 ☐ ☐
161 上料-IO监控DI7-8 ☐ ☐ io-161 ☐ ☐
162 上料-IO监控DO1-2 ☐ ☐ io-162 ☐ ☐
163 上料-IO监控DO3-4 ☐ ☐ io-163 ☐ ☐
164 上料-IO监控DO5-6 ☐ ☐ io-164 ☐ ☐
165 上料-IO监控AI1-2 ☐ ☐ io-165 ☐ ☐
170 上料-IO监控DO7 ☐ ☐ io-170 ☐ ☐
171 上料-IO监控AI3 ☐ ☐ io-171 ☐ ☐
151 制丸-IO监控DI1-2 ☐ ☐ io-151 ☐ ☐
152 制丸-IO监控DI3-4 ☐ ☐ io-152 ☐ ☐
153 制丸-IO监控DI5-6 ☐ ☐ io-153 ☐ ☐
154 制丸-IO监控DO1-2 ☐ ☐ io-154 ☐ ☐
155 制丸-IO监控DO3-4 ☐ ☐ io-155 ☐ ☐
156 制丸-IO监控AI1-2 ☐ ☐ io-156 ☐ ☐
157 制丸-IO监控AI3-4 ☐ ☐ io-157 ☐ ☐
166 清洗-IO监控DI11-12 ☐ ☐ io-166 ☐ ☐
167 清洗-IO监控DI13-14 ☐ ☐ io-167 ☐ ☐
168 清洗-IO监控DO11-12 ☐ ☐ io-168 ☐ ☐
169 清洗-IO监控DO13-14 ☐ ☐ io-169 ☐ ☐

11. 风险与回滚

风险 应对
清空重叠后顶栏消失 先确认公共窗口 = 100;158 试点通过再批量
复制后忘记改宏,全页数据相同 每页验收第 3 条必须过
页签高亮不跟随 每页手动挪,做完当页立即看出错
与其他人同时改同一批窗口 开工前口头冻结 24 个窗口
改坏 每批 5 页 git commit;本地留 重构前.cmtp

12. 待确认(指挥拍板)

# 事项 影响
1 AI 页(156/157/165/171)数据源:数值元件直连 PLC 符号,还是走 LW 中转 决定这 4 页要不要设组号、050 要不要补 AI 分支
2 170(DO7) 读 Local_DO07 还是 Remote_DO21 决定 idx=22 的内容
3 148/149/150 三个段总览页保留还是删 决定 §3 第 4 项
4 页签栏每页复制(10 份)是否可接受 若不接受,只能退回“页签放容器页”,与目标冲突

确认方法(各 30 秒):EB 打开 165,点一个数字显示框看「标签」;打开 170,点一个灯看「标签」。


13. V3 定案(2026-10-27 14:50,101 实测确认)

13.1 标准形态(以 101 为准)

101 X1Y1 的「窗口设置」实测:

窗口名称:X1Y1        编号:101      大小:1920 × 1080
重叠窗口:底层 = 100.common-window-joyea
          中层 = 无
          顶层 = 无

结论:每页 = 100(顶栏) + 本页自己的内容(含左侧导航)。不再有第二、第三层。

13.2 IO 页的差距

层 101(标准) IO 页(现状) 处理
底层 100 100 保留
中层 无 105.X1Y5 清空
顶层 无 149/150(灯)/ 158~171(文字) 清空,内容并入本页
本页内容 导航 + 全部 只有文字或只有灯 合并

13.3 每页 4 个动作(替代 §5 的旧步骤)

  1. 清层:窗口设置里,中层 105 → 无;顶层 149/150 → 无(底层 100 保留);
  2. 搬导航:打开 101,选中左侧导航群组(GP_0、GP_1 及其子元件)→ Ctrl+C → 粘到本页同坐标;
  3. 并内容:把本页对应的文字标签页(158~171)全选复制,贴进带 32 个灯的那一页(149/150)里;两份内容从此只在一个窗口中;
  4. 挂宏:窗口设置 → 宏指令 → 打开窗口时执行 = io-<窗口号>(组号见 §6)。

13.4 顺序调整

先做 158(文字页 + 149 的灯合并),验收通过后,其余页按 §6 批次推进。

注意:合并后每个 IO 页都自带 32 个灯,LW-310~313 仍为共用地址,不要改成各自独立的地址,否则 050 要跟着大改。