n
说明
S7-300/400 以太网模块可以使用 FB10“AG_CNTEX”对连接进行诊断,并可以使用 PING 命令判断网络设备的连接状态。表1,列出了支持 FB10“AG_CNTEX” 的工业以太网CP。n
订 货号 | 固 件版本 |
6GK7 343-1CX10-0XE0 | V3.0 起 |
6GK7 343-1EX30-0XE0 | V3.0 起 |
6GK7 343-1GX31-0XE0 | V3.0 起 |
6GK7 443-1EX30-0XE0 | V3.0 起 |
6GK7 443-1GX30-0XE0 | V3.0 起 |
表01n
FB10“AG_CNTEX” 包含FC10 “AG_CNTRL” 的所有功能(FC10 “AG_CNTRL” 功能请参考条目:22637440 ),并扩展了以下命令操作:n
- 读出 CP 中组态的连接类型(CMD=10)
- 发送 PING 命令(CMD=8/9)
实现步 骤
下面介绍如何使用 CMD=8 和 CMD=9 命令来进行 PING操作。
- 使用 CMD=8 PING 指令可以指示 CP 通过网络发4个 PING 请求到指定的 IP 地址。CP 会纪录响应的时间,并将其输入到 RESLT1/2 参数中。n
- 通过 CMD=9 查询 RESLT1/2 参数,最多30 秒的时间内查询 PING 结果,然后RESLT条目失效。
如图1,显示了 PING 请求的典型执行顺序以及相应的 PING 结果请求。
图01
最多可以同时将4个 PING 请求发送给不同的 IP 地址。为此,必须使用相同的 PING 请求背景数据块,仅当至少完成一个当前的 PING 请求后才能发送其他的 PING 请求。如果同时发送的 PING 请求过多,会输出相应的错误信息(STATUS 参数=828AH)。
只要满足以下条件之一,PING 请求视为已完成:
- PING 结果已经读出n
- PING 结果未读出,但是从 PING 结果可以使用开始已经超过 30 秒。
在 STEP7 项目里定义 PING 的数据DB,DB 的结构如图2,可以指定目标 IP,超时时间,PING 请求的数据大小。本例中生成UDT1 “PING”,并在 DB1 中定义,如图3, DB2 生成了4个“PING” 类型数据,定义了4个目标 IP,分别为:192.168.0.11、192.168.0.12、 192.168.0.1、 192.168.0.20,超时时间10 毫秒,PING 请求数据32字节。
( 19 KB )
图02
图03
如图4,在例子程序中FC1 “FB10 PING” 调用 FB10“AG_CNTEX”,“PING” 参数引脚填写定义好的 PING 命令的数据 DB。
图04
本例子中,同时 PING 4个不同的 IP 地址,并对每个作业判断执行的状态以及报错的代码。如图5,触发 PING 任务后,192.168.0.11、 192.168.0.12 返回的 4个 PING 包的时间 RESLT1/2 参数分别是2ms-2ms-1ms-2ms、4ms -5-ms-1ms-2ms。192.168.0.1、 192.168.0.21 PING 包的时间 RESLT1/2 参数都是16#FFFF,所以判断在定义的超时时间(10ms)内没有响应, 。
图05
注意:
- 使用本功能前,要确定对象是否支持 PING,比如是否支持ICMP协议 、如 果是PC,考虑防火墙等。
- 频繁PING 操作会增大网络的负载,所以要根据网络的不同情况决定是否使用PING。
- 可以调整 PING 的执行间隔,以及 PING 包的大小避免增加网络的负载。
- 至少组态了一个用于 SEND/RECEIVE 借口的连接(TCP、ISO-on-TCP、 ISO、 UDP)时,才能使用 PING 命令。
- 本例程仅作为使用参考,不能直接用于工程!
下载
内容 | 下载 |
用于SIMATIC NET S7 CP 的函数 (FC) 和函数块 (FB) | 62543517 |
如何对FC10 “AG_CNTRL”进行编程? | 22637440 |
STEP 7 V5.5 SP3 样例程序 | ( 1258 KB ) ( 1.4M) |
表02
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc327404.html