Files
weinviews-unitouch/设计文档/开发主文件.md
T

397 lines
28 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# JOYEA 触摸屏开发主文件(CMT2167X / EasyBuilder Pro 6.10)
工程目录:`E:\AiCodeGitea\weinveiw-touch` | 远程:`http://124.220.63.9:30000/admin/weinviews-unitouch.git`
## 1. 目标与环境
- 硬件:WEINTEK **CMT2167X**,1920×1080,arm64,24VDC。
- 软件:**EasyBuilder Pro 6.10.02.421**。
- 通讯/设备:与现有 `unitouch` 工程一致(不改 PLC 与地址映射)。
## 2. 工程资产
| 文件 | 说明 |
| --- | --- |
| `unitouch.cmtp` | EB Pro 工程文件 |
| `lwaddr.xls` / `lwaddr.csv` | 系统地址大全(1429 条,查系统寄存器用) |
| `制丸线HMI界面UniTouch布局202500915.xd` | XD 设计源(18 画板) |
> `unitouch.cxob`(编译输出)、`unitouch.debug`、`unitouch.cmtp.bak1~3` 为本地文件,已加入 `.gitignore`,不再入库。
XD 画板:`A_start`、`B_PID`、`C_运行1~3`、`D_点动1/2`、`E_配方1~3`、`F_设备参数2`、`G_清洗主机1`、`H_报警1`、`I_数据1~3`、`J_关于`。
## 3. 窗口结构
| 窗口 | 名称 | 用途 |
| --- | --- | --- |
| 4 | — | 白色底窗口(层叠底层) |
| 5~9 | — | EB Pro 系统窗口(Device Response / HMI Connection / Password Restriction / Storage / Backup),不改内容 |
| 10 | 登陆和入口画面 | 登录 + 入口;窗口开启执行 `logout` |
| 11 | 弹出 | 无权限提示弹窗(600×300,位 `LB-110`) |
| 12 | 修改时间 | 修改时间弹窗(位 `LB-120`) |
| 13 | 系统IP和关于 | 关于 + 设置(1200×800 弹窗,位 `LB-123`) |
| 14 | 用户管理 | 用户管理弹窗(位 `LB-122`,开启宏 `usr-init`) |
| 15 | 用户删除确认 | 删除确认弹窗(位 `LB-121`) |
| 16 | 空页面弹窗 | 无内容提示弹窗(600×300,位 `LB-124`) |
| 17 | 超管登陆 | 管理员登录弹窗(600×360,位 `LB-125`) |
| 20 | 点检check | 点检画面(可退出,暂无功能) |
| 100 | `common-window-joyea` | 公共窗口(顶部栏/导航/常驻元件) |
| 101~128 | `X1Y1` ~ `X4Y7` | 主画面,共 28 个 |
| 30~33 | — | X2Y2 区域聚焦弹窗(`LW-50` 切换:30 物料输送 / 31 浸膏称量 / 32 混合机 / 33 软材料斗) |
## 4. 命名与导航
- 画面名:`X{段}Y{功能}_{工艺段}_{功能}`
- **X(工艺段)**:`X1 配料/上料`、`X2 上料清洗`、`X3 制丸`、`X4 制丸清洗`
- **Y(功能)**:`Y1 初始状态`、`Y2 运行`、`Y3 配方`、`Y4 设备参数`、`Y5 I/O监控`、`Y6 报警`、`Y7 数据趋势`
- **窗口号**:`WIN = 101 + (X-1)*7 + (Y-1)`(101~128)
- **导航机制**:按钮宏把 X/Y 与目标窗口号写入 `LW-0/1/2`,由 **PLC 控制元件「切换基本窗口」**(触发地址 `LW-2`,回写 `LW-3`)执行切窗。
- 顶部「运行/点动」为全局状态,暂不参与 X/Y 导航。
### 4.1 权限分配总表
> 已单独整理:见同目录 `权限分配表.md`(三级权限 ●/○/× 与 EB Pro 设置方法)。
## 5. 地址规划
> 已单独整理:见同目录 `地址表.md`(导航/公共、弹窗位、控制地址、命令/结果码、网络版本、IP 配置与互锁、拓扑)。
## 6. 宏清单
> 已单独整理:见同目录 `宏指令.md`(全部宏逐行注释,直接复制粘贴)。
## 7. 各页面要点
### 7.1 登录页(10 号窗)
- 项目选单(来源=用户账号)→ 写 `LW-102`;密码字符输入(勾系统键盘)→ `LW-112`。
- admin 登录(隐藏入口):登录页 logo 上盖**透明功能键**(安全页「最少按键时间」= 3 秒)→ `admin-open`;10 号窗放「直接窗口」`LB-125`→17,弹窗里填 `admin` + 密码 → `admin-login`(名称登入),取消 → `admin-close`。
- 底部提示用文字元件 + 字符串表,编号 `LW-261`(由登录宏直接写入)。
- 「登录」按钮 → `btn-login-index`。
- 窗口属性 → 「打开窗口时执行」= `logout`(每次回来强制重新登录)。
- 顶部账户显示读 `PLW-10754`,上面盖透明功能键 → 长按 1s(安全页最少按键时间=1)→ `logout`。
### 7.2 公共窗口(100 号窗)
- 顶部:品牌、页签、`?`/首页/用户/报警图标;右上角「日期/时间」元件。
- PLC 联机:触发条件(3 台联机位 AND)→ `LB-131` → 位状态指示灯。
- 直接窗口 ×6:`LB-110`→11、`LB-120`→12、`LB-121`→15、`LB-122`→14、`LB-123`→13、`LB-124`→16。
- 入口按钮:点检(功能键→切换基本窗口=20);关于(仅 A,安全页操作类别=类别 A);用户管理(`user-open`)。
- X/Y 导航按钮:`btn-x1~x4`、`btn-y1~y7`。
### 7.3 用户管理(14 号窗,1200×800 弹窗)
见同目录 `宏指令.md` 的 `usr-*`:列表(`LW-102`)+ 用户名/密码 + 4 个权限开关(`LW_Bit-10300~10303`)+ 读取权限/修改权限/修改密码/删除/新增/关闭 + 结果 `LW-101`。
只读管理员(B/admin)可用;改权限前先「读取权限」。
### 7.4 点检(20 号窗)
- 只做了画面(可退出),**暂无功能、暂不设计**;不放宏。
- 「关闭」等功能键直接切窗口(未用宏)。
### 7.5 关于 / 设置(13 号窗,1200×800 弹窗)
- 上方:关于信息,字段与地址见 5.7;`LB-123` 弹窗;入口仅工程师(A)。
- 下方「设置」区(全部存 `RW`,掉电保持):
- 本机角色 → `RW-60`(1 上料屏 / 2 制丸A屏 / 3 制丸B屏);
- 制丸线选择 → `RW-61`(1 A 线 / 2 B 线,上料屏用);
- HMI IP / 掩码 / 网关 → `RW-20`~`31`(备屏/换屏用;HMI 固定 IP 必填);
- 上料 PLC IP → `RW-40`~`43`;制丸A PLC IP → `RW-44`~`47`;制丸B PLC IP → `RW-48`~`51`;
- 「应用」→ `net-apply`;窗口开启时执行 `net-read`(进窗自动带出当前值,不需要单独做「读取当前」按钮)。
- 上料屏在 13 号窗设置区放「A/B 切换」按钮 → `line-ab-switch`(只切 `设备5` 的 IP 并重连;**仅本机角色=1 生效**,A/B 屏误点无效);旁边放当前线别显示(读 `RW-61`)。
- **现场无需 EB**:换屏/换 PLC 只填这一页,点「应用」即可。
### 7.6 修改时间(12 号窗)
- 6 个数值输入(`LW-40`~`45` 秒/分/时/日/月/年)+ 设定/取消。
- 入口:100 号窗时钟上透明功能键(仅 B)→ `open-time`。
### 7.7 主画面(101~128)设计
每个画面 = 某工艺段 × 某功能组合,底图按 XD/`pic` 素材放置;其余页面待逐个补。
#### 7.7.1 X1Y1(配料/上料 · 初始状态)完整操作表
> 地址栏留空(`__`)处待 PLC 工程师填写;元件先建好、地址后补。
**布局(1920×1080;内容区 x 110~1900,y 90~1000)**
| # | 区域 | 控件 | 元件 | 地址 | 位置(x,y) | 尺寸 |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | 批次行 | 「产品配方」标签 | 文字 | — | 190,110 | — |
| 2 | 批次行 | 产品配方 | `数值输入` | `LW-__` | 250,105 | 210×44 |
| 3 | 批次行 | 选择 | `功能键` / `位状态设置` | `LB-__` | 470,105 | 90×46 |
| 4 | 批次行 | 「料次」标签 | 文字 | — | 580,110 | — |
| 5 | 批次行 | 料次 | `数值输入` | `LW-__` | 640,105 | 100×44 |
| 6 | 批次行 | 「批号」标签 | 文字 | — | 760,110 | — |
| 7 | 批次行 | 批号(存储) | `字符输入`(8 words) | `RW-__` | 820,105 | 220×44 |
| 8 | 批次行 | 「报警信息」标签 | 文字 | — | 1060,110 | — |
| 9 | 批次行 | 报警信息 | `报警条`(一行滚动) | 事件登录 | 1140,105 | 500×44 |
| 10 | 批次行 | 变频器复位 | `功能键` / `位状态设置` | `LB-__` | 1700,105 | 180×46 |
| 11 | 流程1组 | 节点1~6 | `多状态指示灯` | `LW-__` ×6 | x=680/850/1020/1190/1360/1530,y=300 | 160×56 |
| 12 | 流程1组 | 节点1~6 修正 | `数值输入`(仅工程师) | 同节点地址 | 同 x,y=362 | 100×40 |
| 13 | 状态区 | 圆形开关 | `位状态指示灯` | `LB-__` | 700,430 | 80×50 |
| 14 | 状态区 | 进度条 | `棒图`(0~100) | `LW-__` | 250,470 | 400×20 |
| 15 | 状态区 | 「投料 / 输送1」标签 | 文字 | — | 250,435 | — |
| 16 | 流程2组 | 节点7~12 | `多状态指示灯` | `LW-__` ×6 | 同 x,y=560 | 160×56 |
| 17 | 流程2组 | 节点7~12 修正 | `数值输入`(仅工程师) | 同节点地址 | 同 x,y=622 | 100×40 |
| 18 | 状态区 | 圆形开关 | `位状态指示灯` | `LB-__` | 700,690 | 80×50 |
| 19 | 状态区 | 进度条 | `棒图`(0~100) | `LW-__` | 250,730 | 400×20 |
**节点状态配色(多状态指示灯「状态设置」)**
| 值 | 含义 | 颜色/图片 |
| --- | --- | --- |
| 0 | 未开始 | 灰 |
| 1 | 进行中 | 绿 |
| 2 | 已完成 | 蓝 |
| 3 | 异常 | 红 |
**操作步骤(从上到下逐个做)**
**0. 准备**
1. 打开 **101 号窗口**(X1Y1)。
2. `工程文件 → 地址`(地址标签库)建标签(地址先用占位,PLC 给了再换):
产品配方 `LW-330`、料次 `LW-331`、批号 `RW-0`、节点状态 `LW-300`~`311`、进度 `LW-320`/`321`、圆形开关 `LB-300`/`301`、选择 `LB-311`、变频器复位 `LB-310`。
**① 批次信息行(y≈105)**
3. `元件 → 绘图 → 文字/批注` 放 4 个标签:「产品配方」`(190,110)`、「料次」`(580,110)`、「批号」`(760,110)`、「报警信息」`(1060,110)`。
4. 产品配方:`元件 → 输入 → 数值`,地址 `LW-330`,`(250,105) 210×44`;属性「数值输入」页勾 **系统键盘**。
5. 料次:`数值输入`,地址 `LW-331`,`(640,105) 100×44`,勾系统键盘。
6. 批号:`元件 → 输入 → 字符`,地址 **`RW-0`**、字长 8,`(820,105) 220×44`,勾系统键盘(`RW` 掉电保持 → 自动保存)。
7. 「选择」:`元件 → 按钮/开关 → 功能键`,动作选 `位状态设置` 或 `宏指令`,写 `LB-311`,`(470,105) 90×46`;「图片」标签可设按钮底图。
8. 「变频器复位」:`功能键`,写 `LB-310`,`(1700,105) 180×46`。
9. 报警信息:`元件 → 报警 → 报警条`,`(1140,105) 500×44`(报警来源见 ⑥)。
**② 流程节点(两组 × 6)**
10. `元件 → 指示灯 → 多状态指示灯`,放 6 个:`x = 680 / 850 / 1020 / 1190 / 1360 / 1530`,`y = 300`,`160×56`;地址 `LW-300`~`305`。
11. 「状态设置」给 4 个状态配图/色:`0` 灰(未开始)、`1` 绿(进行中)、`2` 蓝(完成)、`3` 红(异常)。
12. 复制这 6 个到第二组 `y = 560`,地址改 `LW-306`~`311`。
**③ 节点人工修正(显示+可改都用同一地址)**
13. `元件 → 输入 → 数值`,放在每个节点下方:同 `x`、`y = 362`、`100×40`;地址=对应节点状态字(`LW-300`~`305`)。
14. 属性 **「安全」页 → 操作类别 = 类别 A(工程师)**(只有工程师能改);可勾 **「操作前先确认」** 防误改。
15. 第二组同样:`y = 622`,地址 `LW-306`~`311`。
**④ 圆形开关**
16. `元件 → 指示灯 → 位状态指示灯`,`(700,430) 80×50`,地址 `LB-300`;状态 `0`/`1` 各配一张圆图(灰/绿)。
17. 第二组 `(700,690)`,地址 `LB-301`。
**⑤ 进度条**
18. `元件 → 图例 → 棒图`,`(250,470) 400×20`,地址 `LW-320`,方向横向、范围 `0~100`、绿色。
19. 上方加文字「投料 / 输送1」`(250,435)`。
20. 第二组 `(250,730)`,地址 `LW-321`。
**⑥ 报警**
21. `工程文件 → 事件/报警` 新建报警条目(地址、触发条件、显示文字、颜色)。
22. 本页用 **报警条**(步骤 9)做滚动提示;完整列表与**确认**放在 **Y6 报警表页**(见 7.7.2)。
**⑦ 收尾**
23. 各元件「安全」页按需限制操作类别(只显示/只工程师可改)。
24. 保存编译;等 PLC 地址到位后,把占位地址逐个替换即可,元件与布局不动。
**底部 X 页签**:由 100 号公共窗口的 4 个功能键实现(配料/上料、上料清洗、制丸、制丸清洗 → 切换基本窗口)。
#### 7.7.2 Y6 报警表页面(106 / 113 / 120 / 127)
> Y6 = 报警功能;各工艺段各有一个报警表页:`106`(配料/上料)、`113`(上料清洗)、`120`(制丸)、`127`(制丸清洗)。
| 控件 | 元件 | 关键设置 |
| --- | --- | --- |
| 报警列表 | **报警显示**(或事件显示) | 显示全部/未确认报警,**一行一条**,可上下滚动/翻页 |
| 顶部滚动条 | **报警条** | 一行滚动显示最新报警(同 X1Y1 的报警行) |
| 报警确认 | 报警显示元件属性 → **「确认地址」** = `LW-__` | 操作员确认时,系统把该报警的**确认值**写入此地址(PLC 可读,用于联动/记录) |
| 清除(当前记录) | `位状态设置` → **`LB-9021`**(OFF→ON 重置当前事件记录) | 系统位 |
| 删除事件记录文件 | `位状态设置` → **`LB-9023`**(删除 HMI 内存全部事件记录) | 系统位 |
| 翻页 / 确认按钮 | 报警显示元件自带按钮,或自定义功能键 | — |
**做法**
1. `工程文件 → 事件/报警` 里逐条建立报警(地址、触发条件、文字、颜色、类别)。
2. 在 Y6 页放 **报警显示** 元件(多行列表);X1Y1 等页放 **报警条** 元件(一行滚动)。
3. 报警显示的属性里设 **确认地址**,并为每条报警配**确认值** → 操作员确认后写回该地址给 PLC。
4. 需要"清除"按钮就放 `位状态设置` 写 `LB-9021`(重置)/`LB-9023`(删除文件)。
5. 4 个 Y6 页可共用同一套事件登录,也可按**类别**过滤(配料/上料、上料清洗、制丸、制丸清洗各自的报警)。
#### 7.7.3 X2Y2 分区聚焦弹窗(4 区)
> 目标:点屏幕上某个区域 → 弹出只含该区域线条/阀门的不透明弹窗,遮住其它内容、降低视觉负担;**不需要权限**。
| 分区 | 弹窗窗口号 | `LW-50` | 宏 |
| --- | --- | --- | --- |
| 1 物料输送管道系统 | 30 | 30 | `x2y2-focus-area1` |
| 2 浸膏输送和称量系统 | 31 | 31 | `x2y2-focus-area2` |
| 3 混合机 | 32 | 32 | `x2y2-focus-area3` |
| 4 软材缓存料斗(随制丸机清洗) | 33 | 33 | `x2y2-focus-area4` |
| 关闭 | — | 0 | `x2y2-focus-area-close` |
**元件做法**
1. X2Y2 图上按区域盖 4 个**透明功能键**(`pic/transparent.png`、描述留空、矩形互不重叠、右键「移到最前」)→ 动作 = 触发宏指令 → `x2y2-focus-area1`~`area4`;
2. X2Y2 放一个**间接窗口**:读取地址 `LW-50`、位置/尺寸 = **1763×930**(与弹窗一致,如 `x=110, y=90`);透明度 0%、「重叠」= 独立窗口;
3. 30~33 各弹窗:不透明背景 + 本区域放大图/阀门状态 + 「关闭」功能键(→ `x2y2-focus-area-close`);
4. X2Y2 窗口属性 → 宏指令 → **「打开窗口时」执行 `x2y2-focus-area-close`**(进页默认无弹窗);
5. 区域 4 因无法独立排水,画成"软材缓存料斗 + 制丸机主体"合并图。
#### 7.7.3.1 分区聚焦弹窗操作步骤
**准备**:4 个分区(颜色/框)= ① 红 `物料输送管道系统`、② 蓝 `浸膏输送和称量系统`、③ 黑 `混合机`、④ 绿 `软材缓存料斗`;对应窗口 30~33、宏 `x2y2-focus-area1~4`。
1. **建 4 个弹窗窗口**:30/31/32/33,尺寸 **1763×930**(原设计 1763×930.5,EB Pro 取整),**不勾公共窗口**;可勾「模态」。
2. **每个弹窗内容**:
- 不透明底(矩形填白或铺一张不透明底图)→ 遮住后面内容;
- 本区**放大管线图**(素材后续提供,直接替换图片即可);
- 本区**状态元件**(阀门指示灯/数值)——地址与主画面**同一批**,状态自动一致;
- 「关闭」功能键 → 类型 `宏指令` → `x2y2-focus-area-close`。
3. **X2Y2 主画面**:
- 铺整屏管线底图;
- 放一个 **间接窗口**元件:读取地址 `LW-50`、位置/尺寸 = **1763×930**(如 `x=110, y=90`)、透明度 0%、**「重叠」= 独立窗口**;
- 放 **4 个透明功能键**(图片 `pic/transparent.png`、描述留空),分别盖在 4 个分区上(**互不重叠**、右键「移到最前」)→ 动作 = 触发宏指令 → `x2y2-focus-area1`~`area4`。
4. **X2Y2 窗口属性** → 宏指令 → **「打开窗口时」执行 `x2y2-focus-area-close`**(进页默认无弹窗)。
5. **原屏状态照常**:主画面的指示灯/数值不用改,与弹窗读同一地址 → 两边同步。
6. **测试**:点分区① → 弹出 30;看阀门状态;点「关闭」→ 收起;再点② → 弹出 31;主画面状态始终可见。
> 触发元件要点:透明键只负责"点",显示交给**间接窗口 `LW-50`**;`x2y2-focus-area-close` 写 `LW-50=0` 即收起。
#### 7.7.3.2 各聚焦弹窗内容(30~33)
| 窗口 | 分区 | 标题文字 | 主体图 | 状态元件 |
| --- | --- | --- | --- | --- |
| 30 | ① 红 | 区域1 · 物料输送管道系统 | 该区放大管线图(素材后补) | 阀门/泵指示灯 + 数值 |
| 31 | ② 蓝 | 区域2 · 浸膏输送和称量系统 | 同上 | 同上 |
| 32 | ③ 黑 | 区域3 · 混合机 | 同上 | 同上 |
| 33 | ④ 绿 | 区域4 · 软材缓存料斗(随制丸机清洗) | 同上 | 同上 |
**每个弹窗统一布局**
1. **不透明底**:矩形填白(或铺一张不透明底图)→ 完全遮住主画面,降低视觉负担。
2. **标题**:左上角文字(区域号 + 名称)。
3. **主体**:该区**放大管线图**(你后续提供的聚焦素材,直接替换图片即可)。
4. **状态元件**:阀门指示灯(`位状态指示灯`)、泵/电机指示灯、必要数值——**地址与主画面同一批**,两边状态自动同步。
5. **「关闭」功能键**(右下):类型 `宏指令` → `x2y2-focus-area-close`(写 `LW-50=0` 收起)。
**共性约定**
- 弹窗**不复制数据、不加新宏**(只用 `x2y2-focus-area1~4` / `x2y2-focus-area-close`);放大图到位后替换图片,元件与布局不动。
- 弹窗尺寸 = **1763×930**(30/31/32/33 四窗统一);间接窗口 `LW-50` 的位置/尺寸与之匹配(建议同为 `1763×930`,如 `x=110, y=90`)。
- 分区框与编号(①②③④、红/蓝/黑/绿)由**素材**体现,不在 EB Pro 里画。
### 7.8 弹窗规范(统一用直接窗口)
- 所有弹窗(11/12/13/14/15)都用 **直接窗口**元件,放在 **100 号公共窗口**,由触发位置位弹出。
- **关键**:直接窗口元件属性里的 **「重叠」必须选「独立窗口」**(cMT/cMT X),否则子窗口画在公共窗口那一层,会被主画面元素盖住;选「独立窗口」后显示在当前画面之上。
- 弹窗内容做在各自窗口里;关闭用宏清位(如 `close-msg` 清 `LB-110`)。
| 弹窗 | 触发位 | 窗口号 |
| --- | --- | --- |
| 无权限提示 | `LB-110` | 11 |
| 修改时间 | `LB-120` | 12 |
| 关于 | `LB-123` | 13 |
| 用户管理 | `LB-122` | 14 |
| 删除确认 | `LB-121` | 15 |
| 无内容提示 | `LB-124` | 16 |
| 管理员登录 | `LB-125` | 17 |
## 8. 素材清单(`pic/`)
| 素材 | 说明 |
| --- | --- |
| `common-bg.png` / `bottom-y.png` | 早期背景与按钮底板 |
| `white-bg.png` | 1920×1080 纯白底 |
| `transparent.png` | 240×48 全透明(透明功能键底图) |
| `start-bg.png` / `start-equip.png` | 启动屏厂区航拍 / 设备渲染 |
| `pid-illustration.png` / `btn-back.png` / `btn-next.png` / `pid-logo.png` | 点检页素材(取自 XD `B_PID`) |
| `lwaddr.csv` | 系统地址大全 |
## 9. 多线共屏:完整方法与流程
### 9.1 分工与连接
| 屏幕 | 角色 `RW-60` | 连哪两台 PLC | 能看到 |
| --- | --- | --- | --- |
| 上料屏 | 1 | 上料(设备4)+ 制丸 A 或 B(设备5,可切) | 上料段 + 当前选的制丸线 |
| 制丸A屏 | 2 | 上料(设备4)+ 制丸A(设备5) | 上料段 + A 线 |
| 制丸B屏 | 3 | 上料(设备4)+ 制丸B(设备5) | 上料段 + B 线 |
- 用户组:C → X1/X2(绑设备4);D → X3/X4(绑设备5);`admin` 全开;
- 制丸A/B 互不可见:各屏只连自己那条线 + 上料;唯一例外是上料屏(D 登录可切 A/B)。
### 9.2 EB Pro 一次性改造
1. **设备列表**:确认以太网 PLC 占设备4/设备5;X1/X2 与 C 组数据绑设备4,X3/X4 与 D 组数据绑设备5。
2. **13 号窗设置区**(`RW` 全部掉电保持):
- 本机角色 `RW-60`(1 上料 / 2 制丸A / 3 制丸B)、线别 `RW-61`(1=A / 2=B);
- HMI IP/掩码/网关 `RW-20~31`(备屏/换屏用;HMI 固定 IP 必填);
- 上料 IP `RW-40~43`、制丸A IP `RW-44~47`、制丸B IP `RW-48~51`;
- 「应用」= `net-apply`(勾「当 HMI 启动时即执行一次」);进窗自动执行 `net-read`。
3. **宏**:见同目录 `宏指令.md`(`main-init` 写 `LW-70~73` 位图、`btn-x/y`、登录内联版、`logout`、`user-open`/`usr-*`、`about-*`、时间三支、`close-msg`/`close-nopage`、`admin-*`、`net-read`/`net-apply`/`line-ab-switch`)。
4. **弹窗**:11/12/13/14/15/16/17 的直接窗口都放 100 号公共窗,属性「重叠」= 独立窗口。
5. **切换按钮暂放 13 号窗设置区**:「A/B 切换」功能键 → `line-ab-switch`(仅 role=1 生效)+ 当前线别显示(读 `RW-61`);后续再移到制丸页给 D 用(通讯灯 `LB-10400` 一并加)。
### 9.3 装机流程(每台屏,刷同一工程)
| 步骤 | 上料屏 | 制丸A屏 | 制丸B屏 |
| --- | --- | --- | --- |
| 1 | 设 HMI 网络 IP(屏系统设置或 13 号窗) | 同 | 同 |
| 2 | 13 号窗角色 = 1 | = 2 | = 3 |
| 3 | 填 上料 IP + 制丸A IP + 制丸B IP | 填 上料 IP + 制丸A IP | 填 上料 IP + 制丸B IP |
| 4 | 线别选 A(或 B) | 自动锁 A | 自动锁 B |
| 5 | 点「应用」 | 同 | 同 |
| 6 | 查 `LB-10100`(上料)、`LB-10400`(制丸)都 ON | 同 | 同 |
### 9.4 现场运行
- 上料屏切制丸线:暂在 13 号窗点「A/B 切换」→ 等 `LB-10400` ON 再操作(默认 A、重启回 A);能开 13 号窗的是工程师 A / admin,后续移到制丸页后 D 组可用;
- 制丸A/B 屏天然只看本线;admin 在制丸屏也切不动(`line-ab-switch` 角色校验);
- C 组只看上料段;工程师 A 看「关于/设置」;管理员 B 用「用户管理/改时间」。
### 9.5 换件流程
| 场景 | 操作 |
| --- | --- |
| HMI 屏坏 | 备件刷同工程 → 13 号窗设角色/线别/各组 IP → 应用 |
| PLC 坏、IP 变 | 在对应屏 13 号窗改该线 IP(上料屏改 A 或 B 组)→ 应用 |
| 整线换 PLC(IP 不变) | 不用动 |
| 屏挪到另一条线(A↔B 换屏) | 13 号窗把角色 `RW-60` 改 2↔3,核对本线 IP;**HMI 是固定 IP:一并把 HMI IP 改成新位置规划的 IP**(系统设置或 13 号窗 `RW-20~31`)→ 应用 |
### 9.6 注意
- PLC 在线改 IP 只支持本机以太网设备 4 及以后(1~3 是 COM);
- 切换 A/B 后要等 `LB-10400`=ON 再操作(防旧数据);
- A/B 屏不要给对方的线留 IP/加设备槽;要"上料屏同时看 A+B"才加设备6(另案);
- 系统弹窗可用 `LB-11963`/`LB-11964` 禁掉。
## 10. 变更记录(里程碑)
| 日期 | 内容 |
| --- | --- |
| 09-23 | 解包分析现有工程;确定机型/分辨率/运行时与 XD 设计源 |
| 09-23 | 建立窗口骨架与命名规则(X1~X4 × Y1~Y7 → 101~128) |
| 09-23 | 导航机制落地:宏算 `LW-2` + PLC 控制元件切换基本窗口 |
| 09-23 | 完成登录页、权限控制(`LW-9222`)、按钮宏与无权限弹窗 |
| 09-24 | 完成用户管理(索引命令)、点检页、关于页、修改时间、PLC 联机状态、登录提示框 |
| 09-24 | 文档精简;准备开始 28 个主画面的设计 |
| 09-25 | 按钮宏全部改为逐行注释版(`btn-x1~x4`/`btn-y1~y7`,其余宏同步补注释);新增「该页面无内容」提示:`LB-124`→16 号窗 + `close-nopage`;`LW-70`~`73` 页面存在位图由 `main-init` 初始化 |
| 09-25 | X 段更名:X2 上料清洗、X3 制丸、X4 制丸清洗(X1 配料/上料不变);权限调整:X2=A/B/C、X4=A/B/D(X1=A/B/C、X3=A/B/D,Y1~Y7 不变) |
| 09-25 | 登录提示加速:`btn-login-index` 的 `DELAY(2000)` 改为「清旧结果 + 0.3s 读 + 0.3s 补读一次」,并在点登录时先清 `LW-261` 旧提示 |
| 09-25 | Y6/Y7 开放给 C、D 用户组:权限改为 A/B/C/D(Y4/Y5 仍仅 A/B,Y1~Y3 不变) |
| 09-25 | 新增「权限分配总表」(4.1):按用户组列出全部已开发功能的权限 |
| 09-25 | 权限表改为三级:● 拥有权限 / ○ 仅可见 / × 不可见,并补充 EB Pro 对应设置方法(操作类别、无权限时隐藏) |
| 09-25 | 修正登录/点检入口:制丸 D 登录后落到 X3Y1(段名调整后遗漏,原为 X2Y1) |
| 09-25 | 文档整理:删除未使用内容(`insp-next`、`LW-260`、cxob 资产条目);合并重复的 7.7 标题;修正 7.3/7.4 失效引用 |
| 09-25 | 登录页加用户名输入框 `LW-104`:填名称(admin)按名称登入,留空按下拉索引登入;`logout` 回登录页时清空用户名/密码框 |
| 09-25 | admin 登录改为隐藏入口:登录页 logo 长按 3 秒 → 弹 17 号窗名称登入(`LB-125` + `admin-open`/`admin-login`/`admin-close`);撤销可见用户名框,`btn-login-index` 恢复纯索引登入 |
| 09-25 | 新增 5.8 通用程序 IP 在线设置:HMI IP/掩码/网关(`LW-9129` 等 + `LB-12094`)、PLC IP(设备 4+:`LW-9600` 等 + `LB-1007x`)及现场设置页做法 |
| 09-25 | 网络设置落在 13 号窗(关于页):`RW-20~35` 暂存,新增 `net-read`/`net-apply` 宏,7.5/5.8 同步 |
| 09-25 | 窗口名按实际工程同步(10 登陆和入口、11 弹出、13 系统IP和关于、15 用户删除确认、16 空页面弹窗、17 超管登陆、20 点检check) |
| 09-25 | 宏清单与工程实际对齐:`user-open`、`usr-delete*`、`about-*`;新增宏编号警告(`msg-login`=ID 031 被 `btn-login-index` 写死) |
| 09-25 | 去掉高危数字宏号:`msg-login` 改由触发位 `LB-126` 驱动(执行条件 ON、结束自清);`btn-login-index`/`admin-login` 只置 `LB-126`;`net-apply` 用「HMI 启动时执行一次」 |
| 09-25 | 点检页只保留画面(可退出、暂不设计功能):删除 `insp-init` 宏及相关描述 |
| 09-25 | 确认保留 `logout`、废弃 `log-out`;`net-read`/`net-apply` 同步新 RW 规划(RW-40~51、RW-60 角色、RW-61 线别)并新增 `line-ab-switch` |
| 09-25 | 5.8 补充切换互锁:设备通讯状态 `LB-10100`/`LB-10400`、错误码 `LW-9403`/`9404`、禁止系统弹窗 `LB-11963`/`11964` |
| 09-25 | 登录提示改为内联(零延迟):映射写进 `btn-login-index`/`admin-login`,删除 `msg-login` 与 `LB-126` |
| 09-25 | 多线共屏防串线:`line-ab-switch` 增加角色校验,仅上料屏(`RW-60`=1)可切 A/B;制丸A/B 屏线别由角色锁定 |
| 09-25 | 新增 5.9 拓扑图(3 PLC × 3 HMI × 2 设备槽的逻辑连接) |
| 09-25 | 新增第 9 章「多线共屏完整方法与流程」:分工/一次性改造/装机/运行/换件/注意;变更记录顺延为第 10 章 |
| 09-25 | 上料屏制丸线默认 A:`main-init` 开机写 `RW-61`=1,`net-apply` 线别=0 按 A;只有人工切换才到 B |
| 09-25 | 去掉多余的「读取当前」按钮:13 号窗打开时已自动执行 `net-read` |
| 09-25 | A/B 切换按钮暂放 13 号窗设置区(仅 role=1 生效);后续再移到制丸页给 D 用 |
| 09-25 | 制丸屏装机只改角色:A屏 role=2(锁A)、B屏 role=3(锁B);角色=0 时 `net-apply` 不连制丸设备,防装错位置误连 |
| 09-25 | 9.5 换件流程补充「A↔B 换屏」:13 号窗改角色 2↔3 + 核对本线 IP |
| 09-25 | 明确 HMI 固定 IP:换屏必须一起改 HMI IP;13 号窗 HMI IP/掩码/网关(RW-20~31)建议做上 |
| 09-25 | 文档拆分:权限分配表 / 宏指令 / 地址表 独立到 `设计文档/`,主文档改为索引 |
| 09-25 | `界面开发记录.md` 更名 `开发主文件.md` 并移入 `设计文档/`,各文件引用同步 |
| 09-25 | 缺页位图按实际设置:`LW-70=127`、`LW-71=18`、`LW-72=95`、`LW-73=18`(禁用 X2Y1/X2Y3/X2Y4/X2Y6/X2Y7、X3Y6、X4Y1/X4Y3/X4Y4/X4Y6/X4Y7,导航到缺页弹 16 号窗) |
| 09-25 | 禁用页窗口内容清空、窗号留空(108/110/111/113/114/120/122/124/125/127/128),位图禁用不变 |
| 09-25 | X3Y6(120) 启用:`LW-72` 改回 127;禁用清单更新为 X2Y1/X2Y3/X2Y4/X2Y6/X2Y7、X4Y1/X4Y3/X4Y4/X4Y6/X4Y7 |
| 09-25 | 停止跟踪 `unitouch.debug`、`unitouch.cmtp.bak1~3`(本地保留,加入 `.gitignore`) |
| 09-25 | 新增 7.7.3 X2Y2 分区聚焦弹窗:4 区透明键 → 间接窗口(`LW-50`,141~144),`area-1~4`/`area-close` 宏 |
| 09-25 | 明确现场不碰 EB:IP 全部在 13 号窗完成;补充 PLC 设备号查看方法(设备列表或显示 `LW-9300~9306`) |