• {{item.name}}
工业以太网 {{item.name}}
{{item2.name}}
更多
常问问题

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

star star star star star
5.0 分
  • 通信(通讯)
  • 系统接口
文档编号:90468366| 文档类型:常问问题| 发布时间:2023年11月23日
  • 0
  • 668
  • 1280
描述了如何使用 Open Communication Wizard 建立开放式 TCP 通信。

1. 概述

介绍

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

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

OPEN Communication Wizard下载地址链接:25209116



图1

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

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


图2

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


图3

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


图4


图5

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


图6

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


图7

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


图8

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


图9

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


图10

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


图11


图12

编译无误后如图13所示:


图13

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



图14


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

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



图15

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



图16

程序中的参数说明见表1

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

表1 FB65参数说明



图17

程序中的参数说明见表2

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

表2 FB63参数说明



图18

程序中的参数说明见表3

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

表3 FB64参数说明



图19

程序中的参数说明见表4

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

表4 FB66参数说明

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



图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所示:



图21

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



图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,编程


您可以前往全球资源库查看此文档:

http://support.automation.siemens.com/CN/view/zh/90468366

剩余80%未阅读,请登录后下载/查看文档

  • 评论
更多
  • 分享

    扫码分享

提示
您即将前往“全球技术资源库”。
“全球技术资源库”的用户名与本地支持中心(下载中心、技术论坛、找答案、1847工业学习平台)的用户名不通用。如果需要在全球技术资源库下载文档,您需要重新登录或注册。
确定

考证咨询点我

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。