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

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

3天内不再提示

如何在S7-1500系列的两个CPU间创建一个编程连接

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-07-02 10:30 次阅读

简介

在以下示例中,在 S7-1500 系列的两个 CPU 间创建一个编程连接,并将一个字符串从 CPU 1 发送到 CPU 2。待发送字符串的数据类型为 STRING。

要求

CPU 1 中的程序

在全局数据块中,创建 9 个变量存储“TSEND_C”的数据。

5d119a14-173b-11ee-962d-dac502259ad0.png

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

5d2d93ea-173b-11ee-962d-dac502259ad0.png

程序段 1:互连“TSEND_C”指令的参数,如下所示:但请勿互连参数 CONNECT。

5d443186-173b-11ee-962d-dac502259ad0.png

程序段 2:保存 TSEND_C 的错误状态,如下所示。

5d682384-173b-11ee-962d-dac502259ad0.png

TSEND_C 的组态

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

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

输入字段 条目
端点 在下拉列表中,选择作为发送方和接收方的 CPU。
系统将自动输入接口、子网和地址。
连接数据 在下拉列表中选择“新建”(New),为每个 CPU 创建一个数据块。
该数据块用于存储连接数据。数据块的名称可任意设置。
为 CPU 1(本地 CPU)建立主动连接。
连接类型 选择条目“TCP”。
这意味着,连接建立时使用“TCP”协议的以太网连接。
组态模式 选择条目“使用程序块”(Use program block)。
这意味着,将通过编程连接建立连接。
连接 ID 在该通信连接中,输入任意一个选定的连接 ID。
该连接 ID 在项目中尚未分配。
伙伴端口 输入一个伙伴端口值。该值必须 >=2000。

5d80394c-173b-11ee-962d-dac502259ad0.png

CPU 2 中的程序

在全局数据块中,创建 10 个变量存储“TRCV_C”的数据。

5d9e22a4-173b-11ee-962d-dac502259ad0.png

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

5db691d6-173b-11ee-962d-dac502259ad0.png

程序段 1:互连“TRCV_C”指令的参数,如下所示:但请勿互连参数 CONNECT。

5e012dcc-173b-11ee-962d-dac502259ad0.png

程序段 2:保存 TRCV_C 的错误状态,如下所示。

5e2643d2-173b-11ee-962d-dac502259ad0.png

TRCV_C 的组态

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

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

5e3d25f2-173b-11ee-962d-dac502259ad0.png

连接建立的操作过程

要在 RUN 模式下建立通信连接,请按以下步骤操作:

对于 TRCV_C,将参数 EN_R 更改为“1”。
对于 TRCV_C,将参数 CONT 更改为“1”。
对于 TSEND_C,将参数 REQ 更改为“1”。
对于 TSEND_C,将参数 CONT 更改为“1”。

终止连接的操作过程

要在 RUN 模式下终止通信连接,请按以下步骤操作:

对于 TSEND_C,将参数 CONT 更改为“0”。
对于 TSEND_C,将参数 REQ 更改为“0”。
对于 TRCV_C,将参数 CONT 更改为“0”。
对于 TRCV_C,将参数 EN_R 更改为“0”。

CPU 1 的行为

输入参数 REQ(“start”)返回信号状态“TRUE”时,启动指令“TSEND_C”。输入参数 CONT(“comControl”)中的信号状态为“TRUE”时,“TSEND_C”指令将在 CPU 1 与 CPU 2 间创建一个通信连接。为此,可通过输入参数 CONNECT(或数据块“SLI_cDB_Connector”)检索该连接数据。

进行多次调用时,“TSEND_C”指令将传送输入参数 DATA(“sendData”)处检测到的数据记录。数据记录传送成功时,输出参数 DONE(“#statDone”)的信号状态为“TRUE”,且输出参数 STATUS(“status”)的值为“0000”。由于输出参数的值仅在有效时才显示,因此 DONE(“#statDone”)的成功状态将保存在变量“done”中。

将该数据记录发送到 CPU 2 后,将继续监视该通信连接(状态为“7004”)。输出参数 ERROR(“error”)或变量“memErrStatus”)可用于指示本示例中的执行过程是否出错。

5e6175a6-173b-11ee-962d-dac502259ad0.png

CPU 2 的行为

输入参数 EN_R(“start”)返回信号状态“TRUE”时,启动指令“TRCV_C”。输入参数 CONT(“comControl”)中的信号状态为“TRUE”时,“TRCV_C”指令将在 CPU 2 与 CPU 1 间创建一个通信连接。为此,可通过输入参数 CONNECT(或数据块“SLI_cDB_Connector”)检索该连接数据。

进行多次调用时,“TRCV_C”指令将接收所传送的数据记录。该数据记录将记录在参数 DATA(“rcvData”)中。数据记录传送成功时,输出参数 DONE(“done”)的信号状态为“TRUE”,且输出参数 STATUS(“status”)的值为“0000”。并通过输出参数 RCVD_LEN(“#statRcvLen”),确定 BYTE 中实际传送的数据记录长度。仅当传送成功时,才显示该值。之后,将检查“0”。

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

将“#statRcvLen”的值保存在“rcvLen”中。

将“#statDone”的值保存在“done”中。

将“#status”的值保存在“memErrStatus”中。

CPU 2 接收到该数据记录后,将继续监视该通信连接(状态为“7006”)。输出参数 ERROR(“error”)或变量“memErrStatus”)可用于指示本示例中的执行过程是否出错。

5e82f668-173b-11ee-962d-dac502259ad0.png

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

5cf1090c-173b-11ee-962d-dac502259ad0.png

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

审核编辑:汤梓红

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

    关注

    68

    文章

    10854

    浏览量

    211578
  • 程序
    +关注

    关注

    117

    文章

    3785

    浏览量

    81004
  • 字符串
    +关注

    关注

    1

    文章

    578

    浏览量

    20506
  • S7-1500
    +关注

    关注

    3

    文章

    300

    浏览量

    6392

原文标题:在 S7-1500 系列的两个 CPU 间创建一个编程连接,发送函数的编程示例

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

收藏 人收藏

    评论

    相关推荐

    S7-1500系列PLC+变频器+编码器组成位置控制系统设计原理

    S7-1500 Motion Control 支持轴的控制定位和移动,是各个 CPU S7-1500CPU S7-1500SP 的重要组
    发表于 04-07 16:08 3489次阅读

    S7-1500、ET系列的计数、测量、位置检测

    ,必须在通道组态中选择使用八输入。如果选择使用三输入,则可使用计数器。其它通道组态不允许使用任何计数器。
    发表于 09-27 10:34 9次下载
    <b class='flag-5'>S7-1500</b>、ET<b class='flag-5'>系列</b>的计数、测量、位置检测

    基于S7-1500、ET系列CPU的结构及使用

    本文介绍了 S7-1500 CPU、ET 200SP CPU 和 ET 200pro CPU 1516pro-2 PN 的各种存储区域,以及如何优化使用这些存储区域。本文档适用于
    发表于 09-27 10:42 5次下载
    基于<b class='flag-5'>S7-1500</b>、ET<b class='flag-5'>系列</b><b class='flag-5'>CPU</b>的结构及使用

    基于S7-1500的运动控制功能介绍

    CPU S7-1500 的运动控制功能,运动控制功能作为每一个 CPU S7-1500 的组件,支持轴的控制定位和移动,可以使用 PROFI
    发表于 09-27 10:58 18次下载
    基于<b class='flag-5'>S7-1500</b>的运动控制功能介绍

    西门子S7-1200 和 S7-1500编程指南pdf下载

    西门子S7-1200 和 S7-1500编程指南
    发表于 03-27 15:15 297次下载

    西门子S7-1200和S7-1500编程风格指南

    西门子S7-1200和S7-1500编程风格指南分享
    发表于 08-17 17:30 21次下载

    S7-1500S7-1500之间S7通信

    使用 STEP7 V14 在同一个项目中,新建两个S7-1500站点,然后做 S7 通讯。
    的头像 发表于 11-23 09:53 2992次阅读

    S7-1500 CPU支持与其它S7-1500 CPU进行直接数据交换

    从固件版本 V2.8 开始,S7-1500 CPU 支持与其它 S7-1500 CPU 进行直接数据交换。在直接数据交换的情况下,S7-1500
    的头像 发表于 11-29 09:53 4104次阅读

    S7-1500S7-1200 F-CPUFlexible F-Link通信

    从STEP7 Safety V15.1开始,S7-1200和S7-1500 F-CPU可以通过Flexible F-Link进行安全数据的
    的头像 发表于 01-31 13:40 1343次阅读

    西门子S7-1500 之间 S7 通信

    S7-1500S7-1500 之间 S7 通信 S7-1500 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端。
    的头像 发表于 05-29 14:04 5695次阅读
    西门子<b class='flag-5'>S7-1500</b> 之间 <b class='flag-5'>S7</b> 通信

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

    在以下示例中,将在 S7-1500 系列两个 CPU 创建
    的头像 发表于 07-08 17:16 7977次阅读
    TCON、TDISCON、TSEND和TRCV的<b class='flag-5'>编程</b>示例

    西门子博途:发送函数的编程示例

    在以下示例中,在 S7-1500 系列两个 CPU 创建
    的头像 发表于 07-10 10:41 3442次阅读
    西门子博途:发送函数的<b class='flag-5'>编程</b>示例

    S7-1200/S7-1500与精简面板仿真过程的步骤

    S7-1200/S7-1500与精简面板仿真有两个需要注意的问题。
    的头像 发表于 08-23 10:45 1898次阅读
    <b class='flag-5'>S7</b>-1200/<b class='flag-5'>S7-1500</b>与精简面板仿真过程的步骤

    基于S7-1500双边通信的组态编程步骤

    S7-1500 之间通过 BSEND/BRCV 方式进行双边通信的组态编程步骤,用于实现S7-1500 都在同项目中组态的场景。
    发表于 10-15 17:34 1740次阅读
    基于<b class='flag-5'>S7-1500</b>双边通信的组态<b class='flag-5'>编程</b>步骤

    使用PUT和GET指令通过S7连接两个CPU之间交换数据

    使用 PUT 和 GET 指令通过 S7 连接两个 CPU 之间交换数据。
    的头像 发表于 12-14 16:53 1.2w次阅读
    使用PUT和GET指令通过<b class='flag-5'>S7</b><b class='flag-5'>连接</b>在<b class='flag-5'>两个</b><b class='flag-5'>CPU</b>之间交换数据