0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-11-23 09:51 次阅读

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"

29355dd2-6a59-11ed-8abf-dac502259ad0.png

解决方案

要通过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所示:

296ae1c8-6a59-11ed-8abf-dac502259ad0.png

图2

3.配置OPEN Communication Wizard

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

299731c4-6a59-11ed-8abf-dac502259ad0.png

图3

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

2a187658-6a59-11ed-8abf-dac502259ad0.png

图4

2a6ed944-6a59-11ed-8abf-dac502259ad0.png

图5

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

2aa93f26-6a59-11ed-8abf-dac502259ad0.png

图6

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

2add45d2-6a59-11ed-8abf-dac502259ad0.png

图7

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

2b373b5a-6a59-11ed-8abf-dac502259ad0.png

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

2ba958a2-6a59-11ed-8abf-dac502259ad0.png

图9

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

2bdb008c-6a59-11ed-8abf-dac502259ad0.png

图10

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

2c228240-6a59-11ed-8abf-dac502259ad0.png

图11

2c45af36-6a59-11ed-8abf-dac502259ad0.png

图12

编译无误后如图13所示:

2c6db44a-6a59-11ed-8abf-dac502259ad0.png

图13

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

2c978d92-6a59-11ed-8abf-dac502259ad0.png

图14

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

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

2ceb94e6-6a59-11ed-8abf-dac502259ad0.png

图15

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

2d13f198-6a59-11ed-8abf-dac502259ad0.png

图16

程序中的参数说明见表1

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

表1 FB65参数说明

2d313028-6a59-11ed-8abf-dac502259ad0.png

图17

程序中的参数说明见表2

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

表2 FB63参数说明

2d5ab902-6a59-11ed-8abf-dac502259ad0.png

图18

程序中的参数说明见表3

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

表3 FB64参数说明

2d79452a-6a59-11ed-8abf-dac502259ad0.png

图19

程序中的参数说明见表4

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

表4 FB66参数说明

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

2db243fc-6a59-11ed-8abf-dac502259ad0.png

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

2e19a15a-6a59-11ed-8abf-dac502259ad0.png2e2fd844-6a59-11ed-8abf-dac502259ad0.png

2e46e76e-6a59-11ed-8abf-dac502259ad0.png

图21

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

2e777456-6a59-11ed-8abf-dac502259ad0.png2e8f0904-6a59-11ed-8abf-dac502259ad0.png

2ea6424a-6a59-11ed-8abf-dac502259ad0.png

图22

5.常见问题

接收区的长度怎么指定?

如果LEN不为0,区域长度由LEN的值指定;如果LEN为0,则由DATA参数长度信息指定。

接收功能块FB64的参数LEN怎么设置?

答:接收器无法检测数据流中的某条消息在何处结束以及下一条消息在何处开始。因此,建议将通讯伙伴接收功能块FB64的参数LEN设置为发送方FB63参数LEN的值,即通信双方发送区的长度与对方接收区的长度保持一致。

FB64有时显示故障代码80A1

答:通信双方的通信连接未成功建立,先执行FB66,然后再次调用FB65。

FB65DONE为什么一直为0

答:在连接建立的很短时间内DONE为1,然后复位到0,所以无法监控1的状态。可以通过采集它的上升沿信号来获取。

FB65显示故障代码873A?

答:功能块没有正确关联变量类型为UDT65的参数。检查所定义的变量以及相应的DB块。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211088
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1348

    浏览量

    78978
  • S7-300
    +关注

    关注

    8

    文章

    225

    浏览量

    34237
  • STEP7
    +关注

    关注

    4

    文章

    103

    浏览量

    32570

原文标题:S7-300 PN CPU之间的 TCP 通信(STEP7)

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子S7-200和S7-300进行的以太网通信

    S7-200和S7-300进行以太网通信,使用STEP 7 Micro/WIN32中的向导进行通信
    的头像 发表于 04-28 15:27 7978次阅读
    西门子<b class='flag-5'>S7</b>-200和<b class='flag-5'>S7-300</b>进行的以太网<b class='flag-5'>通信</b>

    S7-300与第三方的TCP通信_Server(STEP7)

    SIMATIC S7- 300 CPU集成了 PROFINET 接口,该接口除了具备连接 PROFINET总线通信功能,同时还可用于标准的 TCP
    的头像 发表于 04-03 09:13 4899次阅读

    S7-1200与S7-300 PN之间的以太网通信方法

    S7-1200 与 S7-300 PN之间的以太网通信可以通过 UDP 协议来实现,使用的通信
    的头像 发表于 04-11 09:44 6947次阅读

    S7-1200与S7-300 PN/S7-400 PN UDP STEP7通信

    S7-1200 与 S7-300 PN之间的以太网通信可以通过 UDP 协议来实现,使用的通信
    的头像 发表于 04-11 10:15 4497次阅读

    使用S7-1200与S7-300的集成DP接口进行主从通信

    第二种情况:CPU 1214C 和 S7-300 CPU 使用 Step7 V12 不在一个项目中的操作。CPU 1214C 使用
    的头像 发表于 04-19 10:57 4551次阅读

    STEP7 5.5中对S7-300 CPU程序的上载过程

    本文简要讲解在STEP7 5.5中对S7-300 CPU程序的上载过程,S7-400 CPU 的上载方法与此相同,可作参考。
    的头像 发表于 07-15 10:39 1w次阅读

    S7-300与第三方的TCP通信_Server(STEP7)

    SIMATIC S7- 300 CPU集成了 PROFINET 接口,该接口除了具备连接 PROFINET总线通信功能,同时还可用于标准的 TCP
    的头像 发表于 01-05 09:58 3941次阅读

    S7-300集成DP口与S7-200的DP主从通信设计实现

    S7-300S7-200通过EM277 进行PROFIBUS DP通讯,需要在STEP7中进行S7-300站组态,在S7-200系统中不需
    的头像 发表于 01-29 16:14 4431次阅读

    STEP7 5.5中对S7-300 CPU程序的上载过程

    本文简要讲解在STEP7 5.5中对S7-300 CPU程序的上载过程,S7-400 CPU 的上载方法与此相同,可作参考。
    的头像 发表于 02-12 15:01 3875次阅读

    S7-300/400集成PN口 MODBUS TCP通讯(TIA)

    下面以S7-300单站系统及Modbus Slave软件为例,详细介绍如何将S7-300单站系统CPU的集成PN口配置为Client,Modbus Slave作为Server进行Mod
    的头像 发表于 03-08 11:24 7024次阅读

    S7-1200 CPUS7-300 CP STEP7 UDP通信

    S7-1200 与 S7-300 CP 之间的以太网通信可以通过 UDP 协议来实现,使用的通信指令是在
    的头像 发表于 04-08 10:48 1938次阅读

    S7-1200 CPUS7-300 CP TIA UDP通信

    S7-1200 与 S7-300 CP 之间的以太网通信可以通过 UDP 协议来实现,使用的通信指令是在
    的头像 发表于 04-08 10:49 2347次阅读

    S7-1200与S7-300的选型区别

    在硬件扩展方面,S7-300的主机架多支持八个扩展模块,而S7-1200支持扩展多八个信号模块和多三个通信模块。以S7-300 CPU313
    的头像 发表于 05-04 15:18 1650次阅读
    <b class='flag-5'>S7</b>-1200与<b class='flag-5'>S7-300</b>的选型区别

    S7-300/400集成PN口MODBUS TCP通讯(STEP7)

    该功能块库可以用于S7-300/400单站系统或ET200SCPU的接口模块通过CPU的集成PN口进行ModbusTCP通讯。
    的头像 发表于 05-29 14:23 5445次阅读
    <b class='flag-5'>S7-300</b>/400集成<b class='flag-5'>PN</b>口MODBUS <b class='flag-5'>TCP</b>通讯(<b class='flag-5'>STEP7</b>)

    浅谈S7-300 CPU集成PN口配置的Modbus TCP通讯技术

    S7-300单站系统及Modbus Slave软件为例,详细介绍如何将S7-300单站系统CPU的集成PN口配置为Client,Modbus Slave作为Server进行Modbu
    发表于 10-17 15:36 2781次阅读
    浅谈<b class='flag-5'>S7-300</b> <b class='flag-5'>CPU</b>集成<b class='flag-5'>PN</b>口配置的Modbus <b class='flag-5'>TCP</b>通讯技术