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

n

1. 概述

介绍

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

• 用于分配连接参数的UDT 65 "TCON_PAR"
• 用于建立连接的FB 65 "TCON"
• 用于终止连接的FB 66 "TDISCON"
• 用于发送数据的FB 63 "TSEND"
• 用于接收数据的FB 64 "TRCV"n

OPEN Communication Wizard下载地址链接:25209116

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

图1n

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

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

使用 Open Communication Wizard 建立开放式 TCP 通信
图2n

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

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

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

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

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

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

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

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

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

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

使用 Open Communication Wizard 建立开放式 TCP 通信
图8n

在图8中设置两个315PN/DP的“Coection ID”“Coection name ”“Coection establishment”“IP address”“Used interface”,在本例中,将partner A设置为Active,即为客户端。Partner B设置为Passive,即为服务器端。对于“Unspecified coection partner”,如果选中,则服务器端不指定客户端的IP地址;如果不选中,则服务器端指定客户端的IP地址。点击下一步,如图9所示:n

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

在图9中设定partnet B的端口号,本例中设置为2000。点击下一步,如图10所示:n

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

在图10中分别定义用于TCP通信的数据连接结构的名称UDT65, 以及在项目open_TCP_wizard中选择块文件夹。点击下一步如图11所示,再点击下一步如图12所示:n

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

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

编译无误后如图13所示:n

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

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

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

图14n

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

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

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

图15n

在OB1中依次调用FB65,FB63,FB64,FB66,如图16,17,18,19所示:n

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

图16n

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

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

表1 FB65参数说明n

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

图17n

程序中的参数说明见表2n

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

表2 FB63参数说明n

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

图18n

程序中的参数说明见表3n

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

表3 FB64参数说明

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

图19

程序中的参数说明见表4

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

表4 FB66参数说明

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

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

图20

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

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

图21

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

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

图22

5. 常见问题
• ® 接收区的长度怎么指定?
如果LEN不为0,区域长度由LEN的值指定;如果LEN为0,则由DATA参数长度信息指定。
® 接收功能块FB64的参数LEN怎么设置?
答:接收器无法检测数据流中的某条消息在何处结束以及下一条消息在何处开始。因此,建议将通讯伙伴接收功能块FB64 的参数LEN设置为发送方FB63 参数LEN的值,即通信双方发送区的长度与对方接收区的长度保持一致。
® FB64有时显示故障代码80A1?
答:通信双方的通信连接未成功建立,先执行FB66,然后再次调用FB65。
® FB65的DONE为什么一直为0?
答:在连接建立的很短时间 内DONE为1,然后复位到0,所以无法监控1的状态。可以通过采集它的上升沿信号来获取。
® FB65显示故障代码873A?
答:功能块没有正确关联变量类型为UDT65的参数。检查所定义的变量以及相应的DB块。

引用声明

1. “System software for S7-300/400 system- and standard functions”手册 1214574

2. 生成使用 Open Communication Wizard 建立开放式 TCP/IP 通信所需的连接数据 25209116

关键词:
开放式通信向导,PN 接口,TCP,STEP7,编程

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc325892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论