您的位置:控制工程论坛网论坛 » 现场总线 » 通过一个 S7-300 或者 S7-400 站,如何使用 UDP 协议经过本地 UDP 端点发送

wj321

wj321   |   当前状态:离线

总积分:1211  2024年可用积分:0

注册时间: 2003-05-12

最后登录时间: 2009-11-05

空间 发短消息加为好友

通过一个 S7-300 或者 S7-400 站,如何使用 UDP 协议经过本地 UDP 端点发送

wj321  发表于 2008/12/12 19:52:02      1007 查看 0 回复  [上一主题]  [下一主题]

手机阅读

配置注释:
一个 S7-300 站可使用 UDP 协议与多个通信对象收发数据。

面向无连接的 UDP 协议的优势有:

  • 非常快速的数据传输
  • 非常灵活,可以与第三方的系统实现
  • 可路由
  • 可以实现组播和广播
  • 适用于中小数据量的传输( <= 2048 字节 )

面向无连接的 UDP 协议的劣势有:

  • 数据传输是包导向(非流导向)
  • 发送和接收不需要通信对象应答,应答需要用户程序来实现
  • 包丢失后不重发
  • 独立的数据包可能多次发送
  • 接收方不可以预知接收到的数据包的顺序
  • 广播功能只能在发送方实现

条目号 26484229 提供给您 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 端口。作为进一步的需求,这里假设 CP 没有配置路由(标准应用)。

通信对象的 IP 地址 140.80.0.3 是 B 类地址,例如,前两个字节作为子网地址并且后两个字节作为计算机地址。如果您不使用路由器,网络中所有参与直接通信的对象地址必须为 140.80.x.x.。

在本例中,IE CP 以 IP 地址 140.80.0.2 通过一个配置好的 UDP 连接发送 UDP 报文。如果用户程序传送目标 IP 地址 140.80.0.3 到 IE CP ,那么通信正常工作。

此外,在  S7 程序中您使用功能 FC6 “AG_RCV”或者 FC60“AG_LRCV”接收一个或者多个远程的 UDP 站点的报文。以下的条目包含了一个详细的用 FC5 “AG_SEND”和 FC6 “AG_RCV”或者 FC50“AG_LSEND” 和 FC60 “AG_LRCV” 样例程序:17853532 和 18513371

FC6“AG_RCV”或者  FC60“AG_LRCV”只在用户程序中调用一次,即使 UDP 报文是从远程的多个 UDP 站点发送的。数据的发送地址 ( 源端口和源 IP ) 发送到接收站点接收数据的前 6 个字节。

用户数据接收到的结构如下:


图 05:接收到的数据结构

1楼 0 0 回复