对象:F-I/O DB 是为故障安全 I/O 自动生成的系统接口。本篇按“控制量、系统状态、条件性成员、诊断字节”提供查阅入口,面向需要核对变量方向和含义的 TIA Portal 使用者。主要按 S7-1200/1500 阅读,S7-300/400 专属成员单独标明。 [1] [3]
版本:Siemens《SIMATIC Safety – Configuring and Programming》V21(11/2025)。表内初值来自该版成员表,不是本站推荐设置,也不是在线监视值。配图是 V14 SP1 官方历史例程,仅说明界面分组和列的读法;本文未进行仿真或实机验证。
写入或恢复输出前:落实工程备份、维护授权与危险能量控制。可写成员也必须在规定的安全程序和设备条件下使用,不能通过强制状态、修改系统初值或自动生成确认来消除报警。 [1] [6]
一、先确定 DB 对象,分清起始值与监视值
在硬件和网络编辑器中组态安全模式下的 F-I/O 后,系统为它生成对应 DB;删除该 F-I/O 时,关联 DB 也随之删除。它不是用户自由定义的设备数据块,不允许直接修改其中变量的初始值。 [1]
默认名称由前缀 F、F-I/O 起始地址和模块名称组成,例如官方给出的 F00004_F-DI24xDC24V_1。S7-1200/1500 也可以启用不带前缀的生成选项,所以“没找到 F 开头的 DB”不等于没有生成。名称中的地址与实际 DB 编号要分开核对,不能把例子中的 00004 当成 DB4。 [2]
下面的官方监视图中,先看 Input、Output 两组,再比较“起始值”和“监视值”两列。这里的方向是系统接口方向,不是现场 DI/DQ 分类:Input 中的量由安全程序按规则提供;Output 中的量由系统返回供程序读取。 [3] [18]

图中 PASS_ON = FALSE,而 PASS_OUT、QBAD 都为 TRUE,ACK_REQ 为 FALSE。原例程将它放在通道故障导致钝化的阶段:它说明钝化不一定由 PASS_ON 请求。截图只显示部分成员,不是下一节 V21 成员清单的完整界面证据。 [18]
二、常用成员:控制方向、类型与初值
以下“写”指由安全程序按要求赋值,“读”指读取系统返回量;不代表标准程序或 HMI 可以直接写入。BOOL 初值以 FALSE/TRUE 表示,分别对应 0/1;初值与运行中的实际状态分开判断。类型和初值依据资料 [3],用途按各成员章节核对。 [3] [17]
| 成员 | 方向 | 类型/初值 | 用途与限制 |
|---|---|---|---|
PASS_ON |
写 | BOOL/FALSE | 为 1 时主动钝化相关整块 F-I/O,不是单通道屏蔽。[4] |
ACK_NEC |
写 | BOOL/TRUE | 适用的模块/通道故障恢复策略:1 为人工确认,0 为自动;有通道确认参数时按其适用规则处理。[3] [5] |
ACK_REI |
写 | BOOL/FALSE | 在允许确认阶段接收用户确认上升沿,不负责修复故障。[6] |
PASS_OUT |
读 | BOOL/TRUE | 钝化输出状态;与 QBAD 的行为并非始终相同,见第四节。[12] |
QBAD |
读 | BOOL/TRUE | 模块级安全替代值状态;不能对所有配置都解释为全部通道质量。[12] |
ACK_REQ |
读 | BOOL/FALSE | 系统请求重新集成确认;确认后清除,不是可写的复位请求。[7] |
DIAG |
读 | BYTE/16#00 | 非故障安全服务信息;位定义及适用性见第五节。[14] |
确认策略与确认事件不要混用
ACK_NEC 的初值是 1;在适用该变量且不需要自动重新集成时,不必专门写它。改为 0 只有在过程从安全角度允许自动重新集成时才成立。支持 Channel failure acknowledge(通道故障确认)参数的 F-I/O,以该通道参数替代这里的 ACK_NEC 作用。 [3] [5]
ACK_REQ = 1 说明相应故障已满足可确认条件;某些输出模块仍须等待内部测试完成。ACK_REI 的确认须来自手动操作形成的有效上升沿。不得将 ACK_REQ 直接反馈给 ACK_REI,也不得周期性制造确认脉冲。通信错误后的确认与可配置的通道故障恢复是不同分支。 [6] [7]
F-I/O DB 的这些接口只处理相关模块或通道;ESTOP1、SFDOOR 内的同名确认参数属于各自实例。完整故障分支已在钝化、重新集成与启动保护中展开,本篇不再复制一套恢复步骤。
三、条件性成员:先核对是否适用于当前设备
下表补齐该版总表列出的其余成员或成员组。不要手工给实际 DB 添加缺失字段:是否提供、是否适用,由 CPU、Safety system version(安全系统版本)、F-I/O 和组态共同决定。 [3]
| 成员 | 方向与类型 | 初值 | 适用范围 |
|---|---|---|---|
DISABLE |
写/BOOL | FALSE | S7-1200/1500,自安全系统版本 V2.1 起;请求停用 F-I/O。[3] [8] |
DISABLED |
读/BOOL | FALSE | 与上述版本范围对应,1 表示 F-I/O 已停用。[3] [12] |
IPAR_EN |
写/BOOL | FALSE | 适用 GSD 设备的参数重新分配;指定 SM 336 F-AI HART 另有专门用途。[9] |
IPAR_OK |
读/BOOL | FALSE | 与 IPAR_EN 配套的状态;按设备或规约解释,不是通用“所有参数正确”位。[10] |
QBAD_I_xx |
读/BOOL | TRUE | 成员表针对 S7-300/400 的输入通道质量;有不提供该成员的 GSD 设备例外。[3] |
QBAD_O_xx |
读/BOOL | TRUE | 成员表针对 S7-300/400 的输出通道质量;不能移植成所有 S7-1500 DB 的成员。[3] |
BASEID_ACTIVE |
读/LWORD | 0(零) | 总表列为 S7-1200 G2/1500、自安全系统版本 V2.8 起;仅当 CPU 与 F-I/O 都支持 PROFIsafe 地址类型 3 时相关,属于非故障安全信息。[3] [11] |
DISABLE 不等于 PASS_ON 的另一个名字。DISABLE 为 1 同样使相关 F-I/O 钝化,但还会影响该 F-I/O 在 F-CPU 诊断缓冲区中的相关安全程序诊断:原有记录标为消失,相关新记录可能不再写入。不能拿它当“清报警按钮”,否则报警不见了并不证明原因消失。 [8]
IPAR_EN 为 1 不会自行触发钝化。需要在参数重新分配期间钝化时,官方另要求使用 PASS_ON。何时置位、复位及怎样评价 IPAR_OK,须查具体 GSD 设备或 PROFIsafe 规约;这里不补造一套适用于全部设备的握手顺序。 [9] [10]
表中的 V2.1、V2.8 是安全系统版本,不能读成 TIA Portal V2.1/V2.8。旧项目中没有 BASEID_ACTIVE,也不能据此认定 DB 损坏。 [3] [11]
四、QBAD、PASS_OUT 与通道有效性怎样组合阅读
先查当前 F-I/O 是否支持 RIOforFA-Safety 配置文件,以及采用整模块还是通道级钝化。下表仅摘取 S7-1200/1500 的对照;“不变”严格保留原文含义,不等于强制为 0。 [12]
| 条件 | 模块级状态 | 通道层面 |
|---|---|---|
| 启动、通信故障、模块故障,或整模块钝化方式下的通道故障 | QBAD、PASS_OUT 为 1;DISABLED 不变。 | 相关 F-I/O 各通道使用安全替代值;有值状态时为 0。 |
| 通道级故障;支持 RIOforFA-Safety | QBAD、PASS_OUT、DISABLED 不变。 | 受影响通道使用安全替代值,值状态为 0。 |
| 通道级故障;不支持 RIOforFA-Safety | QBAD、PASS_OUT 为 1;DISABLED 不变。 | 受影响通道使用安全替代值;有值状态时为 0。 |
PASS_ON = 1 |
QBAD 为 1;PASS_OUT、DISABLED 不变。 | 相关 F-I/O 各通道使用安全替代值。 |
DISABLE = 1 |
QBAD、PASS_OUT、DISABLED 均为 1。 | 相关 F-I/O 各通道使用安全替代值。 |
上述“有值状态时”不能省略:不支持 RIOforFA-Safety 的故障安全 GSD DP 从站/GSD I/O 设备,并不提供该表所说的通道值状态。不能发现变量缺失后,自行编一个质量位代替。 [3] [12]
S7-1200/1500 的 Value Status(值状态)是通道的附加二进制信息,位于输入过程映像,不是要求在每个 F-I/O DB 中寻找一个叫 ValueStatus 的成员。1 表示有效过程值,0 表示安全替代值;输出通道的值状态同样映射在输入过程映像,具体地址查对应模块手册。 [13]
因此,一个正确的组合可以是“过程值为 0,值状态为 1”:现场本来就在提供有效的 0。另一个组合“过程值为 0,值状态为 0”说明数据已被替代,但不能仅凭它判断现场触点是否真的断开。不要把有效性与过程含义压成一个“正常/故障”开关。 [13]
五、DIAG 按位查阅,保留 CPU 与协议限制
这里的 DIAG 是 F-I/O DB 的服务字节,不能用于安全控制判断。其信息保存到 ACK_REI 确认或自动重新集成;当前诊断位不一定代表原因此刻仍存在。下表按 V21 定义列出全部位,十六进制掩码由位号换算,用于按位判断,不是整个字节的等值故障码。 [14]
| 位/掩码 | 含义 | 适用性 |
|---|---|---|
Bit 0/16#01 |
F-I/O 检测到超时。 | 按实际设备诊断定位。 |
Bit 1/16#02 |
F-I/O 检测到模块或通道故障。 | 不适用于支持 RIOforFA-Safety 的 F-I/O。 |
Bit 2/16#04 |
F-I/O 检测到 CRC 或序列号错误。 | 不是单独的通道断线代码。 |
Bit 3/16#08 |
保留。 | 不自行分配含义。 |
Bit 4/16#10 |
F 系统检测到超时。 | 注意与 Bit 0 的检测方不同。 |
Bit 5/16#20 |
F 系统检测到序列号错误。 | 仅 S7-300/400 F-CPU。 |
Bit 6/16#40 |
F 系统检测到 CRC 错误。 | 不是 ACK_REQ。 |
Bit 7/16#80 |
寻址错误。 | 仅 S7-1200/1500 F-CPU;原文要求联系 Service & Support。 |
不要套用前面功能块的 DIAG 位表:本表 Bit 6、Bit 7 不是确认请求和 Q 状态。定位具体原因仍需读取目标模块诊断缓冲区和相应设备手册,不能看到超时就一律增加监控时间或更换 CPU。 [14]
六、访问方式与观察记录
访问采用“DB 名+成员名”的全限定符号形式。下面沿用图 1 的官方示例名称,只展示观察对象的写法,不是可下载的程序,也不代表你的工程里存在同名 DB。 [15] [18]
"F00000_F-DI8x24VDCHF_1".PASS_ON
"F00000_F-DI8x24VDCHF_1".QBAD
"F00000_F-DI8x24VDCHF_1".ACK_REQ
在安全程序内,同一 F-I/O 的通道、值状态和关联 DB 只能由对应的同一个 F 运行组访问。标准程序可以按规定读取安全数据,但读取权限不等于写入权限;不能为了做 HMI 复位,在标准程序中直接改写这些 F-DB 成员。跨程序的数据接口另见标准程序与安全程序的数据交换。 [15] [16] [17]
建议同时记录对象、状态与来源
在线观察前,先把站、槽位、实际模块、组态名称、DB 与 F 运行组对应起来;记录 PASS_ON/DISABLE 的写入来源、实际确认策略、QBAD/PASS_OUT、目标通道质量及 DIAG。确认过程需要保留信号变化顺序,单张监视截图只能说明截图时可见的值。
用途不同的表要分开使用:成员初值表用于核对声明,状态对照表用于解释当前配置,DIAG 表用于定位诊断线索。需要执行故障恢复时,转到钝化与重新集成专题;本篇不以接口可写为依据给出未经验证的在线操作。
资料来源
第 1~17 项均为 Siemens《SIMATIC Safety – Configuring and Programming》V21,11/2025,按实际核对章节列出;第 18 项为历史例程。表格是按查阅任务重组的资料摘要,观察方法为本文建议,均不作为本站实测记录。
1. Siemens:F-I/O DB。Introduction;生成、删除与初始值限制。
2. Siemens:Name and number of the F-I/O DB。命名、无前缀选项及 DB 编号。
3. Siemens:Tags of the F-I/O DB。成员类型、初值、CPU/系统版本和协议适用性;表格脚注一并核对。
4. Siemens:PASS_ON。整模块主动钝化;不能按通道控制。
5. Siemens:ACK_NEC。适用故障类型、默认人工确认、警告 S010。
6. Siemens:ACK_REI。确认前提、上升沿及手动来源要求 S011。
7. Siemens:ACK_REQ。系统置位、清除及输出模块测试等待。
8. Siemens:DISABLE。停用、钝化及诊断缓冲区处理。
9. Siemens:IPAR_EN。GSD 设备参数重分配与指定 HART 模块;仅置位不会触发钝化。
10. Siemens:IPAR_OK。与 IPAR_EN 配套的状态;具体规约和设备要求另查。
11. Siemens:BASEID_ACTIVE。活动 F-BaseID、非故障安全信息及地址类型 3 前提。
12. Siemens:QBAD/PASS_OUT/DISABLED/QBAD_I_xx/QBAD_O_xx and value status。按故障来源、CPU、RIOforFA-Safety 和钝化粒度区分的行为表及脚注。
13. Siemens:Value status (S7-1200, S7-1500)。Properties;值状态位于输入过程映像,含义为 1 有效/0 替代值。未移植示例地址表。
14. Siemens:DIAG。Structure of DIAG;位定义、保存条件及三个适用性脚注。
15. Siemens:Accessing tags of the F-I/O DB。全限定符号访问和运行组限制。
16. Siemens:Rules for F-Runtime Groups of the Safety Program。Rules;通道、值状态和对应 DB 的同组访问。
17. Siemens:Data exchange between standard user program and safety program。读写权限表;标准程序不能写 F-DB 变量。
18. Siemens:TIA Portal 中 S7-1500F CPU 与 ET200SP 安全模块的配置例程。V14 SP1 历史例程;第 1 节环境、第 4 节原图 4-2。CPU 1511F-1 PN V2.1、F-DI 6BA00;仅用图中可见成员说明读表方法。
图片说明:配图取自资料 [18] 的官方原图,未生成或改绘,原图标注保留。示例名称和监视状态属于原例程;第三方图片权利归 Siemens,不纳入本站原创文字的 CC BY-NC-SA 许可。
修订说明:改为接口参考结构,补齐成员方向、类型、初值、版本与适用性,重排状态对照和 DIAG 位表;恢复时序另见专题。正文不设目录。资料复核:2026-09-10;未进行仿真或实机验证。
Comments NOTHING