通过一个S7-300 或者S7-400站如何使用UDP协议经过本地UDP端点发送和接 配置注释: 一个 S7-300 站可使用 UDP 协议与多个通信对象收发数据。 面向无连接的 UDP 协议的优势有: - 非常快速的数据传输
- 非常灵活,可以与第三方的系统实现
- 可路由
- 可以实现组播和广播
- 适用于中小数据量的传输( <= 2048 字节 )
面向无连接的 UDP 协议的劣势有: - 数据传输是包导向(非流导向)
- 发送和接收不需要通信对象应答,应答需要用户程序来实现
- 包丢失后不重发
- 独立的数据包可能多次发送
- 接收方不可以预知接收到的数据包的顺序
- 广播功能只能在发送方实现
在此例中,只在 S7-300 配置一个本地 UDP 站点。可以通过这个本地站点与远程的多个 UDP 站点发送和接收 UDP 报文。  图 01:配置
配置本地 UDP 站点: 按以下过程配置本地 UDP 站点。 打开带有 S7-300 配置的 STEP 7 项目。在 NetPro 中为 S7-300 站配置一个未指定对象的 UDP 连接。  图 02:配置未指定 UDP 连接
在 UDP 连接属性的对话栏中您切换到“Addresses”分页栏。在这里您勾选上选项“Address assignment in block”。此时通信对象的参数 IP 地址和端口号不能填写。  图 03: UDP 连接属性的对话栏->“Addresses”分页栏
UDP 站点必须在发送站和接收站都配置。 S7 程序: 通信对象的参数 IP 地址和端口号在用户程序中定义,例如,通信对象的参数在发送数据的前 6 个字节中定义。用户数据发送是用功能 FC5 “AG_SEND” 或者 FC50“AG_LSEND”。 这样,数据可以从本地 UDP 站点发向多个 UDP 站点(例如,多个通信对象)。既然配置了一个 UDP 站点,只有一个 IE CP 的连接被占用。因此,节省下的资源可以用于配置其他的通信连接。 IE CP 使用 CPU 传送数据的前 6 个字节作为通信对象的 IP 地址和端口号。发送的数据不做正确与否的检查。 下图以(DB10)作为数据源解释要发送的用户数据结构。  图 04:发送站点程序的数据结构
在本例中,数据发送到 IP 地址 140.80.0.3 的 2001 端口 通信对象的 IP 地址 140.80.0.3 是 B 类地址,例如,前两个字节作为子网地址并且后两个字节作为计算机地址。 在本例中,IE CP 以 IP 地址 140.80.0.2 通过一个配置好的 UDP 连接发送 UDP 报文。如果用户程序传送目标 IP 地址 140.80.0.3 到 IE CP ,那么通信正常工作。 此外,在 S7 程序中您使用功能 FC6 “AG_RCV”或者 FC60“AG_LRCV”接收一个或者多个远程的 UDP 站点的报文。 FC6“AG_RCV”或者 FC60“AG_LRCV”只在用户程序中调用一次,即使 UDP 报文是从远程的多个 UDP 站点发送的。数据的发送地址 ( 源端口和源 IP ) 发送到接收站点接收数据的前 6 个字节。 用户数据接收到的结构如下:  图 05:接收到的数据结构
|