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

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

3天内不再提示

S7-1500和S7-1200 F-CPU间Flexible F-Link通信

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-01-31 13:40 次阅读

S7-1500和S7-1200 F-CPU间Flexible F-Link通信

从STEP7 Safety V15.1开始,S7-1200和S7-1500 F-CPU间可以通过Flexible F-Link进行安全数据的交互。这表示安全数据能够以数组的形式通过开放式通信进行交互。

通过Flexible F-Link进行安全数据交换具有以下特点:

安全数据需要建立在PLC数据类型(UDT)中;

每个UDT中最大支持100个字节的数据交互,支持故障安全数据类型;

适用于S7-1200和S7-1500 F-CPU;

用于通信的DB块由系统自动生成;

每组通信具有唯一的UUID;

要求

S7-1500 F-CPU的固件不低于V2.0;

S7-1200 F-CPU的固件版本不低于V4.2;

Safety system的版本不低于V2.2。

更多的关于创建和编写、通信的安全程序的信息请参考故障安全系统组态和编程手册

Flexible F-Link通信过程说明

Flexible F-Link安全通信是以开放式用户通信(例如TCP)的方式将一个F-CPU的F-DB数据发送到另一个F-CPU的F-DB中。示意过程如图A所示:

853516da-a11e-11ed-bfe3-dac502259ad0.png

图A. Flexible F-Link 通信示意图

F-CPU间组态Flexible F-Link,通过开放式用户通信(如TCP)进行数据传输,本质上是两个F-CPU间的F-communication DB间的数据交互。

通信过程如下(以PLC1发送安全数据到PLC2为例说明):

PLC1在安全主程序 (Main_Safety_RTG1)中编程,将需要交互的安全数据从全局F-DB中传送至F-communication DB中。数据为UDT类型。

PLC1调用发送指令(如TSEND)将F-communication DB中的数据发送到PLC2,如图A "SEND_ARRAY"。

PLC2调用接受指令(如TRCV)接收数据,数据传送至F-communication DB中,如图A "RCV_ARRAY"。同时将交互的安全数据从F-communication DB中取出传送至全局F-DB中。

PLC2调用发送指令(如TSEND),将安全校验数据发送到PLC1,如图A "ACK_SEND_ARRAY"。

PLC1调用接受指令(如TRCV)接收数据,数据传送至F-communication DB中,如图A "ACK_RCV_ARRAY"。

PLC1验证安全校验数据无误,执行下一次的安全数据的发送。

F-communication DB的说明

F-communication DB在两个F-CPU进行Flexible F-Link设置后分别自动生成,设置过程见下文示例。如图B所示:

85446644-a11e-11ed-bfe3-dac502259ad0.png

图B. F-communication DBs

发送端与接收端的F-communication DB 数据结构不同。如图C所示:

8551485a-a11e-11ed-bfe3-dac502259ad0.png

图C.F-communication 发送/接收DB

SEND_DATA:需要发送给伙伴的安全数据,由用户自定义生成。安全数据需要用户在安全主程序中编程进行传送。

ACK_RCV_ARRAY: 接收的安全校验数据。

SEND_ARRAY: 需要通过发送指令(如TSEND)发送给伙伴的数组,由安全数据和校验信息组成。

RCV_ARRAY: 接收端PLC通过接收指令(如TRCV)接收的数组,由安全数据和校验信息组成。

RCV_DATA: 接收端接收到的安全数据,即由发送端PLC交互的数据。用户可在安全主程序编程将该数据传送至F-DB中。

ACK_SEND_ARRAY: 需要接收端PLC通过发送指令(如TSEND)发送出去的安全校验信息。

概括来说,对于发送端,①②位于DB块的"Input"接口区,需要由外部传入数据;③位于DB块的"Output"接口区,需要将该数据发送出去。而对于接收端,④位于DB块的"Input"接口区,需要由外部传入数据;⑤⑥位于DB块的"Output"接口区,需要将该数据发送出去。

此外,接收端DB块中的PASS_OUT为TRUE时,将输出故障替代值"PASS_VALUES"。当"ACK_REQ"为TRUE时,表示故障消失需要手动确认,输入信号"ACK_REI"触发上升沿后,数据交互即可正常。

示例所使用的软硬件环境

本节内容,将实现将S7-1500F-CPU中的数据通过Flexible F-Link的方式发送到S7-1200F-CPU中。

测试所用产品

CPU 1511F-1PN (6ES7 511-1FK01-0AB0 ,V2.5)

CPU 1215FC DC/DC/DC (6ES7 215-1AF40-0XB0 , V4.2)

Safety system version V2.3

TIA Portal Step7 professional V16

Step7 safety V16

实现交互的数据区

通过以下步骤,实现将plc1的DB6中的数据发送到plc2的DB3中。如图1所示:

8587ffda-a11e-11ed-bfe3-dac502259ad0.png

图1.安全数据交互区

S7-1500F侧编程组态

添加S7-1511F和S7-1215FC,分别设置两个CPU的IP地址为192.168.0.15和192.168.0.12,并连接在一个子网中。如图2所示:

8592ea80-a11e-11ed-bfe3-dac502259ad0.png

图2.添加新F-CPU

添加符合F的PLC数据类型。如图3所示:

85a30960-a11e-11ed-bfe3-dac502259ad0.png

图3.添加PLC数据类型

新建的UDT中创建需要交互的数据类型。如图4所示:

85b06cc2-a11e-11ed-bfe3-dac502259ad0.png

图4.新增交互变量

设置Flexible F-Link。如图5所示:

设置完成后,自动生成F-communication DB,具体结构见前面图C。

85ba99c2-a11e-11ed-bfe3-dac502259ad0.png

图5.设置Flexible F-Link

新建FC块,添加到pre processing和post processing。如图6所示:

Pre processing 指定的程序块在安全运行组之前运行;Post processing 指令的指令块在安全运行组之后运行。

85c73178-a11e-11ed-bfe3-dac502259ad0.png

图6.设置Pre/Post processing

添加循环中断组织块OB30,设置其循环时间为30ms。在OB30中调用TRCV_C指令用于建立TCP连接和接收数据。如图7所示:

循环中断OB30的循环时间可以调整。OB30中调用TRCV_C,主要用于在安全运行组执行前多次执行接收保证能接收到新的安全校验数据。

85d5ae1a-a11e-11ed-bfe3-dac502259ad0.png

图7.增加TCP接收指令

TRCV_C指令连接组态,用于建立与伙伴的TCP连接。如图8所示:

如果通信双方属于不同的项目,伙伴侧选择“未指定”。

85e2d270-a11e-11ed-bfe3-dac502259ad0.png

图8.连接参数组态

OB30中TRCV_C指令参数化,接收安全通信过程中符合profisafe规范的安全校验数据。TRCV_C指令将接收到的安全校验数据存放到DB2的数组"rcvAckArray"中。如图9所示:

注意:数组"rcvAckArray"为Byte类型数组,数组长度与"send".ACK_RCV_LENGTH一致。

85efee42-a11e-11ed-bfe3-dac502259ad0.png

图9.参数化TRCV_C

pre processing 指令块将接收的安全校验数据传送至F-communication中。执行安全运行组之前,将数据传送至安全通信DB中。如图10所示:

85faff9e-a11e-11ed-bfe3-dac502259ad0.png

图10.数据传送

post processing 指令块进行安全数据的发送。如图11所示:

8607f1fe-a11e-11ed-bfe3-dac502259ad0.png

图11.发送安全数据

安全主程序中将用户全局DB数据传送至F-communication中。如图12所示:

8616a38e-a11e-11ed-bfe3-dac502259ad0.png

图12.安全主程序编程

下载项目到CPU中。

S7-1200F侧编程组态

新建符合F的PLC数据类型,新增接收数据类型。如图13所示:

8623f84a-a11e-11ed-bfe3-dac502259ad0.png

图13.添加PLC数据类型

设置Flexible F-Link。如图14所示:

设置完成后,自动生成F-communication DB,具体结构见前面图C。

8630defc-a11e-11ed-bfe3-dac502259ad0.png

图14.设置Flexible F-Link

新建FC块,添加到pre processing和post processing。如图15所示:

863d9c82-a11e-11ed-bfe3-dac502259ad0.png

图15.设置Pre/Post processing

添加循环中断组织块OB30,设置其循环时间为30ms。在OB30中调用TRCV_C指令用于建立TCP连接和接收数据。如图16所示:

864abb06-a11e-11ed-bfe3-dac502259ad0.png

图16.调用TCP接收指令

TRCV_C指令连接组态。如图17所示:

86593a78-a11e-11ed-bfe3-dac502259ad0.png

图17.组态连接参数

OB30中TRCV_C指令参数化,接收plc1发送的安全数据到DB4的数组"rcvArray"中。如图18所示:

注意:数组"rcvArray"为Byte类型数组,数组长度与"receive".RCV_LENGTH一致。

866a3f3a-a11e-11ed-bfe3-dac502259ad0.png

图18.参数化TRCV_C

pre processing 指令块将接收的安全数据传送至F-communication中。如图19所示:

867a454c-a11e-11ed-bfe3-dac502259ad0.png

图19.传送数据

post processing 指令块进行安全校验数据的发送。如图20所示:

86868f0a-a11e-11ed-bfe3-dac502259ad0.png

图20.发送安全校验数据

安全主程序中将接收的安全数据从F-communication传送至用户全局DB中。如图21所示:

86932b16-a11e-11ed-bfe3-dac502259ad0.png

图21.安全主程序编程

下载项目到CPU中。

通信监控

接收端(plc2)进行去钝。如图22所示:

86a026d6-a11e-11ed-bfe3-dac502259ad0.png

图22.去钝

数据在线监控,安全数据传送完成。如图23所示:

86ac4844-a11e-11ed-bfe3-dac502259ad0.png

图23.数据监视

审核编辑:汤梓红

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

    关注

    4901

    文章

    10926

    浏览量

    450636
  • cpu
    cpu
    +关注

    关注

    68

    文章

    9370

    浏览量

    204779
  • 通信
    +关注

    关注

    17

    文章

    5364

    浏览量

    133568
  • S7-1200
    +关注

    关注

    10

    文章

    279

    浏览量

    16549
  • S7-1500
    +关注

    关注

    3

    文章

    241

    浏览量

    5528
收藏 人收藏

    评论

    相关推荐

    WinCC V7.2与S7-1200的PLC通讯

    S7-1200S7-1500 Channel通道,用于WinCC与 S7-1200/S7-1500 PLC之间的通信。此驱动只支持
    发表于 09-26 19:06 11次下载
    WinCC V7.2与<b>S7-1200</b>的PLC通讯

    基于WinCC V7.2与S7-1200/1500 PLC通讯步骤介绍

    S7-1200S7-1500 Channel通道,用于WinCC与 S7-1200/S7-1500 PLC之间的通信。此驱动只支持
    发表于 09-28 11:01 36次下载
    基于WinCC V7.2与<b>S7-1200</b>/<b>1500</b> PLC通讯步骤介绍

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

    S7-1200S7-1500 的编程指南
    发表于 03-27 15:15 280次下载

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

    S7-1200S7-1500编程风格指南分享
    发表于 08-17 17:30 16次下载

    如何使用博途平台上完成西门子的S7-1500S7-1200以太网通信

    S7-1500(1515 CPU)与S7-1200(1214 CPU)之间通信,有两种方法:S7通信和开放式用户通信
    的头像 发表于 07-09 10:00 5.1w次阅读
    如何使用博途平台上完成西门子的<b>S7-1500</b>与<b>S7-1200</b>以太网<b>通信</b>?

    关于S7-1200S7-1500 PLC的通信

    S7-1200S7-1500通信,可以创建状态变量和控制变量,用来显示和控制S7-1200S7-1500 PLC的通信
    发表于 10-09 10:05 1341次阅读

    新的故障安全通信Flexible F-Link

    F-Link 通信地址签名 – 用于更好地分类变化的离散 F 签名 • 区分硬件/软件和
    的头像 发表于 01-07 12:05 464次阅读

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

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

    WinCC与 S7-1200/S7-1500 PLC之间的通信解析

    S7-1200, S7-1500 Channel"通道,用于WinCC与 S7-1200/S7-1500 PLC之间的通信。此驱动只支持以太网通讯,使用 TCP/IP 协议。
    发表于 02-06 09:39 4110次阅读

    S7-1200能仿真通信吗?

    通信的仿真环境,有两种方式,一种方式是PLCSIM + NettoPLCSIM,另一种方式是TIA + PLCSIM-Advanced,后者只能仿真S7-1500或者ET200SP
    的头像 发表于 02-22 15:57 1739次阅读
    <b>S7-1200</b>能仿真<b>通信</b>吗?

    S7-1200 CPUS7-200 SMART S7通信指南

    S7-1200 CPU 固件版本 V2.0 及其以上,本体集成的 PROFINET 通信接口可以做 S7 通信客户端。S7-1200 仅支持 S7 单边通信,做客户端仅需单边组态连接和编程,而做
    的头像 发表于 04-19 15:14 878次阅读

    S7-1500S7-1200存储区域保持性设置

    S7-300/400一样,S7-1500S7-1200都有存储区M区,另外S-1500还有存储区(定时器、计数器),这些区域都可以设置保持性。下面详细介绍如何设置这些区域的保持性。
    的头像 发表于 04-21 09:49 3180次阅读

    一文解析S7-1200S7-1500 S7通信

    S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端(CPU V2.0及以上版本)。S7-1200 仅支持 S7 单边通信,仅需在客户端单边组态连接和编程,而服务器端只准备好通信的数据就行。
    发表于 05-15 17:13 3388次阅读
    一文解析<b>S7-1200</b>与<b>S7-1500</b> <b>S7</b><b>通信</b>

    西门子plc S7-1200/S7-1500优化的DB块与标准的DB块整体对比

    S7-1200/S7-1500 CPU 添加一个 DB 块时,其缺省属性为优化的 DB ,优化的 DB 块与标准的 DB 块整体对比如下表所示:
    的头像 发表于 07-28 19:55 1570次阅读
    西门子plc <b>S7-1200</b>/<b>S7-1500</b>优化的DB块与标准的DB块整体对比

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

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