基于例外处理的过程允许SAC通过例外处理扫描块或链,而不是按照预定的时间间隔。一个例外处理是指:
- 过程值的变化大于定义的异常死区;或
- 来自过程硬件的未经请求的消息。
使用基于例外处理通常需要更少的CPU时间,并提高运行效率,这是因为SAC不需要按照定义的时间间隔来扫描数据块。然而,如果一个块的值改变非常频繁,基于时间的过程会更有效。
只有当I/O驱动程序支持的时候,才可以使用基于例外处理。参考I/O驱动程序的用户手册,以了解您的I/O驱动程序是否支持基于例外处理。
注意:SM2驱动程序支持基于例外处理;但SIM驱动程序不支持基于例外处理。
警告:不要为基于例外处理的块和基于时间的块指派相同的I/O地址。这样的做法有时候将会导致基于例外处理的块丢失引入的值。
适用基于例外处理过程的块
您可以在大多数的块中使用基于例外处理,而某几个块比其它块在基于例外处理中表现得更好。可以按照需要在基于 例外处理的链中使用下列数据块:
典型地,在一个基于例外处理的链中,下表中列出的块是独立使用的并且有一定限制。
典型地,在一个基于例外处理的链中,下表中列出的块是独立使用的并且有一定限制。
当您添加块...
在一个基于例外处理的链中,请不要使用...
|
程序
|
程序
|
统计数据
|
统计数据
|
接收多个输入的块
|
布尔块、计算块、事件执行块和信号选择块可以使用来自多个数据块的值,但是SAC仅根据上游一级块的扫描时间来处理它们。
布尔块、计算块、事件执行块和信号选择块可以使用来自多个数据块的值,但是SAC仅根据上游一级块的扫描时间来处理它们。例如,下图显示了一个包含一个计算块的数据链范例,计算块接收来自数据链外部的模拟量输入块的值。
例如,下图显示了一个包含一个计算块的数据链范例,计算块接收来自数据链外部的模拟量输入块的值。
在这个链中,如果SAC通过例外处理扫描AI1,那么CA1仅当例外处理发生时才会访问其余的模拟量输入块的值。
在这个链中,如果SAC通过例外处理扫描AI1,那么CA1仅当例外处理发生时才会访问其余的模拟量输入块的值。CA1不访问数据链外部的基于扫描时间的模拟量输入块的值。下图显示了一个改进设计的数据链,仍然使用上图中的块。
下图显示了一个改进设计的数据链,仍然使用上图中的块。这个数据链允许CA1在任何一个模拟量输入块发生例外处理的时候重新计算其输出值,同时确保所有的块在重新计算输出值之前得到处理。
定义时间常数的块
PID、超前滞后以及死区块使用本地计算机的系统时间来定义时间常数。
PID、超前滞后以及死区块使用本地计算机的系统时间来定义时间常数。使用模拟量报警和数字量报警块
模拟量报警和数字量报警块支持基于例外处理。
模拟量报警和数字量报警块支持基于例外处理。然而,必须使得重复报警时间和延迟报警时间字段是不可修改的;否则,SAC会在iFIX启动或者重新装载数据库的时候将这些块(及其数据链)退出扫描。只有在操作员确认了一个来自于iFIX工作台的报警时,SAC才会处理基于 例外处理的模拟量报警和数字量报警块。指派基于例外处理的扫描时间
通过选择块对话框中的“基于例外处理”,可以为一个数据块指派基于例外处理的扫描时间。
通过选择块对话框中的“基于例外处理”,可以为一个数据块指派基于例外处理的扫描时间。如果配置一个有多个一级块的基于例外处理的数据链,必须在每个不用来启动数据链的一级块的扫描时间字段中输入0,并选择退出扫描选项按钮。
按照这样的方式配置不用来启动数据链的一级块,以确保SAC能够正确处理数据链。
另请参见