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

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

3天内不再提示

TCON、TDISCON、TSEND和TRCV的编程示例

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-07-08 17:16 次阅读

简介

在以下示例中,将在 S7-1500 系列的两个 CPU 间创建一个编程连接,并将数据记录从 CPU 1 发送到 CPU 2 中。

要求

两个 S7-1500 系列的 CPU 通过 PROFINET 进行互连,它们之间的连接尚未组态。

823717ae-1cba-11ee-962d-dac502259ad0.png

基于“属性 > 保护”(Properties > Protection) 中的低保护级别,可确保每个 CPU 都可进行读写访问。

CPU 1 中的程序:数据的存储

为数据记录,创建以下 PLC 数据类型。

824f46ee-1cba-11ee-962d-dac502259ad0.png

要进行数据传送,需基于所创建的 PLC 数据类型,创建以下数据块(“SLI_plcDB_sendData_TSEND”)。

82673c36-1cba-11ee-962d-dac502259ad0.png

要对该数据进行存储,需使用以下结构和变量,创建一个全局数据块(“SLI_gDB_TSEND”)。

827ea13c-1cba-11ee-962d-dac502259ad0.png

CPU 1 中的程序:参数互连

创建函数块“SLI_FB_TSEND”,并在该数据块中创建以下局部变量。

82b2d8da-1cba-11ee-962d-dac502259ad0.png

程序段 1:互连“TCON”指令的参数,如下所示:

82d98872-1cba-11ee-962d-dac502259ad0.png

程序段 2:如果 TCON 出错,则保存状态信息,如下所示。

82f29542-1cba-11ee-962d-dac502259ad0.png

程序段 3:互连“TSEND”指令的参数,如下所示:

831373ac-1cba-11ee-962d-dac502259ad0.png

程序段 4:如果 TSEND 出错,则保存状态信息,如下所示。

833acb96-1cba-11ee-962d-dac502259ad0.png

程序段 5:互连“TDISCON”指令的参数,如下所示:

8352e06e-1cba-11ee-962d-dac502259ad0.png

程序段 6:如果 TDISCON 出错,则保存状态信息,如下所示。

83771754-1cba-11ee-962d-dac502259ad0.png

CPU 1 中的程序:TCON 的组态

要互连输入参数 CONNECT,可通过“属性 > 组态”(Properties > Configuration) 打开指令“TCON”的向导。

对 TCON 的组态进行如下设置:

输入字段 条目
端点 在下拉列表中,选择作为发送方和接收方的 CPU。
系统将自动输入接口、子网和地址。
连接数据 在下拉列表中选择“新建”(New),为每个 CPU 创建一个数据块。
该数据块用于存储连接数据。数据块的名称可任意设置。
为 CPU 1(本地 CPU)建立主动连接。
连接类型 选择条目“ISO-on-TCP”。
这意味着,建立连接时将使用“ISO-on-TCP”协议的以太网连接。
连接 ID 在该通信连接中,输入任意一个选定的连接 ID。
该连接 ID 在项目中尚未分配。确保数值与所用变量“connectionID”中的值相同。
TSAP ID 在选择“ISO-on-TCP”连接类型时,系统将自动输入详细的地址信息。

839a4828-1cba-11ee-962d-dac502259ad0.png

CPU 2 中的程序:数据的存储

为数据记录,创建以下 PLC 数据类型。

824f46ee-1cba-11ee-962d-dac502259ad0.png

要进行数据传送,需基于所创建的 PLC 数据类型,创建以下数据块(“SLI_plcDB_rcvData_TRCV”)。

83cab7ce-1cba-11ee-962d-dac502259ad0.png

要对该数据进行存储,需使用以下结构和变量,创建一个全局数据块(“SLI_gDB_TRCV”)。

83e8faae-1cba-11ee-962d-dac502259ad0.png

CPU 2 中的程序:参数互连

创建函数块“SLI_FB_TRCV”,并在该数据块中创建以下局部变量。

841d790a-1cba-11ee-962d-dac502259ad0.png

程序段 1:互连“TCON”指令的参数,如下所示:

84472e80-1cba-11ee-962d-dac502259ad0.png

程序段 2:如果 TCON 出错,则保存状态信息,如下所示。

846dad44-1cba-11ee-962d-dac502259ad0.png

程序段 3:互连“TRCV”指令的参数,如下所示:

8486d04e-1cba-11ee-962d-dac502259ad0.png

程序段 4:如果 TRCV 出错,则保存状态信息,如下所示。

849aa8d0-1cba-11ee-962d-dac502259ad0.png

程序段 5:互连“TDISCON”指令的参数,如下所示:

84e4d9e6-1cba-11ee-962d-dac502259ad0.png

程序段 6:如果 TDISCON 出错,则保存状态信息,如下所示。

850bfad0-1cba-11ee-962d-dac502259ad0.png

CPU 2 中的程序:TCON 的组态

根据 CPU 1 / TCON 的示例,对 CPU 2 / TCON 连接进行以下设置:

说明
连接数据
完成 CPU 1 / TCON 的组态之后,已创建了一个数据块(“PLC_Tsend_Connection_DB”,“PLC_Trcv_Connection_DB”),并带有为各 CPU 存储的连接数据。如果不希望创建新的数据块并输入连接数据,则可直接使用创建的数据块(“PLC_Tsend_Connection_DB”,“PLC_Trcv_Connection_DB”)。
如果要选择已创建的数据块,则这些数据块必须位于“项目树”(project tree) 的“程序块 > 系统块”(Program blocks > System blocks) 中。

8535196a-1cba-11ee-962d-dac502259ad0.png

建立连接的操作步骤

请遵循相关操作步骤的顺序:

1.对于 CPU 2 / TCON,将参数 REQ 更改为“TRUE”。

2.对于 CPU 1 / TCON,将参数 REQ 更改为“TRUE”。

3.对于 CPU 2 / TCON,将参数 REQ 更改为“FALSE”。

4.对于 CPU 1 / TCON,将参数 REQ 更改为“FALSE”。

终止连接的操作步骤

请遵循相关操作步骤的顺序:

1.对于 CPU 1 / TDISCON,将参数 REQ 更改为“TRUE”。

2.对于 CPU 2 / TDISCON,将参数 REQ 更改为“TRUE”。

3.对于 CPU 1 / TDISCON,将参数 REQ 更改为“FALSE”。

4.对于 CPU 2 / TDISCON,将参数 REQ 更改为“FALSE”。

CPU 1 的行为

程序段 1 (TCON):

输入参数 REQ(“TCON.start”)的信号状态为“TRUE”时,启动指令“TCON”。多次调用时,指令“TCON”将创建与伙伴 CPU 的通信连接。为此,可通过输入参数 CONNECT(或数据块“PLC_Trcv_Connection_DB”)检索该连接数据。

连接设置成功时,输出参数 DONE(“#doneCON”)的信号状态为“TRUE”,且输出参数 STATUS(“TCON.status”)的值为“0000”。由于输出参数的值仅在有效时才显示,因此成功状态将保存在变量“TCON.done”中。复位所有之前连接终止的成功状态(“TDISCON.done”)。

输出参数 ERROR(“TCON.error”)或变量“TCON.memErrStatus”)可用于指示本示例中的执行过程是否出错。

85527bfe-1cba-11ee-962d-dac502259ad0.png

程序段 2 (TCON):

如果 TCON 发出信号指示错误(“TCON.error”为“TRUE”),则所报告的状态(“TCON.status”)将进行永久性存储(“TCON.memErrStatus”)。

程序段 3 (TSEND):

根据输入参数 ID(“connectionID”),指令“TSEND”可确定待使用的通信连接。

输入参数 REQ(“TSEND.start”)的信号状态为“TRUE”时,启动指令“TSEND”。进行多次调用时,“TSEND”指令将传送输入参数 DATA(“SLI_plcDB_sendData_TSEND”)处检测到的数据记录。

数据记录传送成功时,输出参数 DONE(“#doneSEND”)的信号状态为“TRUE”,且输出参数 STATUS(“TSEND.status”)的值为“0000”。由于输出参数的值仅在有效时才显示,因此成功状态将保存在变量“TSEND.done”中。

输出参数 ERROR(“TSEND.error”)或变量“TSEND.memErrStatus”)可用于指示本示例中的执行过程是否出错。

85739c3a-1cba-11ee-962d-dac502259ad0.png

程序段 4 (TSEND):

如果 TSEND 发出信号指示错误(“TSEND.error”为“TRUE”),则所报告的状态(“TSEND.status”)将进行永久性存储(“TSEND.memErrStatus”)。

程序段 5 (TDISCON):

输入参数 REQ(“TDISCON.start”)的信号状态为“TRUE”时,启动指令“TDISCON”。多次调用时,指令“TDISCON”将终止该通信连接。为此,需检索输入参数 ID(“connectionID”)中使用的通信连接。

连接终止成功时,输出参数 DONE(“#doneDISC”)的信号状态为“TRUE”,且输出参数 STATUS(“TDISCON.status”)的值为“0000”。由于输出参数的值仅在有效时才显示,因此成功状态将保存在变量“TDISCON.done”中。复位连接设置(“TCON.done”)和数据传送(“TSEND.done”)的成功消息。

输出参数 ERROR(“TDISCON.error”)或变量“TDISCON.memErrStatus”)可用于指示本示例中的执行过程是否出错。

858a7b4e-1cba-11ee-962d-dac502259ad0.png

程序段 6 (TDISCON):

如果 TDISCON 发出信号指示错误(“TDISCON.error”为“TRUE”),则所报告的状态(“TDISCON.status”)将进行永久性存储(“TDISCON.memErrStatus”)。

CPU 2 的行为

TCON 和 TDISCON 的运行与 CPU 1 中的相同。

85b22716-1cba-11ee-962d-dac502259ad0.png

85cbe6f6-1cba-11ee-962d-dac502259ad0.png

程序段 3 (TRCV):

根据输入参数 ID(“connectionID”),指令“TRCV”可确定待使用的通信连接。

输入参数 EN_R(“TRCV.start”)的信号状态为“TRUE”时,启动指令“TRCV”。进行多次调用时,“TRCV”指令将接收所传送的数据记录。并检查输入参数 DATA(“SLI_plcDB_rcvData_TRCV”)处的该数据记录。

85ea9d08-1cba-11ee-962d-dac502259ad0.png

并通过输出参数 LEN(“#length”),确定 BYTE 中实际传送的数据记录长度。仅当传送成功时,才显示该值。之后,将检查“0”。数据记录接收成功时,输出参数 DONE(“#doneRCV”)的信号状态为“TRUE”,且输出参数 STATUS(“TRCV.status”)的值为“0000”。

由于输出参数的值仅在有效时才显示,因此请进行以下操作步骤:

成功状态保存在变量“TRCV.done”中。

BYTE 长度保存在变量“TRCV.readLength”中。

输出参数 ERROR(“TRCV.error”)或变量“TRCV.memErrStatus”)可用于指示本示例中的执行过程是否出错。

8607eda4-1cba-11ee-962d-dac502259ad0.png

程序段 4 (TRCV):

如果 TRCV 发出信号指示错误(“TRCV.error”为“TRUE”),则所报告的状态(“TRCV.status”)将进行永久性存储(“TRCV.memErrStatus”)。





审核编辑:刘清

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

    关注

    113

    文章

    6051

    浏览量

    141800
  • 西门子
    +关注

    关注

    92

    文章

    2909

    浏览量

    114226
  • AUTOSAR
    +关注

    关注

    9

    文章

    334

    浏览量

    21288
  • Profinet
    +关注

    关注

    6

    文章

    835

    浏览量

    23068
  • S7-1500
    +关注

    关注

    3

    文章

    300

    浏览量

    5961

原文标题:西门子博途:TCON、TDISCON、TSEND 和 TRCV 的编程示例

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

收藏 人收藏

    评论

    相关推荐

    S7-1200与S7-1200/S7-1500不同项目下UDP通信

    S7-1200 与 S7-1200 之间的以太网通信可以通过 UDP 协议来实现。本列中使用TSEND_C,TRCV_C指令建立双方的UDP通讯。TSEND_C,TRCV_C指令在两台
    的头像 发表于 01-10 09:19 4892次阅读

    控制寄存器TCON相关资料推荐

    一、定时器0/11、控制寄存器TCON为定时器/计数器T0、T1的控制寄存器,同时也锁存T0、T1溢出中断源和外部请求中断源等,TCON格式如下:TCON : 定时器/计数器中断控制寄存器 (可位寻址)]
    发表于 12-02 08:26

    第6章 部件工作原理与编程示例

    第6章 部件工作原理与编程示例
    发表于 10-27 09:44 3次下载
    第6章 部件工作原理与<b class='flag-5'>编程</b><b class='flag-5'>示例</b>

    S71200 CPU通过ETHERNET与S7300 PN口之间TCP通信的方式

    S7-1200与S7-300PN口之间的以太网通信可以通过TCP协议来实现,使用的通信指令是在双方CPU 调用T-block(TSEND_C,TRCVC,TCONTDISCONTSEND
    发表于 12-02 08:00 4次下载
    S71200 CPU通过ETHERNET与S7300 PN口之间TCP通信的方式

    通信协议之间的建立连接以及数据传输

    无连接管理功能的通讯块 1. „ TCON „ 建立连接 2.„TDISCON“ 断开连接 3. „TSEND“ & „TRCV “ 发送和接收数据(TCP 和ISO
    的头像 发表于 06-04 16:18 3057次阅读

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

    S7-1200 与 S7-300 PN 口之间的以太网通信可以通过 UDP 协议来实现,使用的通信指令是在双方 CPU 调用通信-开放式用户通信TSEND_C,TRCV_C(1200支持,300
    的头像 发表于 04-11 09:44 6339次阅读

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

    S7-1200 与 S7-300 PN 口之间的以太网通信可以通过 UDP 协议来实现,使用的通信指令是在双方 CPU 调用通信-开放式用户通信TSEND_C,TRCV_C(1200支持,300不支持)或TCON
    的头像 发表于 04-11 10:15 3948次阅读

    西门子1200PLC之间的TCP通讯组态编程教程

    S7-1200 与 S7-1200 之间的以太网通信可以通过 TCP 协议来实现,使用的通信指令是在双方 CPU 调用 T-block (TSEND_C,TRCV_C,TCONTDISCON
    的头像 发表于 02-13 13:52 7951次阅读
    西门子1200PLC之间的TCP通讯组态<b class='flag-5'>编程</b>教程

    运动编程示例:定时按压操作

    运动编程示例:定时按压操作
    的头像 发表于 03-14 14:42 581次阅读
    运动<b class='flag-5'>编程</b><b class='flag-5'>示例</b>:定时按压操作

    运动编程示例:重复运动的循环功能

    运动编程示例:重复运动的循环功能
    的头像 发表于 03-13 16:59 914次阅读
    运动<b class='flag-5'>编程</b><b class='flag-5'>示例</b>:重复运动的循环功能

    UDP和调试助手介绍

    S7-1200支持UDP单播和UDP广播,不支持UDP组播。UDP是一种无连接的通信协议,通过调用TSEND_C、TRCV_C、TCON等指令可以与其他设备或软件进行UDP通信。
    的头像 发表于 03-20 11:22 8102次阅读

    S7-1200 CPU与S7-300 CP STEP7 UDP通信

    S7-1200 与 S7-300 CP 之间的以太网通信可以通过 UDP 协议来实现,使用的通信指令是在S7-1200 CPU 侧调用通信-开放式用户通信TSEND_C,TRCV_C指令或TCON
    的头像 发表于 04-08 10:48 1466次阅读

    S7-1200 CPU与S7-300 CP TIA UDP通信

    S7-1200 与 S7-300 CP 之间的以太网通信可以通过 UDP 协议来实现,使用的通信指令是在S7-1200 CPU 侧调用通信-开放式用户通信TSEND_C,TRCV_C指令或TCON
    的头像 发表于 04-08 10:49 1782次阅读

    移动数据的编程示例

    编程示例 在此编程示例中,将移动在生产班次期间为示例收集的数据值以作进一步处理。收集的数据放在 ARRAY 中。通过“MOVE_BLK_VA
    的头像 发表于 08-23 10:10 941次阅读
    移动数据的<b class='flag-5'>编程</b><b class='flag-5'>示例</b>

    开放式用户通讯TCP,ISO- on- TCP,UDP介绍

    TSEND“ & „TRCV “ 发送和接收数据(TCP 和ISO - on- TCP)
    的头像 发表于 09-08 09:55 1510次阅读
    开放式用户通讯TCP,ISO- on- TCP,UDP介绍