定义 F 运行组安全程序的 F 运行组的规则规则注意事项:• 只能从一个 F运行组访问 F-I/O 的通道(通道值和值状态)。• 只能从一个 F 运行组访问 F-I/O 的 F-I/O DB的变量,只能是从还用来访问该 F-I/O的通道或值状态的 F 运行组(如果进行了访问)中进行访问。• F-FB 可在多个 F运行组中使用,但必须用不同的背景数据块调用。• F-DB 的背景数据块只能从调用相关 F-FB 的 F 运行组中访问。• 全局F-DB(除 F 全局 DB)的变量只能从一个 F 运行组进行访问(一个全局 FDB 可用于多个 F 运行组)。•(S7-300、S7-400)通过指定为“运行组通信 DB”的 F 运行组可对 F 运行组通信 DB 进行读写访问,但通过“接收方”F运行组只能进行读访问。• (S7-300 和 S7-400)F 通信 DB 只能从一个 F 运行组访问。• (S7-1200 和S7-1500)不能自行调用主安全块。而是由分配的 F-OB 自动调用。说明F-OB 受 F 系统专有技术保护。无法评估F-OB 的 OB 启动信息。• (S7-1200、S7-1500)。F-OB 应创建为所有 OB中优先级Zui高的块。说明通过通信负载、更高优先级中断的处理以及测试和调试功能,可以延长 F-OB 的循环时间/运行时间。在冗余S7-1500HF 系统中,此时间还取决于当前系统状态。• (S7-300, S7-400)主安全模块只能通过标准块调用一次。多次调用将导致 F-CPU 切换到 STOP 模式。• (S7-300, S7-400)为zuijia使用临时本地数据,必须在 OB(尽可能在循环中断 OB 中)中直接调用 F 运行组(主安全块);不应在此循环中断 OB中声明任何其它临时本地数据。编程5.2 定义 F 运行组编程和操作手册, 11/2022, A5E33215622-AM 143•(S7-300, S7-400) 在循环中断 OB 内,F 运行组应在标准用户程序之前执行;也就是说,应在 OB的起始处调用,这样无论处理标准用户程序花费多长时间,始终能以固定的时间间隔调用 F 运行组。为此,循环中断 OB也不应被较高优先级的中断所中断。• 标准 I/O 的输入输出过程映像、位存储器以及标准用户程序中的 DB 变量可从多个 F运行组采用只读或读/写方式进行访问。(另请参见在标准用户程序和安全程序间进行数据交换 (页 206))• 通常可在多个 F运行组中调用F-FC。说明在标准用户程序中编写安全功能不需要的程序段,可改进性能。确定标准用户程序中要包括的元素和安全程序中要包括的元素时,请记住标准用户程序可以更容易地进行修改并下载到F-CPU。通常,标准用户程序中的更改不需要进行验收。5.2.2 定义 F 运行组的操作步骤(S7-300、S7-400)要求•已在项目中插入了 S7-300/400 F-CPU。• 在 F-CPU 的“属性”(Properties) 选项卡中,选中了“激活 F功能”(F-capability activated)复选框(默认设置)。默认情况下创建的 F 运行组默认情况下,在添加 F-CPU后,STEP 7 Safety 会将 F 运行组的 F 块插入到项目树中。打开“程序块”(Program blocks)文件夹时,将在项目树中显示 F 运行组的 (F) 块(CYC_INT5[OB 35]、Main_Safety [FB 1] 和Main_Safety_DB [DB1])。以下部分介绍如何修改默认创建的 F 运行组的设置/参数,或添加其它 F 运行组。定义 F运行组的操作步骤定义 F 运行组的步骤如下:1. 在项目树中双击打开安全管理编辑器。2. 在区域导航中选择“F运行组”(F-runtime group)。结果:打开用于定义 F 运行组且具有 F 运行组 1 的(默认)设置的工作区。3.指定要调用主安全块的块。默认情况下,建议在此使用循环中断 OB 35。循环中断 OB 的优点是其以固定的时间间隔中断标准用户程序的OB 1 中的循环程序处理。这意味着在循环中断 OB 中,会以固定的时间间隔调用和运行安全程序。在此输入域中,只能选择以LAD、FBD 或 STL编程语言创建的块。在此选择块后,将在所选块中自动插入一个调用,并在需要时移除先前所选块中的调用。如果要在通过其它编程语言创建的块中调用主安全块,必须自己编程该调用。此后输入字段将不可编辑(灰显),只能在调用块而非安全管理编辑器中更改该调用。4.将所需主安全块分配给 F 运行组。主安全块是 FB 时,还必须分配背景 DB。默认情况下,建议使用 Main_Safety [FB1]和 Main_Safety_DB [DB1]。
5. F-CPU 将监视 F 运行组的 F 循环时间。对于“F运行组的Zui大循环时间”(Maximum cycletime of F-runtime group),请输入 F运行组两次调用间允许的Zui大时间。警告监视 F运行组的调用间隔是否为Zui大值。这意味着会执行监视以确定调用的执行次数是否足够多,而不是确定调用的执行次数是否太多或者是否同步等。必须使用“指令”(Instructions)任务卡中的 TP、TON 或 TOF 指令 (页 523)来实现故障安全定时器,而非使用计数器(OB调用)。(S007)警告其安全功能的响应时间还取决于 F-OB 的循环时间、F 运行组的运行时间,以及使用分布式 F-I/O时 PROFINET/PROFIBUS 的参数分配。标准系统的组态/参数分配会影响其安全功能的响应时间。示例:• 标准 OB相对 F-OB 有更高的优先级,会导致 F-OB 的循环时间或 F运行组的运行时间的延长。请注意,在创建工艺对象时,可以自动创建优先级非常高的 OB。• PROFINET发送时钟周期的更改会更改事件类别为“同步循环”的 F-OB的循环时间。请注意,标准系统的组态/参数分配不受安全程序的访问保护,不会导致集体F签名修改。如果不采取有组织的措施来避免标准系统的组态/参数分配的变化对响应时间产生影响,则必须始终将计算的安全功能的Zui大响应时间用作监视时间(请参见“组态监视时间(页 651)”)。通过安全程序的访问保护来保护监视时间免受更改,并通过集体 F 签名以及集体 FSW签名进行记录。使用计算响应时间的 Excel文件进行计算时,需要将为“任何标准系统运行时间”指定的值视为Zui大响应时间的值。(S085)6. 如果一个 F运行组为安全程序中的另一个 F 运行组提供分析用的变量,则应为 F 运行组通信分配 DB。为“F 运行组通信 DB”(DB forF-runtime group communication) 选择一个F-DB。(另请参见“F运行组通信(S7-300、S7-400) (页 153)”)7. 如果要创建另一个 F 运行组,请单击“添加新 F 运行组”(Addnew F-runtime group) 按钮。8. 将 F-FB 或 F-FC 作为主安全块分配给调用块。如果 F-FB 或F-FC 不存在,将自动在项目树中生成。9. 如果主安全块是 F-FB,则应为主安全块分配背景 DB。背景 DB在项目树中自动生成。10. 执行上述步骤 3 到 5 以生成另一个 F 运行组。定义 F 运行组的操作步骤(S7-1200 和S7-1500)要求• 已在项目中插入了 S7-1200/1500 F-CPU。• 在 F-CPU 的“属性”(Properties)选项卡中,选中了“激活 F 功能”(F-capability activated)复选框(默认设置)。默认情况下创建的 F运行组默认情况下,在添加 F-CPU 后,STEP 7 Safety 会将 F 运行组的 F块插入到项目树中。打开“程序块”时,将在项目树中显示 F 运行组的 (F) 块(FOB_RTG1[OB123]、Main_Safety_RTG1 [FB1] 和 Main_Safety_RTG1_DB[DB1])。以下部分介绍如何修改默认创建的 F 运行组的设置/参数,或添加其它 F 运行组。定义 F 运行组的操作步骤定义 F运行组的步骤如下:1. 在项目树中双击打开安全管理编辑器。2. 在区域导航中选择“F 运行组”(F-runtimegroup)。结果:打开用于定义 F 运行组且具有 F 运行组 1 的(默认)设置的工作区。3. 在“F-OB”下指定 F-OB名。4. 创建新的 F 运行组时,请指定 F-OB 的事件类别。对于 F-OB,可以在事件类别“Programcycle”、“Cyclic interrupt”或“Synchronous cycle”之间进行选择。对于默认创建的 F运行组,F-OB 的事件类别为“Cyclic interrupt”。要更改已创建 F 运行组的 F-OB 的事件类别,需要删除 F运行组并创建一个新组。说明建议创建事件类别为“Cyclic interrupt”的F-OB。随后将调用安全程序,并以固定的时间间隔执行。仅建议将事件类别为“Synchronous cycle”的 F-OB与支持等时同步模式的 F-IO 配合使用,例如,驱动器 SINAMICS S120 CU310-2 PN V5.1的子模块“Profisafe Telgr 902”。不建议使用事件类别为“Program cycle”的F-OB,因为它们具有Zui低优先级“1”(见下文)。说明请注意事件类别为“Synchronous cycle”的 OB的Zui大允许数量(包括 F-OB)(请参见S7-1500 CPU 产品手册中的技术规范)。5. 如果需要,可以手动更改系统建议的F-OB 编号。为此,请注意适用于相关事件类别的编号范围。6. 为事件类别为“Cyclic interrupt”的 F-OB分配循环时间、相移和优先级参数。为事件类别为“Synchronous cycle”的 F-OB 分配优先级参数。– 选择小于“F运行组的Zui大循环时间”(Maximum cycle time of F-runtime group)及“F运行组的循环时间警告限制”(Cycle time warning limit of F-runtime group)的循环时间。– 选择小于循环时间的相位偏移。– 如果可能,请选择高于所有其它 OB 优先级的优先级。说明通过高优先级的F-OB,可以确保安全程序的运行时间和安全功能的响应时间 (页651)尽可能不受标准用户程序的影响。说明对于事件类别为“Synchronous cycle”的 F-OB,在定义 F运行组以及将等时 F-I/O 连接到等时同步模式中断 OB 后,还需要为应用程序循环 (ms) 和可能的延迟时间 (ms)分配参数。可以在“等时同步模式”(Isochronous mode) 组中等时同步模式中断 OB 的“属性”(Properties)对话框中找到这些参数。按照 STEP 7 帮助中“组态等时同步模式中断OB”(Configuring isochronous modeinterrupt OBs) 所述的内容进行操作。7. 为 F-OB 分配调用主安全块。主安全块是 FB 时,还必须分配背景DB。默认情况下,建议使用 Main_Safety_RTG1 [FB1] 和 Main_Safety_RTG1_DB [DB1]。8.F-CPU 将监视 F 运行组的 F 循环时间。有两个参数可供选择:– 如果超出“F 运行组的警告循环时间”(Warn cycletime of the F-runtime group),则会向 F-CPU 的诊断缓冲区写入维护请求,并激活 F-CPU 的MAINT LED。例如,此参数可用于在不将 F-CPU 切换到 STOP 模式时确定循环时间是否超出所需值。说明维护请求通过F-CPU 的 STOP/RUN 切换标记为传出事件。在 HF 系统中,必须先将两个 HF-CPU 或冗余 S7-1500HF系统设为 STOP,再重新启动HF-CPU。也可以通过标准指令“ACK_FCT_WARN”将维护请求标记为传出。为此,在输入参数“ACK_WARN”出现上升沿时,在标准用户程序中调用指令“ACK_FCT_WARN”。在F-CPU 的 STOP/RUN 切换之前,不会提示超出警告限值。– 如果超出“F 运行组的Zui大循环时间”(Maximumcycle time of F-runtime group),F-CPU 将转为 STOP 模式。对于“F运行组的Zui大循环时间”(Maximum cycle time ofF-runtime group),请选择 F运行组两次调用间允许的Zui大时间(Zui大 20000000 µs)。警告监视 F运行组的调用间隔是否为Zui大值。这意味着会执行监视以确定调用的执行次数是否足够多,而不是确定调用的执行次数是否太多或者是否同步等。必须使用“指令”(Instructions)任务卡中的 TP、TON 或 TOF 指令 (页 523)来实现故障安全定时器,而非使用计数器(OB 调用)。