原 master 12f4831「更新工程/XD/素材 (x1Y2, 组1982)」。仓库瘦身:历史合并为单一根提交;unitouch.cxob(EB Pro 编译产物)不再入库。
24 KiB
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(+ bak1~3) |
EB Pro 工程文件 |
unitouch.cxob |
编译输出(gzip→tar:config/mt8000/project/runtime/fonts) |
unitouch.debug |
调试数据 |
lwaddr.xls / lwaddr.csv |
系统地址大全(1429 条,查系统寄存器用) |
制丸线HMI界面UniTouch布局202500915.xd |
XD 设计源(18 画板) |
msg-login.txt |
登录提示宏源码(记事本复制用) |
config:MachineIds=[216702] / Resolution=1920x1080 / SocType=arm64。
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 | — | 白色底窗口(层叠底层) |
| 10 | start-login |
启动登录页 |
| 11 | — | 无权限提示弹窗(600×300,位 LB-110) |
| 12 | — | 修改时间弹窗(位 LB-120) |
| 13 | about |
关于(1200×800 弹窗,位 LB-123) |
| 14 | 用户管理 |
用户管理弹窗(位 LB-122) |
| 15 | — | 删除确认弹窗(位 LB-121) |
| 20 | 点检 |
启动点检页(1920×1080 全屏) |
| 100 | common window joyea |
公共窗口(顶部栏/导航/常驻元件) |
| 101~128 | X1Y1 ~ X4Y7 |
主画面,共 28 个 |
4. 命名与导航
- 画面名:
X{段}Y{功能}_{工艺段}_{功能} - X(工艺段):
X1 配料/上料、X2 制丸1、X3 制丸2、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 导航。
5. 地址规划
5.1 导航 / 公共
| 地址 | 用途 |
|---|---|
LW-0 |
X(1~4) |
LW-1 |
Y(1~7) |
LW-2 |
目标窗口号(PLC 控制元件触发地址) |
LW-3 |
当前窗口号(PLC 控制元件回写) |
LW-9222 |
当前登录用户类别位(bit0=A 工程师 / bit1=B 管理员 / bit2=C 上料 / bit3=D 制丸;0=未登录) |
5.2 弹窗 / 状态位
| 位 | 用途 |
|---|---|
LB-110 |
无权限提示弹窗(→ 11 号窗) |
LB-120 |
修改时间弹窗(→ 12 号窗) |
LB-121 |
删除确认弹窗(→ 15 号窗) |
LB-122 |
用户管理弹窗(→ 14 号窗) |
LB-123 |
关于弹窗(→ 13 号窗) |
LB-131 |
三个 PLC 联机汇总(触发条件 AND → 位状态指示灯) |
5.3 控制地址(高级安全模式)
| 地址 | 用途 |
|---|---|
LW-100 |
命令(见 5.4) |
LW-101 |
命令结果(结果码见 5.5) |
LW-102 |
用户索引(列表选中 / 读剩余时间的结果) |
LW-103 |
用户权限位(bit0=A / bit1=B / bit2=C / bit3=D) |
LW-104~111 |
用户名(ASCII,8 words) |
LW-112~119 |
密码(ASCII,8 words) |
5.4 LW-100 命令表
| 值 | 命令 | 配合地址 |
|---|---|---|
1 / 2 |
名称登入 / 索引登入 | LW-104+LW-112 / LW-102+LW-112 |
3 |
注销 | — |
4 |
改当前账号密码 | 名=原密码、密=新密码 |
5 |
新增 | LW-104+LW-112+LW-103 |
6 / 15 |
新增临时账号(分/天) | 上述 + LW-102=有效期(0=永久) |
7 / 8 |
名称删除 / 索引删除 | LW-104 / LW-102 |
9 / 10 |
名称设权限 / 索引设权限 | +LW-103 |
11 / 12 |
名称设密码 / 索引设密码 | +LW-112 |
13 / 14 |
名称读权限 / 索引读权限 | 结果→LW-103 |
16 / 17 |
新增限期账号(分/天) | 有效期不得为 0 |
18~21 |
读剩余分钟/天数 | 结果→LW-102 |
5.5 LW-101 结果码
| Hex | 含义 | 排查 |
|---|---|---|
01 |
成功 | — |
02 |
错误命令 | LW-100 值无效 |
04 |
账户已存在 | LW-104 重名 |
08 |
账户不存在 | LW-104/LW-102 对不上 |
10 |
密码错误 | LW-112 内容 |
20 |
命令无法执行 | 删当前账号 / admin |
40 |
名称不合法 | LW-104 |
80 |
密码含无效字符 | LW-112 |
100 / 200 |
导入无效 / 超期 | U 盘 / 安全密钥 |
5.6 提示 / 点检 / 时间
| 地址 | 用途 |
|---|---|
LW-260 |
登录提示字符串(字符框 16 words) |
LW-261 |
登录提示字符串表编号(0 空 / 1 成功 / 2 不存在 / 3 密码错 / 4 无法执行 / 5 名称不合法 / 6 密码无效 / 7 登录失败) |
LW-20 |
点检位(LW_Bit-2000~2008 设备状态 9 项;LW_Bit-2009/2010 物料状态 2 项;全勾=2047) |
LW-9017~9022 |
RTC:秒/分/时/日/月/年(写入即设置时间) |
LW-40~45 |
改时间暂存:秒/分/时/日/月/年 |
5.7 网络 / 版本(关于页)
| 项目 | 地址 | 元件 |
|---|---|---|
| HMI IP | LW-9129~9132 |
数值 ×4(16-bit,3 位) |
| 子网掩码 | LW-10750~10753 |
数值 ×4 |
| 网关 | LW-9125~9128 |
数值 ×4 |
| MAC | LW-9135(6 words) |
字符元件,字长 6 |
| 以太网端口 | LW-9133 |
数值 |
| DNS | LW-10804~10807 |
数值 ×4 |
| 连接速度 | LW-10815 |
数值(0 失败/10/100/1000) |
| DHCP | LW-10812 |
数值(0 关/1 开) |
| 程序版本 | LW-9120 |
数值 32-bit |
| OS 版本 | LW-9026/9027/9028 |
数值(年/月/日) |
| 工程名称 | LW-9100(14 words) |
字符,字长 14 |
| 工程编译日期 | LW-9122/9123/9124 |
数值(年/月/日) |
| HMI 名称 | LW-10884(16 words) |
字符,字长 16 |
| HMI 机型 ID | LW-9054 |
数值 32-bit |
| HMI 识别码 | LW-9046 |
数值 32-bit |
| 工程文件大小 | LW-9118 |
数值 32-bit(K bytes) |
| 工程校验和 | LW-12752(16 words) |
字符,字长 16 |
网络写回控制位:
LB-12041刷新、LB-12094/LB-12095更新(写 IP/掩码/网关后置 ON)、LB-12822桥接模式。
6. 宏清单
命名:导航/权限类 =
btn-*、登录 =main-init/btn-login-index/logout、用户管理 =usr-*、点检 =insp-*、时间 =open-time/set-time/close-time/-、提示 =msg-login、弹窗 =close-msg。 权限判定统一用LW-9222的类别位(GETBIT取值 +if,不用and/&)。
main-init(开机执行一次)
macro_command main()
short x = 1, y = 1, win = 0
SetData(x, "Local HMI", LW, 0, 1)
SetData(y, "Local HMI", LW, 1, 1)
SetData(win, "Local HMI", LW, 2, 1)
end macro_command
btn-x1(X1,权限 A/B/C) x2/x3 换 x = 2/3 且取位改为 A/B/D;btn-x4 换 x = 4 且取 A/B/C/D
macro_command main()
short cls = 0, x = 1, y = 0, win = 0, ok = 0
short pop = 1
short bA = 0, bB = 0, bC = 0
GetData(cls, "Local HMI", LW, 9222, 1)
GETBIT(cls, bA, 0)
GETBIT(cls, bB, 1)
GETBIT(cls, bC, 2)
if bA == 1 then
ok = 1
end if
if bB == 1 then
ok = 1
end if
if bC == 1 then
ok = 1
end if
if ok == 1 then
SetData(x, "Local HMI", LW, 0, 1)
GetData(y, "Local HMI", LW, 1, 1)
win = 101 + (x - 1) * 7 + (y - 1)
SetData(win, "Local HMI", LW, 2, 1)
else
SetData(pop, "Local HMI", LB, 110, 1)
end if
end macro_command
btn-y1(Y1Y3 全开放:取 A/B/C/D) Y4Y7 仅 A/B:只取 bA/bB
macro_command main()
short cls = 0, x = 0, y = 1, win = 0, ok = 0
short pop = 1
short bA = 0, bB = 0, bC = 0, bD = 0
GetData(cls, "Local HMI", LW, 9222, 1)
GETBIT(cls, bA, 0)
GETBIT(cls, bB, 1)
GETBIT(cls, bC, 2)
GETBIT(cls, bD, 3)
if bA == 1 then
ok = 1
end if
if bB == 1 then
ok = 1
end if
if bC == 1 then
ok = 1
end if
if bD == 1 then
ok = 1
end if
if ok == 1 then
SetData(y, "Local HMI", LW, 1, 1)
GetData(x, "Local HMI", LW, 0, 1)
win = 101 + (x - 1) * 7 + (y - 1)
SetData(win, "Local HMI", LW, 2, 1)
else
SetData(pop, "Local HMI", LB, 110, 1)
end if
end macro_command
btn-login-index(登录:索引登入 → 按组定位;31 为 msg-login 的宏编号)
macro_command main()
short cmd = 2, res = 0, cls = 0, x = 1, y = 1, win = 0
short bA = 0, bB = 0, bC = 0, bD = 0
SetData(cmd, "Local HMI", LW, 100, 1)
DELAY(2000)
GetData(res, "Local HMI", LW, 101, 1)
ASYNC_TRIG_MACRO(31)
if res == 1 then
GetData(cls, "Local HMI", LW, 9222, 1)
GETBIT(cls, bA, 0)
GETBIT(cls, bB, 1)
GETBIT(cls, bC, 2)
GETBIT(cls, bD, 3)
if bD == 1 then
x = 2
end if
if bA == 1 then
x = 1
end if
if bB == 1 then
x = 1
end if
if bC == 1 then
x = 1
end if
win = 101 + (x - 1) * 7 + (y - 1)
SetData(x, "Local HMI", LW, 0, 1)
SetData(y, "Local HMI", LW, 1, 1)
SetData(win, "Local HMI", LW, 2, 1)
end if
end macro_command
logout(注销并回登录页;10 号窗「打开窗口时执行」也用它)
macro_command main()
short cmd = 3, win = 10, z = 0
SetData(cmd, "Local HMI", LW, 100, 1)
SetData(z, "Local HMI", LW, 0, 1)
SetData(z, "Local HMI", LW, 1, 1)
SetData(win, "Local HMI", LW, 2, 1)
end macro_command
msg-login(把 LW-101 结果码转成字符串表编号 → LW-261)
macro_command main()
short res = 0, idx = 0
GetData(res, "Local HMI", LW, 101, 1)
idx = 7
if res == 1 then
idx = 1
end if
if res == 8 then
idx = 2
end if
if res == 16 then
idx = 3
end if
if res == 32 then
idx = 4
end if
if res == 64 then
idx = 5
end if
if res == 128 then
idx = 6
end if
if res == 0 then
idx = 0
end if
SetData(idx, "Local HMI", LW, 261, 1)
end macro_command
close-msg(关闭无权限提示窗)
macro_command main()
short z = 0
SetData(z, "Local HMI", LB, 110, 1)
end macro_command
用户管理 usr-*
| 宏 | 命令 | 说明 |
|---|---|---|
usr-init |
— | 14 号窗「打开窗口时执行」:清 LW-104/LW-112/LW-103/LW-101,清 LB-121 |
usr-open |
— | 顶部按钮:仅 B/admin → 置 LB-122 |
usr-back |
— | 清 LB-122 |
usr-add |
5 |
新增(LW-104+LW-112+LW-103) |
usr-del |
— | 置 LB-121 弹确认 |
usr-del-ok |
8 |
按索引删除 |
usr-del-cancel |
— | 清 LB-121 |
usr-getlevel |
14 |
按索引读权限 → LW-103 |
usr-setlevel |
10 |
按索引设权限 |
usr-setpwd |
12 |
按索引设密码 |
macro_command main()
short cmd = 14
SetData(cmd, "Local HMI", LW, 100, 1)
end macro_command
其余
usr-*同上模板:cmd= 5 / 8 / 10 / 12;usr-open/usr-back/usr-del/usr-del-cancel/usr-init见 6.21.5。
点检 insp-*
insp-init(20 号窗「打开窗口时执行」)
macro_command main()
short z = 0
SetData(z, "Local HMI", LW, 20, 1)
end macro_command
insp-next(可选:11 项全勾才进主画面)
macro_command main()
short v = 0, cls = 0, x = 1, y = 1, win = 0
short bA = 0, bB = 0, bC = 0, bD = 0, np = 1
GetData(v, "Local HMI", LW, 20, 1)
if v == 2047 then
GetData(cls, "Local HMI", LW, 9222, 1)
GETBIT(cls, bA, 0)
GETBIT(cls, bB, 1)
GETBIT(cls, bC, 2)
GETBIT(cls, bD, 3)
if bD == 1 then
x = 2
end if
if bA == 1 then
x = 1
end if
if bB == 1 then
x = 1
end if
if bC == 1 then
x = 1
end if
win = 101 + (x - 1) * 7 + (y - 1)
SetData(x, "Local HMI", LW, 0, 1)
SetData(y, "Local HMI", LW, 1, 1)
SetData(win, "Local HMI", LW, 2, 1)
else
SetData(np, "Local HMI", LB, 110, 1)
end if
end macro_command
修改时间
| 宏 | 触发 | 作用 |
|---|---|---|
open-time |
时钟上透明按钮(仅 B) | 读 LW-90179022 → LW-4045,置 LB-120 |
set-time |
12 号窗「设定」 | LW-4045 → LW-90179022(设置 RTC),清 LB-120 |
close-time |
12 号窗「取消」 | 清 LB-120 |
macro_command main() // set-time
short v[6] = {0,0,0,0,0,0}
short z = 0
GetData(v[0], "Local HMI", LW, 40, 6)
SetData(v[0], "Local HMI", LW, 9017, 6)
SetData(z, "Local HMI", LB, 120, 1)
end macro_command
7. 各页面要点
7.1 登录页(10 号窗)
- 项目选单(来源=用户账号)→ 写
LW-102;密码字符输入(勾系统键盘)→LW-112。 - 底部字符框读
LW-260(或文字元件用字符串表,编号LW-261)。 - 「登录」按钮 →
btn-login-index。 - 窗口属性 → 「打开窗口时执行」=
logout(每次回来强制重新登录)。 - 顶部账户显示读
PLW-10754,上面盖透明功能键 → 长按 1s(安全页最少按键时间=1)→logout。
7.2 公共窗口(100 号窗)
- 顶部:品牌、页签、
?/首页/用户/报警图标;右上角「日期/时间」元件。 - PLC 联机:触发条件(3 台联机位 AND)→
LB-131→ 位状态指示灯。 - 直接窗口 ×5:
LB-110→11、LB-120→12、LB-121→15、LB-122→14、LB-123→13。 - 入口按钮:点检(功能键→切换基本窗口=20);关于(仅 A,安全页操作类别=类别 A);用户管理(
usr-open)。 - X/Y 导航按钮:
btn-x1~x4、btn-y1~y7。
7.3 用户管理(14 号窗,1200×800 弹窗)
见 6.21.10:列表(LW-102)+ 用户名/密码 + 4 个权限开关(LW_Bit-10300~10303)+ 读取权限/修改权限/修改密码/删除/新增/关闭 + 结果 LW-101。
只读管理员(B/admin)可用;改权限前先「读取权限」。
7.4 点检(20 号窗,1920×1080)
- 布局按 XD
B_PID:左「设备状态」9 项、右「物料状态」2 项(LW_Bit-2000~2010),右侧两个提示框,右下插画pic/pid-illustration.png。 - 「关闭」= 功能键 → 返回上一个窗口;「下一步」=
insp-next。 - 点检暂不强制。
7.5 关于(13 号窗,1200×800 弹窗)
- 字段与地址见 5.7;
LB-123弹窗。 - 入口仅工程师(A)。
7.6 修改时间(12 号窗)
- 6 个数值输入(
LW-40~45秒/分/时/日/月/年)+ 设定/取消。 - 入口:100 号窗时钟上透明功能键(仅 B)→
open-time。
7.7 主画面(101~128)
- 每个画面 = 某工艺段 × 某功能组合,底图按 XD/
pic素材放置,控件按各功能需求(待逐个设计)。
7.7 主画面设计
7.7.1 X1Y1(配料/上料 · 初始状态)完整操作表
地址栏留空(
__)处待 PLC 工程师填写;元件先建好、地址后补。
布局(1920×1080;内容区 x 1101900,y 901000)
| # | 区域 | 控件 | 元件 | 地址 | 位置(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. 准备
- 打开 101 号窗口(X1Y1)。
工程文件 → 地址(地址标签库)建标签(地址先用占位,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-300305。
11. 「状态设置」给 4 个状态配图/色:0 灰(未开始)、1 绿(进行中)、2 蓝(完成)、3 红(异常)。
12. 复制这 6 个到第二组 y = 560,地址改 LW-306311。
③ 节点人工修正(显示+可改都用同一地址)
13. 元件 → 输入 → 数值,放在每个节点下方:同 x、y = 362、100×40;地址=对应节点状态字(LW-300305)。
14. 属性 「安全」页 → 操作类别 = 类别 A(工程师)(只有工程师能改);可勾 「操作前先确认」 防误改。
15. 第二组同样:y = 622,地址 LW-306311。
④ 圆形开关
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 个功能键实现(配料/制丸1/制丸2/清洗 → 切换基本窗口)。
7.7.2 Y6 报警表页面(106 / 113 / 120 / 127)
Y6 = 报警功能;各工艺段各有一个报警表页:
106(配料/上料)、113(制丸1)、120(制丸2)、127(清洗)。
| 控件 | 元件 | 关键设置 |
|---|---|---|
| 报警列表 | 报警显示(或事件显示) | 显示全部/未确认报警,一行一条,可上下滚动/翻页 |
| 顶部滚动条 | 报警条 | 一行滚动显示最新报警(同 X1Y1 的报警行) |
| 报警确认 | 报警显示元件属性 → 「确认地址」 = LW-__ |
操作员确认时,系统把该报警的确认值写入此地址(PLC 可读,用于联动/记录) |
| 清除(当前记录) | 位状态设置 → LB-9021(OFF→ON 重置当前事件记录) |
系统位 |
| 删除事件记录文件 | 位状态设置 → LB-9023(删除 HMI 内存全部事件记录) |
系统位 |
| 翻页 / 确认按钮 | 报警显示元件自带按钮,或自定义功能键 | — |
做法
工程文件 → 事件/报警里逐条建立报警(地址、触发条件、文字、颜色、类别)。- 在 Y6 页放 报警显示 元件(多行列表);X1Y1 等页放 报警条 元件(一行滚动)。
- 报警显示的属性里设 确认地址,并为每条报警配确认值 → 操作员确认后写回该地址给 PLC。
- 需要"清除"按钮就放
位状态设置写LB-9021(重置)/LB-9023(删除文件)。 - 4 个 Y6 页可共用同一套事件登录,也可按类别过滤(配料/制丸/清洗各自的报警)。
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 |
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. 变更记录(里程碑)
| 日期 | 内容 |
|---|---|
| 09-23 | 解包分析现有工程;确定机型/分辨率/运行时与 XD 设计源 |
| 09-23 | 建立窗口骨架与命名规则(X1 |
| 09-23 | 导航机制落地:宏算 LW-2 + PLC 控制元件切换基本窗口 |
| 09-23 | 完成登录页、权限控制(LW-9222)、按钮宏与无权限弹窗 |
| 09-24 | 完成用户管理(索引命令)、点检页、关于页、修改时间、PLC 联机状态、登录提示框 |
| 09-24 | 文档精简;准备开始 28 个主画面的设计 |