将数据从安全程序写入到标准用户程序也可以在安全程序中将安全程序数据直接写入标准用户程序(另请参见“编程语言FBD/LAD的限制 (页 125)”中的支持的操作数区域表)。此方法也适用于非故障安全信息(例如输出故障安全指令的DIAG)。请注意“在标准用户程序和安全程序间进行数据交换 (页 206)”部分中的表。写入到 ARRAY数据类型的变量中时,索引可以是常量或变量。将数据从标准用户程序传送到安全程序由于标准变量不安全,在安全程序中通常只能处理来自F-I/O 和其它安全程序(位于其它 F-CPU中)的故障安全数据或故障安全信号。如果必须在安全程序中处理标准用户程序中的变量,则可以在安全程序中评估标准用户程序的位存储器、标准数据块的变量或标准I/O 的过程映像输入 (PII)(请参见“编程语言 FBD/LAD 的限制 (页125)”的支持的操作数区域表)。请注意“在标准用户程序和安全程序间进行数据交换 (页 206)”部分中的表。读取 ARRAY数据类型的变量中时,索引必须是常量。不允许将变量作为索引。请注意,对安全程序中所用标准数据块的结构进行更改,将导致安全程序发生不一致,仅当提供对安全相关项目数据的访问权限时方可执行此更改。此时,集体F签名在编译后将与原签名相同。要防止这一现象的发生,请在标准用户程序和安全程序间使用“传输数据块”。警告由于这些变量不是安全生成的,必须在安全程序中执行其它过程特定的真实性检查,以确保不发生危险状况。如果在两个F 运行组中都使用位存储器、标准 DB 的变量或标准 I/O 的输入,则必须分别在每个 F运行组中执行真实性检查。(S015)为了便于检查,会在创建安全文档 (页 356)时打印来自标准用户程序且在安全程序中进行评估的所有PLC 变量。安全文档中不包含来自标准用户程序且在受专有技术保护的 F 块中进行评估的 PLC 变量。必须已由受专有技术保护的 F块的创建者确保真实性检查。示例:编程真实性检查• 使用“比较 (页 545)”(Comparison)指令检查来自标准用户程序的变量是否高于允许的上限或低于允许的下限。再根据用比较结果确定可使用的安全功能。• 例如,将 ---(S )---:置位输出 (STEP 7 Safety V18) (页 430)、---( R )---:复位输出(STEP 7Safety V18) (页 429)或 SR:置位/复位触发器 (STEP 7 Safety V18) (页432)指令与来自标准用户程序的变量结合使用可关断电机,但不能为电机通电。•例如,对于通电序列,可使用“与”逻辑运算指令对标准用户程序中的变量与源自故障安全变量的通电条件进行逻辑运算。如果要在安全程序中处理来自标准用户程序的变量,则需注意,无法对所有变量进行快速的真实性检查。从可在F 运行组运行期间进行更改的标准用户程序读取变量如果要在安全程序中读取标准用户程序的变量(位存储器、标准数据块的变量或标准 I/O的PII),在读取这些变量的 F运行组的运行过程中通过标准用户程序或操作员监控系统对这些变量进行更改(例如,由于较高优先级的循环中断正在处理标准用户程序),则此时必须使用位存储器或标准数据块的变量。我们建议针对S7-1200/1500 F-CPU 使用用于预处理的标准 FC (页 95)。(S7-300/400) 在调用 F运行组之前,必须将标准用户程序中的变量直接写入位存储器或标准数据块的变量中。随后即可在安全程序中仅访问该位存储器或标准数据块的变量。另请注意,由于时钟存储器的运行与F-CPU 循环异步,在 F 运行组的运行过程中可更改组态 F-CPU 时在“属性”(Properties)选项卡中所定义的时钟存储器。说明如果未执行以上操作,则 F-CPU 将切换为 STOP 模式。在 F-CPU的诊断缓冲区中输入引起该诊断事件的原因。
安全相关的通信组态和编程通信(S7-300、S7-400)通信概述简介在本章节简要介绍了 SIMATICSafety F 系统中安全相关的通信方式。安全相关的通信方式安全相关的通信 子网上 需要的其它硬件智能从站与从站通信PROFIBUS DP —安全相关的 CPU 与 CPU 通信:IO 控制器与 IO 控制器通信 PROFINET IO PN/PN耦合器主站与主站通信 PROFIBUS DP DP/DP 耦合器IO 控制器与智能设备通信 PROFINET IO—主站与智能从站通信 PROFIBUS DP —智能从站与智能从站通信 PROFIBUS DP —IO 控制器与智能从站通信PROFINET IO 和 PROFIBUS DP IE/PB Link通过 S7 连接进行安全相关的通信 工业以太网 —S7Distributed Safety 中 IO 控制器与 IO 控制器通信PROFINET IO PN/PN 耦合器S7Distributed Safety 中主站与主站通信PROFIBUS DP DP/DP 耦合器通过 S7 连接与 S7DistributedSafety 或 S7 F 系统进行安全相关通过 PROFIBUS DP 进行安全相关通信的概述下图概览了SIMATIC Safety F 系统中使用 S7-300/400 F-CPU 通过 PROFIBUS DP进行安全相关通信的四种方式。① 安全相关的主站与主站通信② 安全相关的主站与智能从站通信③ 安全相关的智能从站与智能从站通信④安全相关的智能从站与从站通信通过 PROFINET IO 进行安全相关通信的概述下图概览了 SIMATIC Safety F系统中使用 S7-300/400 F-CPU 通过 PROFINET IO 进行安全相关通信的四种方式。如果使用 IE/PBLink,则可以在分配的智能从站间进行安全相关通信。① 安全相关的 IO 控制器与 IO 控制器通信② 安全相关的 IO控制器与智能设备通信③ 安全相关的 IO 控制器与智能从站通信④ 集成有 IO 控制器的安全相关的智能从站与智能从站通信通过PROFIBUS DP 或 PROFINET IO 进行安全相关的 CPU 与 CPU 通信在进行安全相关的 CPU 与 CPU通信时,DP 主站/智能从站或 IO 控制器/智能设备上 F-CPU的安全程序间可以故障安全方式传送固定数量且数据类型为 INT 和BOOL 的故障安全数据。在进行数据传送时,可通过指令 SENDDP 指令发送数据并通过指令 RCVDP接收数据。并将数据存储在设备上所组态的传输区域中。每个传输区域都由一个输入地址区和一个输出地址区组成。通过 PROFIBUS DP进行安全相关的智能从站与从站通信对于支持智能从站与从站将安全相关通信的 DP 从站,可通过 F-I/O实现智能从站与从站间的安全相关通信。如,通过带有 IM 155-6 DP HF 的所有 ET 200SP F 模块(固件>V3.1)、带有 IM 151-1 HF 的所有 ET 200S F 模块、带有 IM 153-2 的所有故障安全S7-300 信号模块(订货号 6ES7153-2BA01-0XB0 及以上版本,固件版本 > V4.0.0)。在智能从站F-CPU 的安全程序与 DP 从站上的 F-I/O间可使用直接数据交换进行安全相关的通信,与标准程序中的相同。过程映像用于访问智能从站 F-CPU 上安全程序内 F-I/O的各个通道。通过工业以太网进行安全相关的 CPU 与 CPU 通信使用 S7 连接可通过工业以太网进行安全相关的 CPU 与 CPU通信,与以下设备进行数据接收和发送:• 通过集成的 PROFINET 接口与 S7-300 F-CPU 进行通信• 通过集成的PROFINET 接口或 CP 443-1 或 CP 443-1 Advanced-IT,与 S7-400 F-CPU进行通信通过S7 连接进行安全相关的通信时,S7 连接所关联的各 F-CPU 上安全程序间可以故障安全方式传送固定数量且数据类型为BOOL、INT、WORD、DINT, DWORD 或 TIME 的故障安全数据。在进行数据传送时,可通过指令 SENDS7指令发送数据并通过指令 RCVS7 接收数据。在发送方和接收方分别使用一个 F-DB(“F 通信 DB”)进行数据交换。与 S7Distributed Safety 或 F 系统进行安全相关的 CPU 与 CPU 通信SIMATIC Safety 中的F-CPU 可与 S7 Distributed Safety 或 S7 F 系统的 F-CPU 间进行安全相关的通信。
安全相关的 IO 控制器与 IO 控制器通信组态安全相关的 IO 控制器与IO 控制器通信简介通过在 F-CPU 间设置的 PN/PN 耦合器,IO 控制器 F-CPU的安全程序间即可进行安全相关的通信。对于未集成 PROFINET 接口的 416F-2 DP CPU,请使用 CP 443-1 或CP 443-1 AdvancedIT。说明在硬件与网络编辑器内 PN/PN 耦合器属性中取消激活参数“数据有效性显示DIA”(Datavalidity display DIA)。该选项为默认设置。否则,无法将进行安全相关的 IO 控制器 与IO控制器通信。组态传输区域在 PN/PN 耦合器中,两个 F-CPU间进行各安全相关通信连接时,在硬件和网络编辑器中必须为输出数据和输入数据各组态一个传输区域。下图显示了两个 F-CPU如何能发送和接收数据(双向通信)。对于这两个通信连接,在 PN/PN耦合器中必须为输出数据和输入数据各组态一个传输区域。定义传输区域的规则待发送数据的输入数据和输出数据的传输区域的起始地址必须相同。输出数据传输区域共需12 个字节(一致),而输入数据传输区域则需 6个字节(一致)。待接收数据的输出数据和输入数据的传输区域的起始地址必须相同。输入数据传输区域共需 12个字节(一致),而输出数据传输区域则需 6 个字节(一致)。组态的操作步骤安全相关的 IO 控制器与 IO控制器通信的组态过程与标准系统中的相同。请按以下步骤操作:1. 将两个 F-CPU 从“硬件目录”(Hardware catalog)任务卡插入到项目中。2. 切换到硬件与网络编辑器的网络视图中。3. 从“硬件目录”(Hardware catalog)任务卡的“其它现场设备\PROFINET IO\网关\Siemens AG\PN/PN 耦合器”(Otherfielddevices\PROFINET IO\Gateway\Siemens AG\PN/PN Coupler) 中选择一个PN/PN 耦合器 X1和一个 PN/PN 耦合器 X2,将其插入到硬件和网络编辑器的网络视图中。4. 将 F-CPU 1 的PN 接口与 PN/PN 耦合器 X1 的 PN 接口相连接,将 F-CPU 2 的 PN 接口与 PN/PN 耦合器 X2 的PN 接口相连接。5. 切换到 PN/PN 耦合器 X1 的设备视图以进行双向通信连接,即,其中的每个 F-CPU都可进行数据接收和发送。从“硬件目录”(Hardware catalog)任务卡(激活了过滤器)的“IN/OUT”中选择以下模块,再将这些模块插入到“设备总览”(Device overview)选项卡中:– 一个“IN/OUT 6 个字节 / 12 个字节”模块,和– 一个“IN/OUT 12 个字节 / 6 个字节”模块6.在模块属性中,指定过程映像以外的地址,如下所示:“IN/OUT 6 个字节 / 12 个字节”模块发送数据的示例:–输入地址:起始地址为 518– 输出地址:起始地址为 518“IN/OUT 12 个字节 / 6 个字节”模块接收数据的示例:–输入地址:起始地址为 530– 输出地址:起始地址为530说明请确保为输出数据和输入数据的地址区域指定的起始地址相同。提示:请记录相关传输区域的起始地址。在编程 SENDDP 和RCVDP 块(LADDR 输入)时需要使用这些地址。