HMI 与可视化

HMI 可视化配置教程(KTP700 Basic PN)

KTP700 面板映像、交换机端口状态、PLC 分项目开发与环网冗余显示。

基于 07_HMI.md 中 1 条对话内容整理 对话涵盖:KTP700 面板映像缺失解决、HMI 端口变量映射方法


一、KTP700 Basic PN 面板映像缺失问题#

问题现象#

TIA Portal V21 下载 HMI 页面时提示:

"由于缺少面板映像,下载失败(Download failed due to missing panel image)"

原因#

电脑中没有安装与 KTP700 Basic PN 固件版本对应的 Panel Image(面板映像/固件镜像)

四种解决方法#

方法一(最推荐):安装对应版本的 Panel Image

1. 确认 HMI 设备版本
   项目树 → HMI → 右键 → 更改设备版本(Change device version)
   查看当前设备版本号(如 V17/V18/V19/V20/V21)

2. 使用 HMI PIU Installer 安装 Panel Image
   - Basic Panels → KTP700 Basic PN → 选择对应版本
   - 安装完成后重新打开 TIA Portal

方法二(最快):修改工程版本匹配 HMI 固件

项目树 → HMI → 右键 → 更改设备版本
将工程版本改为与 KTP700 面板当前固件一致的版本
无需升级固件,直接下载画面

方法三:重新安装 TIA 组件

重新运行 TIA Portal 安装程序 → Modify(修改)
勾选 HMI Panel Images 组件
补装缺失的 Panel Image

方法四:使用 ProSave 做 OS Update

ProSave → OS Update
重新下载系统镜像到 HMI
(一般不需要走到这一步)

检查清单#

  • [ ] 博图版本(如 TIA Portal V21 Update 2)
  • [ ] KTP700 型号(如 6AV2123-2GB03-0AX0
  • [ ] 当前面板固件版本(在 KTP700 上:Control Panel → Version)
  • [ ] 工程版本与面板固件是否匹配

二、HMI 交换机端口状态可视化#

需求描述#

在 KTP700 Basic PN 上使用 XM408-8C 图形,对每个端口映射 PLC 从 SNMP 获取的变量(8 个端口状态 Link Up/Down)。

快速实现方法#

方法一:统一数组变量绑定(最推荐)

1. 在 PLC 中建立统一端口状态数组,如:
   "RS"."408"[i].value[0]   (i = 端口索引 0~7)

2. HMI 变量表中建立 8 个变量,绑定 PLC 数组元素

3. XM408-8C 图形中每个端口绑定对应变量:
   - 颜色动画:Link Up 时绿色,Down 时灰色
   - 可见性动画:可选

方法二:复制对象快速绑定

1. 配置好第一个端口的变量绑定
2. 复制该端口对象
3. 修改粘贴对象的变量索引
4. 重复 7 次完成所有端口

方法三:使用 UDT/结构体

1. PLC 中定义 UDT,包含 8 个端口的状态结构
2. HMI 中使用结构变量绑定 UDT 成员
3. 可配合 Faceplate 复用

HMI 变量表建议#

HMI 变量名 PLC 地址 类型 说明
Port1_Status DB100.DBX0.0 Bool 端口 1 Link
Port2_Status DB100.DBX0.1 Bool 端口 2 Link
... ... ... ...
Port8_Status DB100.DBX0.7 Bool 端口 8 Link

动画配置#

每个端口图形配置:
- 外观(Appearance)
  变量值 = 1 → 绿色(Link Up)
  变量值 = 0 → 灰色(Link Down)
- 闪烁可选(数据通过时闪烁表示流量)

使用脚本或 TIA Openness 批量生成#

对于大量端口(如 XM408 的 8 个端口 + XB208 端口):
- 编写 TIA Openness 脚本批量创建 HMI 变量和绑定
- 或使用 Excel 生成变量表后导入 TIA Portal

三、HMI 与 PLC 分项目开发#

场景#

PLC 与 HMI 分别放在两个 TIA 项目,由不同人员开发。

配置要点#

方案一:使用 Device Proxy(推荐)

1. PLC 工程导出 Device Proxy Data / IPE 文件
2. HMI 工程导入该 Proxy
3. HMI 基于真实 PLC 接口画画面

方案二:统一接口 DB 标准表

1. 双方预先约定 HMI 交换数据块(DB_HMI)
2. 固定 DB 号、变量名称、类型和地址
3. 建议使用非优化 DB(便于跨项目绝对寻址)

方案三:使用绝对地址

HMI 变量使用绝对地址(如 DB10.DBX0.0)
不依赖 PLC 符号信息
注意:地址改变时 HMI 不会自动更新

注意事项#

  • 不要将 HMI 工程的"空 PLC"下载到真实 PLC(会覆盖 PLC 程序)
  • HMI 连接的 PLC IP 地址必须指向真实 PLC
  • HMI 按钮建议写入 DB_HMI.Request 位,而非直接控制 Q 点
  • PLC 程序判断安全条件后再输出到真实 Q 点

四、HMI 环网冗余状态显示#

需求#

在 HMI 上用一个指示灯显示 MRP 环网状态(闭合/断开)。

推荐架构#

LPNDR_ReadMRPState(读取 MRP 环网状态)
        ↓
PLC 内部转换成 Bool 变量 → DB_HMI.MRP_OK
        ↓
HMI 指示灯绑定 DB_HMI.MRP_OK

PLC 侧实现#

"DB_HMI".MRP_OK := (#mrpRingState = 1) AND #done AND NOT #error;
"DB_HMI".MRP_Open := (#mrpRingState = 0) AND #done AND NOT #error;
"DB_HMI".MRP_Error := #error;

HMI 侧配置#

1. 建立 S7-1200 连接,IP 指向真实 PLC
2. 建外部变量 MRP_OK,地址 DB100.DBX0.0
3. 圆形指示灯绑定 MRP_OK
   - 绿色:环网闭合(MRP_OK = 1)
   - 红色:环网断开(MRP_OK = 0)
   - 黄色:读取异常(MRP_Error = 1)

建议接口变量表#

HMI 变量 PLC 地址 类型 说明
MRP_OK DB100.DBX0.0 Bool 环网闭合
MRP_Open DB100.DBX0.1 Bool 环网断开
MRP_Error DB100.DBX0.2 Bool 读取错误
MRP_State DB100.DBW2 Word 原始状态值
MRP_Status DB100.DBW4 Word 块状态码