仿真 F-CPU 与实际 F-CPU之间的差别请注意,具体到每个细节来说,S7-PLCSIM 的行为并不完全像实际 F-CPU 一样,特别是无法准确仿真 F-I/O的启动行为。F-I/O 的输入仿真在 S7-PLCSIM 中仿真输入(通道值):在 S7-PLCSIM 中,按照仿真标准 I/O的输入(通道值)的方式仿真 F-I/O 的输入(通道值)。请注意以下说明/限制:在 S7-PLCSIM 中,在 F-CPU从“STOP”切换到“RUN”模式期间,会将过程映像输入 (PII) 中 FI/O 的所有输入(通道值)初始化为0。输入(通道值)可从第 2 个周期开始仿真,随后可在 PII 中使用。在 S7-PLCSIM中仿真输入(值状态):(S7-1200、S7-1500)通过仿真 F-I/O 的输入(值状态),可以对传入和传出的 F-I/O通道故障进行仿真。请注意以下说明/限制:• 为了仿真 F-I/O 的实际行为,必须注意实际 F-I/O中通道值与值状态间的关联。值状态= 0 以及通道值 <> 故障安全值 (0) 的组合是无效,可导致仿真与实际 F-CPU的行为发生偏差。• 在 S7-PLCSIM 中,在 F-CPU 从“STOP”切换到“RUN”模式期间,会将过程映像输入 (PII)中F-I/O 的所有输入(值状态)初始化为 1。这表示无需仿真输入(值状态)即可立即从仿真输入(通道值)开始。• 在 S7-PLCSIM中仿真输入(值状态)不会影响 F-I/O DB 中的 QBAD 和 PASS_OUT 变量。请注意,当 F-I/O至少有一条通道的值状态为 0 时,实际 F-I/O QBAD 和PASS_OUT 可为 1。(请参见 F-I/O DB的变量:PASS_OUT/QBAD/QBAD_I_xx/QBAD_O_xx 和值状态 (页 183))。•对于将“出现通道故障后的行为”(Behavior after channel fault) 组态为“钝化完整FI/O”(Passivation of the complete F-I/O) 的 F-I/O,使用 F-I/O DB 中的变量PASS_ON 来仿真 F-I/O 故障和通道故障所引起的完整 F-I/O的钝化过程。如果将仿真限制为钝化单个输入(包含值状态的通道值),则仿真行为与实际 F-CPU 行为间将存在偏差。• 还可以将F-I/O DB 中的 PASS_ON 变量用于不含值状态的 F-I/O,以便在出现 F-I/O 故障或通道故障时针对完整 F-I/O的钝化进行仿真。编译和调试安全程序10.7 测试安全程序编程和操作手册, 11/2022, A5E33215622-AM 369•要仿真将“发生通道故障后的行为”(Behavior after channel fault) 组态为“钝化通道”(Passivatechannel) 的 SM 336:AI 6 x 13Bit 或 SM 336:F-AI 6 x 0/4...20 mA HART的F-I/O/通道故障,必须使用 7FFFH(针对上溢)或 8000H(针对下溢)对输入(通道值)进行仿真。•对于不支持“RIOforFA-Safety”规约的 F-I/O,在 F-I/O DB 的 ACK_NEC = 1 的情况下,在值状态从0 变为 1 后,或通道值从 7FFFH/8000H 变为不等于 7FFFH/8000H 的值时(如上所述),必须在 F-I/O DB的 ACK_REI 变量上升沿处进行用户确认(与实际 F-I/O 相似),以实现重新集成。对于其他所有可能与实际 F-I/O产生偏差的情况,均会自动重新集成。更新时间请注意,对于在 S7-PLCSIM 的 SIM 表中监视的输入状态(通道值或值状态(S7-1200/1500)),只有在未钝化相关 F-I/O 的情况下,才与安全程序中要处理的状态相同。对于 F-I/O的钝化,安全程序以故障安全值运行(通道值和值状态 (S7-1200/1500) =0)。通过 SENDDP/RCVDP 指令进行CPU 间的通信以下内容适用于 SENDDP/RCVDP (S7-300/400) 指令和版本 < 3.0(S7-1200/1500) 的SENDDP/RCVDP 指令:不能在 S7-PLCSIM 中使用 SENDDP 和 RCVDP指令对 F-CPU 间的通信进行仿真。可将 SENDDP 和 RCVDP 指令与 S7-PLCSIM 结合使用。在S7-PLCSIM 中进行仿真时,RCVDP指令会输出其输入 SUBBO_xx 和 SUBI_xx((S7-1200/1500) 或SUBDI_00)中未决的故障安全值。SENDDP 和 RCVDP 指令在输出 SUBS_ON 以 1 发出该信号。以下内容适用于版本>= 3.0 的 SENDDP/RCVDP 指令 (S7-1200/1500):使用 S7-PLCSIM进行仿真过程中,可以在输入的相应传输区域仿真接收到的数据和“禁用安全模式”(RCVDP) 信息或“替代值输出”(SENDDP)信息。请遵守以下注意事项:• 在 F 系统启动后,只有在首次设置各自仿真控制字的 SIMULATION位(见下表)后,仿真值才会激活。在设置 SIMULATION 位之前,RCVDP 指令会输出其输入 SUBBO_xx和SUBI_yy(或 SUBDI_00)中未决的故障安全值。• 设置仿真控制字的 SEND_MODE 位会导致设置 RCVDP 指令的SENDMORE 输出。• 设置仿真控制字的 STATUS_SUBS 位会导致设置 SENDDP 指令的 SUBS_ON 输出。•仿真控制字的保留位必须为始终为 0。• 在从 S7-PLCSIM 起的 STOP/RUN转换期间,将保存输入传输区域中Zui近的仿真值。编译和调试安全程序10.7 测试安全程序370 编程和操作手册, 11/2022,A5E33215622-AM有关为输入和输出数据组态的传输区域的起始地址,请参见各自的组态(另请参见“组态和编程通信(S7-1200和 S7-1500) (S7-300、S7-400)通过 SENDS7/RCVS7 指令进行 CPU 间的通信不能在S7-PLCSIM 中使用 SENDS7 和 RCVS7 指令对 F-CPU 间的通信进行仿真。可将 SENDS7 和RCVS7 指令与 S7-PLCSIM 结合使用。在 S7-PLCSIM 中进行仿真时,RCVS7 指令输出在通信 DB中指定为故障安全值的初始值。SENDS7 和 RCVS7 指令在输出 SUBS_ON 以 1 发出该信号。通过 FlexibleF-Link 仿真 CPU 间的通信如果通过 Flexible F-Link 仿真 F-CPU之间的通信,请遵循以下警告。警告如果在与 Flexible F-Link 进行安全相关 CPU-CPU 通信期间从使用S7-PLCSIM 进行仿真的F-CPU 发送数据,则不能继续认为此数据以安全方式生成。必须通过组织措施(页668)确保受发送数据影响的单元的安全性。或者,必须通过评估 SENDMODE*,输出数据接收 F-CPU中的故障安全替代值而不是其中接收的数据。*SENDMODE 可以作为 F 通信 DB中的变量使用。(S086)安全程序不一致(S7-1200、S7-1500)如果 S7-PLCSIM 中的 CPU在出现诊断条目“安全程序:不一致”(Safety program:inconsistent) 的情况下进入 STOP 模式,则F-CPU 不会在 S7-PLCSIM 中正确初始化。在S7-PLCSIM 中针对 F-CPU 执行存储器复位并将程序下载到S7-PLCSIM 的 CPU 中。编译和调试安全程序10.7 测试安全程序372 编程和操作手册, 11/2022,A5E33215622-AM10.7.5 在 RUN 模式下更改安全程序(S7-300、S7-400)简介可在程序编辑器中对 F块进行离线更改,与标准程序的更改方式相同。将处于 RUN 模式的已更改 F 块下载到处于“禁用安全模式 (页 360)”的F-CPU。说明如果不希望在操作过程中对安全程序进行更改,请参见在 FBD/LAD 中创建 F 块(页 160)。在 RUN模式下更改安全程序的操作步骤要更改安全程序,请按以下步骤操作:1. 在程序编辑器中对主安全块或 F-FB及其关联的背景数据块、F-FC 或 F-DB 进行更改。2. 将更改后的 F 块下载到 F-CPU(具体操作步骤,请参见 下载项目数据(页 322))。之后将自动编译整个程序。3. 如果激活安全模式,则在“下载预览”(Load preview)对话框中将提示取消激活安全模式并要求输入安全程序的密码。说明在禁用安全模式下进行下载时,只能下载用户自己创建的故障安全块(主安全块、F-FB、F-FC或 F-DB)、F 应用程序块或标准块及其相关联的背景 DB。如果下载自动添加的 F 块(F-SB 或自动生成的 F块及其相关联的背景数据块或 F 共享 DB),则 F-CPU可能会切换为 STOP模式或激活安全模式。在禁用安全模式下进行下载时,应始终选择单个块。下载更改的顺序禁用安全模式后,在 RUN模式下更改安全程序时,可能导致执行器状态随程序的变更而发生变化。更改安全程序后,应下载该安全程序,再下载由安全程序监视的标准用户程序的功能。
安全相关 CPU 与 CPU 通信的限制操作过程中(RUN模式下),不能使用新 SENDDP/RCVDP 或 SENDS7/RCVS7 指令建立新的安全相关 CPU 与 CPU通信。要建立新的安全相关 CPU 与 CPU 通信,必须在 STOP 模式下插入一个新的 SENDDP、SENDS7、RCVDP 或RCVS7 指令之后,将相关的安全程序统一下载到 F-CPU 中。F 运行组通信的相关限制在 RUN 模式下,不能对 F运行组之间的安全相关的通信进行任何更改。即,不能对 F 运行组中用于 F 运行组通信的 DB 进行分配、删除或更改。在 F运行组通信中进行更改后,必须在 STOP 模式下将安全程序统一下载到 F-CPU 中。F-I/O访问的相关限制如果在操作过程中(RUN 模式下),插入了对 F-I/O(在安全程序中尚未使用相关 F-I/ODB 的单通道或变量)的F-I/O 访问,则 只有将安全程序统一下载到 F-CPU 之后 F-I/O 访问才会生效。更改标准用户程序当 F-CPU 处于RUN 模式时,无论启用或禁用安全模式,都可以下载标准用户程序中的更改。警告(S7-300 和S7-400)如果标准用户程序在生产操作中更改,则不得通过 CPU密码授予访问权限,因为这样也会导致允许更改安全程序。为排除这个可能性,需将保护等级组态为“写保护故障安全块”(Writeprotection for fail-safe blocks),并为该 F-CPU设置一个密码。如果仅授权一人可对标准用户程序和安全程序进行更改,则需将保护级别组态为“写保护”(Write protection)或“读/写保护”(Read/writeprotection)。这样,其他人员只能对整个用户程序(标准程序和安全程序)进行有限访问或根本无法访问。执行安全程序变更的步骤如果操作期间(在RUN 模式下)将单个 F 块下载到 F-CPU,而不更新也不下载 F 系统块(F-SB) 和自动生成的 F 块,这样会导致F-CPU 中出现不一致的安全程序。可采用以下操作步骤应用安全程序中的更改:1. 将安全程序统一下载到 F-CPU 中,并通过将F-CPU 从 STOP 切换到 RUN 模式激活安全模式(具体操作,请参见 下载项目数据 (页 322))。2. 请遵循 变更验收(页 401) 中介绍的内容进行操作。