寻址 f- i/o
通过过程映像进行寻址
与标准 i/o 相同,可通过过程映像(pii 和 piq )访问 f-i/o (如,s7- 1500/et 200mp 故障安全模块)。
在安全程序中,不支持直接读取(通过 i/o 标识“:p” )输入或写入输出。
更新过程映像
f- i/o 的输入过程映像在 f 运行组开始时进行更新。f- i/o 的输出过程映像在 f 运行组结束时进行更新为更新过程映像而需要在 f-cpu(过程映像)和 f-i/o 之间进行的通信采用了符合 profisafe 的特殊安全协议。
规则:
● 只能在一个 f 运行组中寻址 f-i/o 的通道(通道值和值状态)。第一个编程的寻址定义了 f 运行组的分配。
● 只能通过与通道的数据类型匹配的单位寻址 f-i/o 的通道(通道值和值状态)。
示例:要访问 bool 数据类型的输入通道,必须使用“ 输入(位)”(i x.y) 单位。不能通过“ 输入字”(iw x) 单位访问 bool 数据类型的 16 个连续输入通道。
● 仅寻址引用实际存在的通道(通道值和值状态)的输入和输出(例如,对于起始地址为 10 的 f-do 10xdc24v ,仅为用于通道值的输出 q10.0 至 q11.1,用于值状态的输入 i10.0 至 i11.1)。请注意,由于特殊安全协议的原因,f- i/o 占用的过程映像区域比 f-i/o 上既有的和已启用的通道(通道值和值状态)所需的区域大。要找出用于存储通道(通道值和值状态)的过程映像区域(通道结构),请参见相关的 f-i/o 手册。
● 对于某些 f-i/o (如,et 200sp 故障安全模块或 s7-1500/et 200mp 故障安全模块),可禁用通道。仅对硬件配置中启用的通道(通道值和值状态)进行寻址。如果寻址在硬件配置中禁用的通道,则在编译安全程序时会输出一条警告。
● 对于某些 f-i/o (如,s7- 1500/et 200mp 故障安全模块或 et 200mp 故障安全模块),可指定“1oo2 (2v2) 传感器评估”。在这种情况下,将两个通道组成一个通道对,“1oo2 传感器评估” 的结果通常位于通道号较小的通道地址下(请参见相关的 f-i/o 手册)。仅对通道对的该通道(通道值和值状态)进行寻址。如果寻址其它通道,则在编译安全程序时会输出一条警告。
如果在 f-cpu (s7 -300/400) 和 f-i/o 间使用了其它组件(按照用户程序,在 f-cpu (s7 -
300/400) 和 f-i/o 之间复制符合 profisafe 的安全消息帧),则在更改用户编程的复制功
能时,必须测试受复制功能影响的所有安全功能。
值状态(s7- 1200 和 s7- 1500)
值状态是 f-i/o 通道值的附加二进制信息。该值状态输入到过程映像输入 (pii) 中。
值状态提供了有关相应通道值有效性的信息:
● 1 :为通道输出一个有效的过程值。
● 0 :输出通道的故障安全值。
只能从同一个 f 运行组访问 f-i/o 的通道值和值状态。
过程数据或故障安全值
何时使用故障安全值?
在以下情况下,安全功能要求在整个 f-i/o 或 f-i/o 的单个通道发生钝化时使用故障安全值 (0)
代替过程数据。此要求适用于数字量通道(数据类型 bool )以及模拟量通道(数据类型 int
或 dint):
● 当 f 系统启动时
● 当在 f-cpu 和 f-i/o 之间使用符合 profisafe 的安全协议进行安全相关的通信期间发生
错误(通信错误)时
● 发生 f-i/o 故障和通道故障(例如断线、短路和差异错误)时
● 只要在 f-i/o db 中使用 pass_on = 1 启用 f-i/o 的钝化
● 只要在 f-i/o db 中使用 disable = 1 禁用 f-i/o
f - i /o 通道的故障安全值输出
在带有输入的 f- i/o 中进行钝化时,f 系统会在 pii 中为安全程序提供故障安全值 (0),而不是 f- i/o 故障安全输入未定的过程数据。
在带有输出的 f- i/o 中进行钝化时,f 系统将故障安全值 (0) 输出到故障安全输出端,而非安全程序 piq 中的输出值。
重新集成 f - i/o 通道
从故障安全值(0 )到过程数据的切换(f- i/o 的重新集成)将自动进行或在 f-i/o db 中用户确认后进行。重新集成的方式取决于以下因素:
● f- i/o 或 f-i/o 通道钝化的原因
● 不带有“ 通道故障确认” 通道参数的 f-i/o 取决于相关 f- io 数据块 的 ack_nec 变量值。
● 带有“通道故障确认” 的通道参数的 f-i/o (例如 f 模块 s7- 1500/et 200 mp/f 模块 simatic s7- 1200)取决于通道参数值。
要了解使用“rioforfa - safety”规约的基于 gsd 的故障安全 dp 从站/基于 gsd 的故障安全 i/o 设备的相关信息,请参见相关文档。
f- i/o db
在硬件与网络编辑器中组态 f-i/ o 时,将自动为每个 f-i/o 创建一个 f-i/o db (安全模式下)。f- i/o db 包含用户可以评估或可以/必须写入到安全程序的变量。不允许在 f-i/o db 中直接更改变量的初始值。删除 f-i/o 时,也会删除相关的 f-i/o db 。
访问 f -i/o db
以下是访问 f-i/o db 的变量的原因:
● 为了在发生通信错误、f- i/o 故障或通道故障后重新集成 f-i/o
● 要根据安全程序的特殊状态钝化 f-i/o (例如,组钝化)
● 要禁用 f-i/o (例如,组态控制)
● 更改基于 gsd 的故障安全 dp 从站/基于 gsd 的 i/o 设备的参数
● 要评估是否应该输出故障安全值或过程数据
f- i/o db 的名称和编号
f- i/o db 的名称由以下部分组成:
● 固定前缀“f”
● f- i/o 的起始地址以及在硬件和网络编辑器或设备视图的 f-i/o 属性中输入的名称(最多为前 24 个字符)。
示例:f00004_f- di24xdc24v_1
选项“创建不带前缀的 f - i/o db” (s7- 1200、s7- 1500)
在安全管理编辑器的“ 设置”(settings)区域中选择选项“ 创建不带前缀的 f-i/o db”(creates f- i/o dbs without prefix) 时,名称仅包含以下部分:
● 在硬件和网络编辑器或设备视图的 f-i/o 属性中输入的名称(最多为 117 个字符)
示例:f- di24xdc24v_1
更改 f - i/o db 的名称和编号
通过更改在硬件和网络编辑器或设备视图的 f-i/o 属性中输入的名称来更改名称。
可以在相关 f-i/o 的“ 属性/f 参数”(properties/f- parameters) 选项卡中更改编号。
f- i/o db 的变量
pass_on
例如,pass_on 变量支持根据安全程序中的特殊状态启用 f-i/o 的钝化。
在 f-i/o db 中使用 pass_on 变量,只能钝化 f-i/o ,不能进行通道级钝化。
pass_on = 1 时,将钝化相关的 f-i/o 。
ack_nec
如果 f-i/o 检测到 f-i/o 故障,则会钝化相关的 f-i/o 。如果检测到通道故障,并且组态了通道级钝化,则会钝化相关通道。如果组态了钝化整个 f-i/o ,将钝化相应 f-i/o 的所有通道。
一旦消除 f-i/o 故障或通道故障,将根据 ack_nec 重新集成相关 f-i/o :
● ack_nec = 0 时,可指定自动重新集成。
● ack_nec = 1 时,可通过用户确认指定重新集成。
ack_rei
当 f 系统检测到通信错误或 f-i/o 故障时,将钝化相关 f-i/o 。如果检测到通道故障,并且组态了通道级钝化,则会钝化相关通道。如果组态了钝化整个 f-i/o ,将钝化相应 f-i/o 的所有通道。如果在排除故障后重新集成 f-i/o 通道,则需要通过 f-i/o db 的变量 ack_rei 的上升沿进行用户确认:
● 每个通信错误后
● 发生 f-i/o 或通道故障后(仅执行参数分配“ 通道故障确认 = 手动”(channel failure
acknowledgement = manual) 或 ack_nec = 1
通道故障后的重新集成将重新集成所有已清除故障的通道。
在变量 ack_req = 1 之前不能进行确认。
在安全程序中,必须通过 ack_rei 变量为每个 f-i/o 提供用户确认。
ipar_en
ipar_en 变量对应于 profisafe 总线规约(profisafe 规范 v1.20 及更高版本)中的 ipar_en_c 变量。
基于 gsd 的故障安全 dp 从站/基于 gsd 的 i/o 设备
要了解在重新分配基于 gsd 的故障安全 dp 从站/基于 gsd 的 i/o 设备的参数时何时必须置位或复位该变量,请查阅 profisafe 规范 v1.20 或更高版本,或者基于 gsd 的故障安全 dp 从站/基于 gsd 的 i/o 设备的相关文档。
请注意,ipar_en = 1 时,不会触发相关 f-i/o 的钝化。
如果要在 ipar_en = 1 时发生钝化,还必须将变量 pass_on 置为 1 。
disable
可以用 disable 变量停用 f-i/o 。
disabli = 1 时,将钝化相关的 f-i/o 。
(由于通信错误等)对于该 f-i/o ,安全程序的诊断条目可能不再被输入到 f-c pu 的诊断缓冲区中。
现有诊断条目被标记为离去事件。
qbad/pass_out/disabled/qbad_i_xx/qbad_o_xx 和值状态
下表列出了基于所用 f-i/o 和 f-cpu 的通道值和 qbad 、pass_out、disabled 、qbad_i_xx/qbad_o_xx 变量及值状态响应的差异。
ack_req
当 f 系统检测到通信错误或 f-i/o 故障或 f-i/o 通道故障时,将钝化相关 f-i/o 或 f-i/o 的各个通道。ack_req = 1 表示重新集成相关 f-i/o 或 f-i/o 的通道需要用户确认。
一旦消除故障后,f 系统将立即设置 ack_req = 1,从而可以执行用户确认。对于通道级钝化,一旦修正通道故障,f 系统会立即设置 ack_req = 1 。对于该故障,可进行用户确认。确认完成后,f 系统将把 ack_req 复位为 0 。
ipar_ok
ipar_ok 变量对应于 profisafe 总线规约(profisafe 规范 v1.20 及更高版本)中的
ipar_ok_s 变量。
diag
diag 变量可提供有关已发生错误或故障的非故障安全信息(1 字节),以用于检修目的。可以通过操作员监视和控制系统读取该信息,也可以在标准用户程序中评估该信息(如果适
用)。diag 位将被保存,直到在 ack_rei 变量上执行确认或自动重新集成。
访问 f- i/o db 的变量
寻址 f - i/o db 变量的规则
只能从 f 运行组访问 f-i/o 的 f-i/o db 的变量,而且该运行组只能是用来访问该 f-i/o 的通道的运行组(如果进行了访问)。
“ 完全资格 db 访问”
可通过“ 完全资格 db 访问” 方式访问 f-i/o db 变量(即,通过指定 f-i/o db 的名称和指定变量名称)。
评估 qbad 变量的示例 :
智能魔镜将带领我们进入一个黑科技的家居世界
智慧路灯的原理以及功能的详细介绍
什么是数据通信
2019年Q4全球智能音箱销量再创历史新高 亚马逊仍然是市场领导品牌
国产EDA龙头华大九天登陆创业板,开盘大涨111.23%,总市值一度突破400亿
西门子PLC的F- IO访问
汽车照明行业近日再添一员
爱立信正在全力解决5G能耗过高的问题
一文搞懂DDR SDRAM工作原理
学华为? iPhone 14 Pro的最新设计概念图曝光:一键静音
微软 Surface Laptop Go首次固件更新,修复指纹识别
特斯拉Model3的挑战以及产品核心供应链
财报特色:美的的营收、海尔的盈利、格力呢?
SAR ADC内部结构和基本原理
仪器介绍,彩色无滤光图像传感器的实现
谷歌点名批评小米:MIUI系统图标违反规则
cmos传感器的数码相机解决方案
三星专利侵权?华为起诉三星非法使用了其专利技术,近日结案
上海早已经步入全球智慧城市第一阵营
光学系统的 MTF 与分辨率之间有什么关系?