QQ登录

只需一步,快速开始

使用 Open Communication Wizard 建立开放式UDP 通信

[ 复制链接 ]
使用 Open Communication Wizard 建立开放式UDP 通信

1. 概述

介绍

SIMATIC S7- PN CPU包含一个集成的 PROFINET 接口,该接口除了具有 PROFINET I/O功能外还具有 UDP 通信功能。通过该集成以太网接口组态 UDP 通信时,只能使用开放式通信专用的功能块。依据RFC768的UDP协议,在STEP7”通讯块”的“标准库”(图1所示)中提供了下列FB,用于通过用户程序与符合以太网标准的通讯伙伴进行数据交换:

• ® UDT 65 "TCON_PAR",具有分配本地通讯接入点参数的数据结构
• ® UDT 66 "TCON_ADR",具有分配远程伙伴寻址参数的数据结构
• ® FB 65 "TCON",用于组态本地通讯接入点
• ® FB 66 "TDISCON",用于关闭本地通讯接入点
• ® 用于发送数据的FB 67 "TUSEND"
• ® 用于接收数据的FB 68 "TURCV"

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图1

解决方案
要通过 S7-PN CPU 的 集成PROFINET 接口实现开放的 UDP 通信,不能在硬件组态中完成,必须在一个数据块中指定每个连接的参数。使用“Open Communication Wizard”工具可以简单明了地指定连接参数,该工具可将一个包含所有参数的 UDT 导出到您的 STEP 项目中。使用该 UDT 可建立含有连接描述的数据块。随后,需使用通信功能块 FB65 "TCON"、FB66 "TDISCON"、FB 67 "TUSEND" 和FB 68 "TURCV"完成程序的编写。


2. 系统配置
CPU采用两个315-2PN/DP,使用以太网进行通信,网络拓扑如图2所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图2


3. 配置OPEN Communication Wizard
首先使用STEP7创建一个项目,名称为open_UDP_wizard,建立两个315PN/DP站。安装并打开向导。从路径“开始Simatic ® Open Communication Wizard ® Open Communication Wizard”打开向导。打开后如图3所示,点击下一步:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信
图3

在图4中选择STEP7项目以及块文件夹,点击下一步,如图5所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信
图4

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信
图5

在图5中选择New, 然后点击下一步,如图6所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信
图6

在图6中选择UDP native, 点击下一步,如图7所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信
图7

点击下一步,如图8所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图8

在图8中设置partner A的“Connection ID”“Connection name ” “Used interface”以及partner B的“IP address”,点击下一步,如图9所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信
图9

在图9中设定通信双方的端口号,本例中设置为2000。点击下一步,如图10所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信
图10

在图10中定义了partnet A用于UDP通信的数据连接结构的名称UDT65和地址数据块的名称UDT66,在项目open_UDP_wizard中选择块文件夹。点击下一步如图11所示,再下一步开始编译,如图12所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信
图11

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信
图12

编译无误后如图13所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信
图13

点击Finish完成向导的配置。这样在项目open_UDP_wizard的块中生成了UDT65, UDT66,如图14所示。

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图14

用同样的步骤为SIMATIC 315PN-2 站配置向导,完成配置后在SIMATIC 315PN-2站的块中生成了UDT65,UDT66。


4. 在STEP7中为项目open_UDP_wizard编写程序

首先为partner A编写程序。在SIMATIC 315PN-1的块中创建DB101,定义一个变量DB_VAR,变量类型为UDT65。如图15所示。

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图15

接着创建DB102,定义一个变量DB_VAR,变量类型为UDT66。如图16所示。

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图16

在OB1中依次调用FB65,FB67,FB68,FB66,如图17,18,19,20所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图17

程序中的参数说明见表1:

参数名
参数说明
REQ
上升沿触发建立通信连接
ID
连接ID
CONNECT
与变量类型为UDT65的变量相连
DONE
为1时,连接正确建立
BUSY
为1时,正建立连接
ERROR
为1时,有故障发生
STATUS
故障代码

表1 FB65参数说明

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图18

程序中的参数说明见表2

参数名
参数说明
REQ
上升沿触发
ID
连接ID
LEN
数据发送的最大长度
DATA
数据发送的区域
ADDR
接收伙伴的地址参数
DONE
为1时,连接正确建立
BUSY
为1时,正建立连接
ERROR
为1时,有故障发生
STATUS
故障代码

表2 FB67参数说明

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图19

程序中的参数说明见表3

参数名
参数说明
EN_R
为1时使能
ID
连接ID
LEN
接收区域的长度
DATA
接收数据区
ADDR
发送伙伴的地址参数
NDR
为1时,接收完成
BUSY
为1时,正在接收
ERROR
为1时,有故障发生
STATUS
故障代码
RCVD_LEN
实际接收的数据长度

表3 FB68参数说明

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图20

程序中的参数说明见表4

参数名
参数说明
REQ
上升沿触发
ID
连接ID
DONE
为1时,断开连接完成
BUSY
为1时,正断开连接
ERROR
为1时,有故障发生
STATUS
故障代码

表4 FB66参数说明

OB1编写完成后,SIMATIC 315PN-1的程序块如图21所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图21

同理,为SIMATIC 315PN-2站编写程序,与SIMATIC 315PN-1类似,在DB101中定义数据类型为UDT65的变量,接着创建DB102,定义一个变量DB_VAR,变量类型为UDT66。在OB1中调用FB65,FB67,FB68,FB66。将硬件组态和程序分别下到两个S7300站中。
在cpu运行的情况下分别监控两个站OB1的状态。首先在两个站的FB65中,将“REQ”置1,使连接建立。然后将SIMATIC 315PN-1 MB100-MB109赋值B#16#13,同时在SIMATIC 315PN-2站中将FB68的EN_R置1,接着在SIMATIC 315PN-1的FB67中,将REQ设置上升沿信号,此时SIMATIC 315PN-2站的MB200-MB209接收到来自SIMATIC 315PN-1站的数据B#16#13,如图22所示:

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图22

同样的操作,将SIMATIC 315PN-2的MB100-MB109赋值B#16#08,SIMATIC 315PN-1的MB200-MB209接收到B#16#08,图23所示。

使用 Open Communication Wizard 建立开放式UDP 通信

使用 Open Communication Wizard 建立开放式UDP 通信

图23


5. 常见问题
• ® 接收区的长度怎么指定?
答:如果LEN不为0,区域长度由LEN的值指定;如果LEN为0,则由DATA参数长 度信息指定。
• ® 接收区能否大于发送区?
答:如果接收区大于发送区,则发送区的所有数据都将输入到接收区中。然后将NDR设置为TRUE,并将发送数据的长度写入RCVD_LEN。
• ® FB68 ERROR=1,STATUS=W#16#8088 是什么原因?
答:如果选择了比发送数据长度小的接收区,则FB68不向接收区复制任何数据,并返回下列错误信息:ERROR=1,STATUS=W#16#8088。




回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索