问题:如何在中断 OB 中使用或更新过程映像分区?
解答:
组织块构成了操作系统和用户程序之间的接口。它们由操作系统基于中断或事件进行调用。
在过程映像访问期间,在分配给过程映像的 OB 的处理时间段内,CPU 可以使用一个一致的过程信号映像。如果在发生错误或正在调用中断 OB 时通过过程映像访问输入和输出,则属于该 OB 的过程映像提供的数值将会在所有时间一直可用。
独立于其它 OB (例如 OB1) 中的程序及其过程映像,过程映像分区允许用户在报警 OB 中以最新的形式响应属于该程序的相关输入数据,或者通过输出尽可能快地影响相关过程。如果触发信号和相应的数值都放置在过程映像分区中,则相关数值对相应的 OB 运行系统保持一致性。
过程映像在包含相应 OB 的过程映像分区中更新,其方式与 OB1 中的更新方式完全相同。
此更新的过程。
- 在 HW CONFIG 中将过程映像分区 (PIP) 分配给相关的输入/输出模块。
- 为此,双击模块。选择地址标签,定义模块的过程映像分区。
图 1:选择 PIP
- 然后可以将此过程映像分区分配给某个 OB。
- 为此,双击 CPU,在“Properties”下面选择其中一个中断标签。您可以在此处将该 PIP 分配给任何一个 OB。
图 2:将 PIP 分配给 OB
- 在调用此 OB 时,自动更新 PIP。
每一个 PIP 可以包含多个 I/O 地址或模块分配,虽然它一次只能分配给一个 OB。已经分配给过程映像分区的输入和输出地址不再属于输入和输出的 OB1 过程映像。对于 OB1 过程映像和所有其它过程映像分区,所有输入和输出地址只能分配一次。
此外,还可以使用 SFC 26“UPDAT_PI”或 SFC 27“UPDAT_PO”在程序的任意位置更新过程映像,这样该 PIP 就不必再由系统更新了。
注意事项:
PIP 不能自动更新。只有调用 SFC 或者启动和结束相关 OB 时才会进行更新。如果在我们的程序中请求了 OB 40,则会在此点实时读取相应的输入。在处理 OB 40 期间,这些当前值用于输入。
时钟中断 OB 的过程映像分区不是由系统更新的,虽然它们与 OB (OB61-OB64) 是连接在一起的。
STEP 7 在线帮助中提供关于过程映像的更多信息。