通过 HMI 系统进行用户确认的编程过程(S7-300 和S7-400)1. 在“指令”(Instructions)任务卡中选择指令“ACK_OP”,并将该指令插入安全程序中。用于评估用户确认的确认信号将在 ACK_OP 的输出 OUT 处提供。2.在 HMI 系统上设置一个域,手动输入“确认值”“6”(确认的第 1 步)和“确认值”“9”(确认的第 2 步)。或分配功能键1,以传送一次“确认值”“6”(确认的第 1 步);指定功能键 2,以传送一次“确认值”“9”(确认的第 2步)。需要为该域或这两个功能键指定 in/out IN(在 ACK_OP指令的数据区域中)。3. 可选:在 HMI 系统中,评估ACK_OP 的背景 DB 中的输出 Q,以显示必须执行确认中第2 步的时间帧或指示确认中第 1步已发生。如果只通过监控表(监视/修改变量)从 PG/PC 进行用户确认,而不禁用安全模式,则需在调用 ACK_OP 时传输in/out IN 处的操作数(存储器字或者是标准用户程序 DB 中的DBW)。再通过修改该存储器字或 DB 中的DBW,传输一次 PG/PC 上的“确认值”“6”和“9”。但程序无法写入存储器字或 DB 中的 DBW。说明如果关联 in/outIN 和存储器字或 DB 中的 DBW,则对于 in/out IN 处 ACK_OP指令的每个实例,需使用一个单个的存储器字或标准用户程序 DB 中的DBW。警告一个单独操作不能触发两个确认步骤(例如,将两个确认步骤与时间条件自动存储在一个程序中,再通过一个键进行触发)。采用两个单独的确认步骤还可避免通过非故障安全HMI 系统误触发确认。如果使用 HMI 系统以及互连的 F-CPU,还使用 ACK_OP指令进行故障安全确认,则在进行这两步确认之前,需要确保将对目标 F-CPU 进行寻址。• 为此,需要在每个 F-CPU中标准用户程序的 DB 内存储一个全网* 唯一的 F-CPU 名称。• 在 HMI系统中设置一个域,通过该域可在执行两个确认步骤之前从 DB 中在线读取 FCPU 的名称。• 可选:在 HMI系统中,设置一个域yongjiu存储 F-CPU 的名称。只需比较在线读取的 FCPU名称和yongjiu存储的名称,即可确定是否正在对目标 F-CPU 进行寻址。 (S014)*网络由一个或多个子网组成。“网络范围”表示超出子网边界。操作员监控系统的组态不会影响集体 F 签名。通过 HMI系统进行用户确认的编程过程(S7-1200 和 S7-1500)1. 在“指令”(Instructions)任务卡中选择指令“ACK_OP”,并将该指令插入安全程序中。在ACK_OP 的输出 OUT 处将输出评估用户确认的确认信号。2. 为ACK_ID 输入指定一个介于 9 到 30000 之间的标识符进行确认。3. 为 in/out IN 指定一个存储器字或标准用户程序DB 中的 DBW。说明对于 ACK_OP 指令中的各个实例,需要为输入/输出参数 IN 指定一个单独的存储器字或标准用户程序 DB中的 DBW。4. 在 HMI 系统上设置一个域,手动输入“确认值”“6”(确认的第 1 步)和 ACK_ID输入处所组态的“标识符”(确认的第 2 步)。或指定功能键 1,一次性传送“确认值”“6”(确认的第 1 步);指定功能键2;一次性传送ACK_ID 输入处的“标识符”(确认的第 2 步)。需要将为该域或这两个功能键指定存储器字或指定分配给 in/outIN 的标准用户程序 DB的 DBW。5. 可选:在 HMI 系统中,评估 ACK_OP 的背景 DB 中的输出Q,以显示必须执行确认中第2 步的时间帧或指示确认中第 1步已发生。警告一个单独操作不能触发两个确认步骤(例如,将两个确认步骤与时间条件自动存储在一个程序中,再通过一个键进行触发)。采用两个单独的确认步骤还可避免通过非故障安全HMI 系统误触发确认。(S013)警告如果使用 HMI 系统以及互连的 F-CPU,还使用 ACK_OP指令进行故障安全确认,则在进行这两步确认之前,需要确保将对目标 F-CPU 进行寻址。方式 1:• 确认的每个标识符的值(ACK_ID输入;数据类型:INT)可在 9 至 30000 范围内任意选择,但在整个网络* 内对于 ACK_OP指令的所有实例必须均唯一。在调用该指令时,必须为 ACK_ID 输入提供常量值。在安全程序中,不允许直接读取或写入相关联的背景DB!方式 2:• 在每个 F-CPU 中,在标准用户程序的 DB 中存储一个全网*唯一的 F-CPU 名称。• 在 HMI系统中设置一个域,通过该域可在执行两个确认步骤之前从 DB 中在线读取 FCPU 的名称。• 可选:在 HMI系统中,设置一个域yongjiu存储 F-CPU 的名称。只需将在线读出的F-CPU名称和yongjiu存储的目标进行比较,即可确定是否正在对目标 F-CPU进行寻址。网络由一个或多个子网组成。“网络范围”表示超出子网边界。说明ACK_OP 指令中的 IN输入/输出以及操作员监控系统的组态,不会影响集体 F 签名、集体F-SW 签名或调用 ACK_OP 指令的块签名。对 IN输入/输出进行更改或对操作员监控系统进行更改,不会导致集体 F 签名/集体F-SW 签名/调用块的签名更改。重新集成 F-I/O的用户确认程序的编程示例1. 可选:如果要在 F-I/O 故障或通道故障后进行自动重新集成(无用户确认),则需将各F-I/O DB(页 180) 中的 ACK_NEC 变量设置为“0”。警告从安全角度出发,只有在相关过程允许自动重新集成时,才能进行变量ACK_NEC =0的参数分配。(S010)2. 可选:评估 QBAD 或 QBAD_I_xx/QBAD_O_xx(S7-300/400) 变量或值状态(S7-1200 和S7-1500)或各 F-I/O DB 中的DIAG,可在发生错误时触发指示灯;和/或在标准用户程序中通过评估以上变量或值状态在 HMI系统上生成错误消息。在进行确认操作之前可对这些消息进行评估。也可以评估 F-CPU 的诊断缓冲区。3. 可选:评估各 F-I/O DB中的 ACK_REQ 变量(例如,在标准用户程序或 HMI 系统中),查询或标识是否需要进行用户确认。4. 将确认键的输入或ACK_OP 指令的 OUT 输出分配给各 F-I/O DB 中的 ACK_REI 变量或ACK_GL 指令的ACK_REI_GLOB 输入(见上文)。在智能从站或智能设备上 F-CPU的安全程序中进行用户确认用户确认的方式可通过以下几种方式进行用户确认:• 通过访问智能从站/智能设备 F-CPU 的 HMI 系统•通过与带有输入的 F-I/O 相连接的确认键,该 F-I/O 分配给智能从站/智能设备的 F-CPU• 通过与带有输入的 F-I/O相连接的确认键,该 F-I/O 被分配给 DP 主站/IO 控制器的FCPU下图对以上三种不同方式进行说明。1.通过可访问智能从站/智能设备的 F-CPU 的 HMI系统进行用户确认要通过可访问智能从站/智能设备上 F-CPU 的 HMI 系统进行用户确认时,需要执行ACK_OP:故障安全确认(STEP 7 Safety V18) (页 618) 指令。编程步骤具体编程步骤,请参见“在 DP 主站或 IO 控制器的F-CPU 安全程序中实现用户确认(页 198)”中“编程步骤...”。在 HMI 系统中,可直接访问智能从站/智能设备中ACK_OP 的背景数据块。2.在输入被分配给智能从站/智能设备 F-CPU 的 F-I/O中通过确认键进行用户确认说明如果确认键所连接的 F-I/O 中发生通信错误、F-I/O 故障或通道故障,将无法再确认该 FI/O的重新集成。只有在智能从站/智能设备上的 F-CPU 从 STOP 切换到 RUN 时才会删除这种“阻塞”情况。对于连接确认键的F-I/O 进行重新集成确认,建议通过可访问智能从站/智能设备上F-CPU 的 HMI 系统进行确认(请参见 1)。3.在输入被分配给DP 主站/IO 控制器 F-CPU 的 F-I/O 中通过确认键进行用户确认如果要通过分配给 DP 主站/IO 控制器处 F-CPU的确认键在智能从站/智能设备 F-CPU 上的安全程序内进行用户确认,则需将通过安全相关的主站与智能从站通信/IO控制器与智能设备通信将确认信号从 DP 主站/IO 控制器上 F-CPU 的安全程序内传送到智能从站/智能设备上 F-CPU的安全程序内。编程步骤1. 在 DP 主站/IO 控制器上 F-CPU 的安全程序内插入 SENDDP (页 629) 指令。2.在智能从站/智能设备上 F-CPU 的安全程序中插入 RCVDP (页 629) 指令。3. 通过确认键的输入为 SENDDP提供输入 SD_BO_xx。4. 这样,就可在 RCVDP 的 RD_BO_xx输出处输出评估用户确认的确认信号。在程序段中采用完全资格方式直接从相关的背景数据块(如"RCVDP_DB".RD_BO_02)内直接读取该确认信号,并对该确认信号进行处理。5.RCVDP 中相应输入 SUBBO_xx 的值为 FALSE(故障安全值为 0),可确保在开始发送和接收 F系统后首次建立通信之前,或是在发生安全相关的通信错误时,不会意外触发用户确认。说明如果连接确认键的 F-I/O处发生通信错误、F-I/O 错误或通道故障,则无法对该 F-I/O 的重新集成进行确认。只能通过将 DP 主站/IO 控制器上的F-CPU 从 STOP 切换到 RUN 删除这种“阻塞”情况。为了对连接确认键的 F-I/O 进行重新集成确认,建议通过可访问DP 主站/IO 控制器 F-CPU 的 HMI 系统进行确认。如果发生安全相关的主站与智能从站/IO控制器与智能设备通信错误,则无法传送确认信号且无法再对安全相关通信的重新集成进行确认。只有在智能从站/智能设备上的 F-CPU 从STOP 切换到 RUN时才会删除这种“阻塞”情况。对于传输确认信号的安全相关的通信进行重新集成确认,建议通过可访问智能从站/智能设备 F-CPU 的HMI 系统进行确认。在标准用户程序和安全程序间进行数据交换在安全程序和标准用户程序间可进行数据传送。可以使用 DB、F-DB和位存储器来传输变量:将安全程序与标准用户程序分离对于标准用户程序与安全程序之间的数据交换,建议定义专用数据块(传送数据块),在这些传送数据块中存储要交换的数据。通过此操作,可以将标准用户程序和安全程序的块分离。在标准用户程序中进行的更改不会影响安全程序(亦然),前提是未修改这些数据块。将数据从安全程序传送到标准用户程序读取标准用户程序中安全程序的数据标准用户程序可读取安全程序中的所有数据,例如,通过对以下数据块进行符号(完全资格)访问:•F-FB 的背景数据块(“背景 DB 的名称”.Signal_x)• F-DB(例如,“F_DB 的名称”.Signal_1)•F-I/O 的过程映像输入和输出(如,“Emergency_Stop_Button_1”(I 5.0))说明对于 S7-300/400F-CPUF-I/O 的过程映像输入不仅可在 F 运行组开始处更新,还可通过标准操作系统更新。有关标准操作系统的更新次数,请参见STEP 7 帮助中“过程映像输入和输出”。对于支持过程映像分区的F-CPU,还需记录使用过程映象分区时的更新次数。为此,在标准用户程序中访问 F-I/O的过程映像输入时,所读取的值可能与安全程序中的不同。造成值不同的原因有::• 更新的次数不同•安全程序中使用了故障安全值要使标准用户程序中获得的值与安全程序中的相同,则在执行 F运行组之前不能在标准程序中访问过程映像输入。此时,要确定过程映像输入正在接收故障安全值 (0)或是接收过程数据,可评估标准用户程序中相关 F-I/O DB 内的 QBAD 或 QBAD_I_xx变量。使用过程映像分区时,还需确保在执行 F 运行组和在标准用户程序中评估过程映像输入期间,标准操作系统或 UPDAT_PI指令未对过程映像进行更新。说明对于 S7-1200/1500 F-CPU在处理主安全块之前,将更新 F-I/O的过程映像输入。在将数据从安全程序传送到标准用户程序期间,不会检查安全程序和安全相关数据的完整性(另请参见“产品概述 (页26)”部分)。