• {{item.name}}
SIMATIC S7-400系列 {{item.name}}
{{item2.name}}
更多

S7-300集成PN口的TCP通信(STEP7)

star star star star star
0 分
  • 通信(通讯)
  • 基础理论
  • S7-300
发布时间:2024年04月25日
  • 0
  • 162
S7-300 PN CPU之间的 TCP 通信(STEP7)

S7-300 PN CPU之间的 TCP 通信(STEP7)

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下载地址链接:http://support.automation.siemens.com/CN/view/zh/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块。



剩余80%未阅读,请登录查看大全章节内容

  • 评论
更多
  • 分享

    扫码分享

0元领课点我

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