主题
7.7 产品组态:一套画面发布给多台设备
7.7.1 这个功能解决什么问题
假设您做了 100 台一模一样的设备卖给客户,每台都要一个手机监控画面。
没有产品组态:您需要建 100 个组态工程,每个工程里的绑定都改成对应设备的 ID。以后画面要改一个按钮,100 个工程都得手工改一遍。
用产品组态:只建 1 个工程。发布的时候选一次目标设备,就得到那台设备专属的链接。画面要改,只改这 1 个工程,所有链接下次打开就都是新的。
7.7.2 工作原理
产品组态的实现方式很直接:运行时把绑定里的设备 ID 整体替换掉。
- 编辑时指定一台预览 PLC 设备(比如
1001),所有绑定都写成@1001.D100这样 - 发布时选目标设备(比如
1002),链接里会带上&dev=1002 - 客户打开链接,前端下载模板后,先把整个工程里所有
@1001.开头的绑定改写成@1002.,然后才开始订阅数据
所以画面结构完全一样,只是数据源换成了另一台设备。
由此推出的硬性要求
替换只换设备 ID,不换寄存器地址。因此目标设备的寄存器分布必须与预览设备一致,通常意味着必须是同型号。跨型号使用时容易出现能读到数据但数值不正确的情况。
7.7.3 第一步:启用产品组态
在编辑器里打开右侧属性面板 →「工程」标签 →「工程参数」分组:
- 找到「产品组态」开关,打开它
- 打开后下面会多出一个「预览 PLC 设备」下拉框,选一台设备作为模板基准
选中后,编辑器顶部会出现一个橙色的 产品 1001 标签,提醒您当前在编辑一个产品模板。
TIP
开关一打开,如果预览设备还没选,系统会自动选中列表里的第一台。下拉框里的设备来自您这个项目下的全部 PLC 设备,不按型号或在线状态过滤,所以要自己挑对型号。
7.7.4 第二步:按规范做绑定
绑定必须写成 @<预览设备ID>.<寄存器> 的形式。
| 写法 | 能不能用 | 说明 |
|---|---|---|
@1001.D100 | ✅ 正确 | 发布时会被替换成 @目标ID.D100 |
@1001.Y0 | ✅ 正确 | 同上 |
@1002.D100 | ❌ 错 | 写了别的设备 ID,替换认不出来,永远指向 1002 |
@D100 | ❌ 不支持 | 没有"省略设备ID"这种通配写法 |
pump1.run_status | ⚠️ 不会被替换 | 项目变量是按名字走服务器解析的,不参与设备 ID 替换 |
也就是说:产品组态场景下要用 @ 直读寄存器,不要用项目变量。 项目变量是绑到具体数据点上的,换设备时不会跟着走。
替换会覆盖工程里的所有位置,包括:
- 组件的控件属性
- 显示事件 / 点击事件里的
server_name、表达式、条件 - 动画配置、动态管线
- 页面脚本
所以只要都写成 @1001.xxx,不用担心漏掉哪个角落。
中途想换基准设备?
直接改「预览 PLC 设备」下拉框就行。系统会自动把工程里所有 @旧ID. 改写成 @新ID.,不需要您手工查找替换。
7.7.5 第三步:给每台设备发布链接
回到组态列表页。产品组态的工程会带一个「产品」标签。
点这个工程的「发布」(或「二维码」)时,不会像普通组态那样直接出链接,而是先弹出一个「发布产品组态」对话框:
| 对话框元素 | 说明 |
|---|---|
| 组态名称 / 预览设备 | 显示模板基准是哪台设备、什么型号 |
| 目标 PLC 设备 | 下拉选这次要发给哪台设备 |
| 绿色对勾 | 该设备和预览设备型号相同,可以放心选 |
| 橙色警告 | 型号不同,寄存器分布可能不一致 |
| 记住这次选择 | 勾上后下次打开对话框会自动带上这台设备 |
底部三个按钮:
- 取消 — 关闭
- 使用原设备 — 不带
dev参数发布,运行时就用预览设备的数据(相当于普通发布) - 发布 — 带上选中的
dev参数,生成那台设备的专属链接
TIP
「记住这次选择」只存在当前这台电脑的浏览器里,换电脑或清了缓存就没了。它是为了方便您连续给多台设备发链接,不是服务器端配置。
7.7.6 链接长什么样
https://域名/#/lprun?lp=<加密串>&dev=1002lp加密串里装着账号和工程 IDdev是明文的目标设备 ID,就是它决定了这条链接显示哪台设备的数据
给 100 台设备就是 100 条链接,区别只在最后的 dev= 数字。
批量生成小技巧
界面上需逐台选择。设备较多时,可以先发布一台获得完整链接,再用 Excel 把末尾的 dev=1002 批量替换成各设备的 ID,一次性生成整批链接表。同一个工程的 lp 部分是不变的。
7.7.7 完整操作流程(100 台设备示例)
做模板(只做一次)
- 新建一个组态工程
- 右侧「工程」标签 → 打开「产品组态」开关
- 「预览 PLC 设备」选一台样机(假设 ID 是
1001) - 正常画画面,所有绑定统一写
@1001.D100@1001.Y0这种形式 - 用「预览」核对一下,此时看到的是样机 1001 的真实数据
- 保存(Ctrl+S)
发链接(每台一次)
- 回组态列表页,点这个工程的「发布」
- 在弹出的对话框里选目标设备(优先选带绿色对勾的同型号设备)
- 勾「记住这次选择」,点「发布」,复制链接
- 重复第 7–9 步换下一台设备;或者按上面的技巧用 Excel 批量改
dev=
以后改画面
- 直接改这一个模板工程,Ctrl+S 保存
- 所有已发出去的链接刷新一下就是新画面,不用重新发布
7.7.8 常见问题
Q:客户打开链接,画面出来了但数据全是 0 或者不刷新?
先检查绑定是不是写成了 @1001.xxx 形式。如果用的是项目变量(无前缀),设备 ID 不会被替换,数据会一直指向配置数据点时的那台设备。
Q:数据有,但数值明显不对?
大概率是目标设备和预览设备型号不同,寄存器地址分布不一样。回发布对话框看看那台设备是不是橙色警告。
Q:我改了预览设备,画面会不会乱?
不会。改预览设备时系统会自动把所有 @旧ID. 改写成 @新ID.,绑定关系保持不变。改完记得保存。
Q:可以给产品组态加访问密码吗?
可以,密码是工程级的,配在「工程」标签的「访问密码」里。所有设备的链接共用同一套密码。如果要每台设备独立密码,目前做不到,只能拆成多个工程。