- {{item.name}}
使用 Open Communication Wizard 建立开放式 ISO on TCP 通信
- 0
- 335
- 6134
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
图1
解决方案
要通过 S7-PN CPU 的 集成PROFINET 接口实现开放的 ISO on 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_ ISO _wizard,建立两个315PN/DP站。安装并打开向导。从路径“开始SimaticOpen Communication Wizard Open Communication Wizard”打开向导。打开后如图3所示,点击下一步:
图3
在图4中选择STEP7项目以及块文件夹,点击下一步,如图5所示:
图4
图5
在图5中选择New, 然后点击下一步,如图6所示:
图6
在图6中选择ISO on 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 A 与partnet B 本地TSAP-ID,选中CPU 3xx。点击下一步,如图10所示:
图10
在图10中分别定义用于ISO on TCP通信的数据连接结构的名称UDT65, 以及在项目open_ ISO _wizard中选择块文件夹。点击下一步执行编译,如图11所示:
图11
编译无误后如图12所示:
图12
点击Finish完成向导的配置。这样在项目open_ISO_wizard的块中生成了UDT65, 如图13所示。
图13
4. 在STEP7中为项目open_ISO_wizard编写程序
首先为Active编写程序。在SIMATIC 315PN-1的块中创建DB101,定义一个变量DB_VAR,变量类型为UDT65。如图14所示。
图14
在OB1中依次调用FB65,FB63,FB64,FB66,如图15,16,17,18所示:
图15
程序中的参数说明见表1
参数名 | 参数说明 |
REQ | 上升沿触发建立通信连接 |
ID | 连接ID |
CONNECT | 与变量类型为UDT65的变量相连 |
DONE | 为1时,连接正确建立 |
BUSY | 为1时,正建立连接 |
ERROR | 为1时,有故障发生 |
STATUS | 故障代码 |
表1 FB65参数说明
图16
程序中的参数说明见表2
参数名 | 参数说明 |
REQ | 上升沿触发 |
ID | 连接ID |
LEN | 数据发送的最大长度 |
DATA | 数据发送的区域 |
DONE | 为1时,连接正确建立 |
BUSY | 为1时,正建立连接 |
ERROR | 为1时,有故障发生 |
STATUS | 故障代码 |
表2 FB63参数说明
图17
程序中的参数说明见表3
参数名 | 参数说明 |
EN_R | 为1时使能 |
ID | 连接ID |
LEN | 接收区域的长度 |
DATA | 接收数据区 |
NDR | 为1时,接收完成 |
BUSY | 为1时,正在接收 |
ERROR | 为1时,有故障发生 |
STATUS | 故障代码 |
RCVD_LEN | 实际接收的数据长度 |
表3 FB64参数说明
图18
程序中的参数说明见表4
参数名 | 参数说明 |
REQ | 上升沿触发 |
ID | 连接ID |
DONE | 为1时,断开连接完成 |
BUSY | 为1时,正断开连接 |
ERROR | 为1时,有故障发生 |
STATUS | 故障代码 |
表4 FB66参数说明
OB1编写完成后,SIMATIC 315PN-1的程序块如图19所示:
图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所示:
图20
同样的操作,将SIMATIC 315PN-2的MB100-MB109赋值B#16#06,SIMATIC 315PN-1的MB200-MB209接收到B#16#06,图21所示。
图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,编程
剩余80%未阅读,请登录后下载/查看文档
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
- 使用 Open Communication Wizard 建立开放式 TCP 通信
- 使用 Open Communication Wizard 建立开放式 TCP 通信
- 使用 Open Communication Wizard 建立开放式 UDP 通信
- 使用S7-1200的CP卡建立开放式用户通信的前提条件是什么?
- PN CPU/CP的开放式通讯-Open IE
- 如何使用 TCON 通信指令编程建立两个 S7-1500 CPU 之间的开放式用户通信?
- 如何参数化 FB65 "TCON" 的 "local_device_id" ,以建立以太网的开放式通信?
- S7-1200与S7-300 的以太网TCP 及ISO on TCP通信
- S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
- 开放式 TCP/IP 通信的创建连接数据向导(开放式通信向导)
{{item.nickName}}