返回主站|会员中心|保存桌面

希玛仪表综合服务商    

希玛红外测温仪,风速计,气体检测仪,兆欧表,测振仪,PH值检测仪,温湿度仪

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > TIA Portal 怎样在显示屏上显示PLC 的IP地址!
新闻中心
TIA Portal 怎样在显示屏上显示PLC 的IP地址!
发布时间:2026-02-23        浏览次数:8        返回列表

TIA Portal 显示屏显示 PLC IP 地址的完整实现方法

在 TIA Portal 中让 HMI / 显示屏显示 PLC 的 IP 地址,核心是先让 PLC 读取自身 IP 地址并存储到变量,再在 HMI 画面上绑定这些变量显示。以下是适用于 S7-1200/1500 系列 PLC 和 WinCC Basic/Comfort/Advanced 面板的现场直接可用方案


一、核心原理(必懂)

PLC 的 IP 地址存储在PROFINET 接口的系统数据区中,需要通过专用函数块读取并转换为可显示的字符串格式,再通过 HMI 变量连接显示在画面上。


二、两种实现方案(按场景选择)

方案 A:S7-1200/1500 通用方法(推荐)

1. PLC 程序:读取 IP 地址并转换为字符串

表格

步骤操作代码 / 设置
1. 创建数据块建 DB1,定义变量存储 IP 信息IP_Byte[4]: Array[0..3] of Byte; // 存储IP的4个字节<br>IP_String: String[15]; // 存储"xxx.xxx.xxx.xxx"格式字符串
2. 添加函数块使用LPNDR_ReadGlobalInfo(S7-1200)或PN_DCP_GetIP(S7-1500)从 TIA Portal 指令库中搜索并添加
3. 调用函数块读取 PROFINET 接口 X1 的 IP 地址// S7-1200示例<br>CALL "LPNDR_ReadGlobalInfo"<br>  InterfaceID := W#16#0001 // X1接口<br>  InfoType := W#16#0001 // 读取IP地址<br>  pdata:= P#DB1.DBX0.0 BYTE 4<br>  RetVal => #RetVal
4. 转换为字符串把 4 个字节转为 "xxx.xxx.xxx.xxx"// 方法:用"Byte_TO_String"和字符串拼接<br>IP_String := CONCAT(CONCAT(CONCAT(CONCAT(Byte_TO_String(IP_Byte[0]), '.'), Byte_TO_String(IP_Byte[1])), '.'), CONCAT(CONCAT(Byte_TO_String(IP_Byte[2]), '.'), Byte_TO_String(IP_Byte[3])));

2. HMI 配置:显示 IP 字符串

表格

步骤操作细节
1. 创建 HMI 变量在 HMI 项目中添加变量连接 PLC 的 DB1.DBX0.0(IP_Byte 数组)和 DB1.DBW8(IP_String 字符串)
2. 设计画面添加文本框 / IO 域选择 "字符串" 类型,绑定IP_String变量
3. 测试运行下载程序到 PLC 和 HMI确保 PLC 和 HMI 在同一网段,通信正常

方案 B:S7-1500 简化方法(集成 PN 接口专用)

S7-1500 可直接访问系统变量读取 IP 地址,无需额外函数块:

plaintext

// S7-1500专属代码
IP_Byte[0] := "S7_diagnostic_buffer".PN_INTERFACE.X1.IP_ADDRESS.bytes[0];
IP_Byte[1] := "S7_diagnostic_buffer".PN_INTERFACE.X1.IP_ADDRESS.bytes[1];
IP_Byte[2] := "S7_diagnostic_buffer".PN_INTERFACE.X1.IP_ADDRESS.bytes[2];
IP_Byte[3] := "S7_diagnostic_buffer".PN_INTERFACE.X1.IP_ADDRESS.bytes[3];

三、关键代码片段(直接复制使用)

1. IP 地址读取与转换完整程序(S7-1200 示例)

plaintext

// 数据块DB1定义
DATA_BLOCK DB1
VAR_GLOBAL
    IP_Byte: ARRAY[0..3] OF BYTE; // IP地址的4个字节
    IP_String: STRING[15]; // 最终显示的IP字符串
    RetVal: INT; // 函数块返回值
END_VAR

// 主程序OB1
VAR
    LPNDR_ReadGlobalInfo: "LPNDR_ReadGlobalInfo"; // 读取PROFINET信息的FB
END_VAR

// 读取IP地址
CALL "LPNDR_ReadGlobalInfo"
    InterfaceID := W#16#0001; // X1接口
    InfoType := W#16#0001; // 读取IP地址
    pData := P#DB1.DBX0.0 BYTE 4; // 存储位置
    RetVal => DB1.RetVal;

// 转换为字符串格式
IF DB1.RetVal = 0 THEN // 读取成功
    DB1.IP_String := CONCAT(
        CONCAT(
            CONCAT(
                CONCAT(
                    BYTE_TO_STRING(DB1.IP_Byte[0]), '.'
                ), BYTE_TO_STRING(DB1.IP_Byte[1])
            ), '.'
        ), CONCAT(
            CONCAT(
                BYTE_TO_STRING(DB1.IP_Byte[2]), '.'
            ), BYTE_TO_STRING(DB1.IP_Byte[3])
        )
    );
END_IF;

2. HMI 画面配置(WinCC Comfort 面板)

  1. 新建画面,添加IO 域控件

  2. IO 域属性设置:

    • 类型:输出

    • 变量:选择 PLC 的DB1.IP_String

    • 格式:字符串

    • 显示长度:15 字符(刚好容纳 "xxx.xxx.xxx.xxx")


四、常见问题与解决方法

表格

问题原因解决方法
IP 显示为 "0.0.0.0"函数块调用失败检查InterfaceID是否正确(X1=1, X2=2);确保 PROFINET 已启用
字符串显示乱码转换格式错误使用BYTE_TO_STRING而非INT_TO_STRING;确保字符串长度足够
HMI 无法读取变量通信配置错误检查 HMI 与 PLC 的连接;确认 DB 块属性为 "优化的块访问"=禁用
读取不稳定网络波动增加读取周期(如 1 秒 1 次);添加错误处理机制

五、进阶优化(可选)

  1. 添加子网掩码和网关显示:同样方法读取,只需修改InfoType参数

  2. 错误状态显示:根据RetVal值显示 "读取成功"/"读取失败"

  3. 自动更新:在 OB35 循环中断中调用读取程序,实现实时刷新

  4. 多接口支持:读取 X1 和 X2 接口的 IP 地址,分别显示


六、快速落地检查表

  1. ✅ PLC 程序:创建 DB 块→添加函数块→调用读取→转换字符串

  2. ✅ HMI 配置:创建变量连接→添加 IO 域→绑定字符串变量

  3. ✅ 下载测试:同时下载 PLC 程序和 HMI 画面→验证显示结果。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服