理解基于例外处理

基于例外处理的过程允许SAC通过例外处理扫描块或链,而不是按照预定的时间间隔。一个例外处理是指:

  • 过程值的变化大于定义的异常死区;或
  • 来自过程硬件的未经请求的消息。

使用基于例外处理通常需要更少的CPU时间,并提高运行效率,这是因为SAC不需要按照定义的时间间隔来扫描数据块。然而,如果一个块的值改变非常频繁,基于时间的过程会更有效。

只有当I/O驱动程序支持的时候,才可以使用基于例外处理。参考I/O驱动程序的用户手册,以了解您的I/O驱动程序是否支持基于例外处理。

注意:SM2驱动程序支持基于例外处理;但SIM驱动程序不支持基于例外处理。

警告:不要为基于例外处理的块和基于时间的块指派相同的I/O地址。这样的做法有时候将会导致基于例外处理的块丢失引入的值。

适用基于例外处理过程的块

您可以在大多数的块中使用基于例外处理,而某几个块比其它块在基于例外处理中表现得更好。可以按照需要在基于 例外处理的链中使用下列数据块:

  • 模拟输入
  • 开关控制
  • 模拟输出
  • 帕雷托
  • 数字量输入块
  • 比例/偏差
  • 数字量输出块
  • SQL 数据
  • 扇出
  • 定时器
  • 直方图
  • 累加器

典型地,在一个基于例外处理的链中,下表中列出的块是独立使用的并且有一定限制。

典型地,在一个基于例外处理的链中,下表中列出的块是独立使用的并且有一定限制。

当您添加块...

在一个基于例外处理的链中,请不要使用...

程序

程序

统计数据

统计数据

接收多个输入的块

布尔块、计算块、事件执行块和信号选择块可以使用来自多个数据块的值,但是SAC仅根据上游一级块的扫描时间来处理它们。

布尔块、计算块、事件执行块和信号选择块可以使用来自多个数据块的值,但是SAC仅根据上游一级块的扫描时间来处理它们。例如,下图显示了一个包含一个计算块的数据链范例,计算块接收来自数据链外部的模拟量输入块的值。

例如,下图显示了一个包含一个计算块的数据链范例,计算块接收来自数据链外部的模拟量输入块的值。

在这个链中,如果SAC通过例外处理扫描AI1,那么CA1仅当例外处理发生时才会访问其余的模拟量输入块的值。

在这个链中,如果SAC通过例外处理扫描AI1,那么CA1仅当例外处理发生时才会访问其余的模拟量输入块的值。CA1不访问数据链外部的基于扫描时间的模拟量输入块的值。下图显示了一个改进设计的数据链,仍然使用上图中的块。

下图显示了一个改进设计的数据链,仍然使用上图中的块。这个数据链允许CA1在任何一个模拟量输入块发生例外处理的时候重新计算其输出值,同时确保所有的块在重新计算输出值之前得到处理。

定义时间常数的块

PID、超前滞后以及死区块使用本地计算机的系统时间来定义时间常数。

PID、超前滞后以及死区块使用本地计算机的系统时间来定义时间常数。使用模拟量报警和数字量报警块

模拟量报警和数字量报警块支持基于例外处理。

模拟量报警和数字量报警块支持基于例外处理。然而,必须使得重复报警时间和延迟报警时间字段是不可修改的;否则,SAC会在iFIX启动或者重新装载数据库的时候将这些块(及其数据链)退出扫描。只有在操作员确认了一个来自于iFIX工作台的报警时,SAC才会处理基于 例外处理的模拟量报警和数字量报警块。指派基于例外处理的扫描时间

通过选择块对话框中的“基于例外处理”,可以为一个数据块指派基于例外处理的扫描时间。

通过选择块对话框中的“基于例外处理”,可以为一个数据块指派基于例外处理的扫描时间。如果配置一个有多个一级块的基于例外处理的数据链,必须在每个不用来启动数据链的一级块的扫描时间字段中输入0,并选择退出扫描选项按钮。

按照这样的方式配置不用来启动数据链的一级块,以确保SAC能够正确处理数据链。

 

另请参见

您最近了解过 iFIX 吗 ?

查看最新版 iFIX 的所有新功能。

让 iFIX 帮助您提高效率,降低成本。