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

n

1. 概述

介绍

SIMATIC S7- PN CPU包含一个集成的 PROFINET 接口,该接口除了具有 PROFINET I/O功能外还具有 ISO on TCP 通信功能。通过该集成以太网接口组态 ISO on TCP 通信时,只能使用开放式通信专用的功能块。依据RFC1006的ISO on TCP协议,在STEP7”通讯块”的“标准库”(图1所示)中提供了下列FB,用于通过用户程序与符合以太网标准的通讯伙伴进行数据交换:
• ® 用于分配连接参数的UDT 65 "TCON_PAR"
• ® 用于建立连接的FB 65 "TCON"
• ® 用于终止连接的FB 66 "TDISCON"
• ® 用于发送数据的FB 63 "TSEND"
• ® 用于接收数据的FB 64 "TRCV"
OPEN Communication Wizard下载地址链接:25209116

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

图1n

解决方案
要通过 S7-PN CPU 的 集成PROFINET 接口实现开放的 ISO on 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 建立开放式ISO on TCP 通信
图2n

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

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

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

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

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

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

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

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

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

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

使用 Open Communication Wizard 建立开放式ISO on 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 建立开放式ISO on TCP 通信
图9n

在图9中设定partnet A 与partnet B 本地TSAP-ID,选中CPU 3xx。点击下一步,如图10所示:n

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

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

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

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

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

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

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

图13n

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

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

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

图14n

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

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

图15n

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

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

表1 FB65参数说明n

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

图16n

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

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

表2 FB63参数说明n

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

图17n

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

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

表3 FB64参数说明

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

图18

程序中的参数说明见表4

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

表4 FB66参数说明

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

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

图19

同理,为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#05,同时在SIMATIC 315PN-2站中将FB64的EN_R置1,接着在SIMATIC 315PN-1的FB63中,将M0.2设置上升沿信号,此时SIMATIC 315PN-2站的MB200-MB209接收到来自SIMATIC 315PN-1站的数据B#16#05,如图20所示:

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

图20

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

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

图21

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

引用声明

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

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

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

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

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

相关推荐

发表回复

登录后才能评论