西门子PLC的F- IO访问

寻址  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 与分辨率之间有什么关系?