锁存数据
如果使用 IREF 为功能块指令指定输入数据,会锁存此 IREF 中的数据,以便扫描功能块例程。IREF 会锁存程序作用域标签和控制器作用域标签中的数据。控制器会在每次扫描开始时更新所有 IREF 数据。

在本例中,tagA 的值是在例程开始执行时存储的。Block_01 执行时,会使用存储值。Block_02 执行时,也会使用相同的存储值。如果 tagA 的值在例程执行过程中发生变化,则在例程下次开始执行之后,IREF 中 tagA 的存储值才会发生变化。

此例与上一示例相同。仅会在例程开始执行时存储一次 tagA 的值。在整个例程中都使用这一存储值。

在同一例程的多个 IREF 和一个 OREF 中可以使用同一个标签。由于每次扫描例程时 IREF 中的标签值都被锁存,因此所有的 IREF 都将使用相同的值,即使在例程的执行过程中 OREF 获得不同的标签值也是如此。
在本示例中,如果当例程开始执行此次扫描时 tagA 的值是 25.4,并且 Block_01 将 tagA 的值改为 50.9,则当 Block_02 执行本次扫描时,接入 Block_02 的第二个 IREF 仍将使用值 25.4。在下次扫描开始后,此例程中的 IREF 才会使用 tagA 的新值 50.9。

提供反馈