10. Processor 反应器元素

10.1 元素定义

Processor反应器元素是用来描述现实生产运作系统中的连续流体的反应处理装置。在其内部存储的流体达到它的额定反应量时,它便关闭输入开始对流体进行反应处理工作,结束后排空内部的流体,才可进入下一个工作循环。

它有输入、输出流程逻辑按钮,用来描述流体的注入和排空操作。通过使用这些流程规则,它可以一次性从多个输入源同时输入流体,也可以一次性向多个目的地同时输出流体。在模型的仿真运行过程中Processor反应器元素具有多个不同的形态:等待流体输入的空闲状态、对流体的处理工作状态、故障状态、维护状态、输出阻塞状态、报警状态等等。

10.2 通用选项卡

在模型结构树上,鼠标双击Processor反应器元素节点,系统弹出Processor元素属性对话框如下,缺省的状态下,系统首先展示出的是“通用”选项卡的属性界面。它有两个流程逻辑定义按钮和两个行为逻辑定义按钮。

  • 属性参数

如图,从左至右,Processor反应器元素“通用”选项卡中的属性参数有:初始流体、初始容量、最小处理容量、反应器容量、反应时间。

【提示1】

点击“初始流体”下拉菜单,可选择仿真开始时刻Processor元素中含有的流体并定义其初始容量。反应器的“最小处理容量”需大于等于其“初始容量”。

【提示2】

在属性文本框中,可以使用模型变量表达式、函数做为输入,在仿真运行时,系统会实时调用这些函数,通过函数的返回值和计算表达式的值,来确定当前时刻这些属性框的值。

  • fill_from 流程逻辑

“fill_from”按钮下附着的流程逻辑代码,描述了该Processor元素中转运的连续流体来源逻辑。如前所述,“流程逻辑”定义的具体内容,就是由用户使用计算机程序代码(VBS语言)调用系统的“流程规则语句”代码构成。这里为定义Processor元素的流体来源逻辑可使用多个“流程规则语句”语法如下:

  1. flow_from = array(location1, v1, location2, v2, location3, v3…)

这条规则语句的涵义就是从多个输入源输入流体到当前的Processor反应器元素中。这里的locationi就是流程模型中“Tank储罐元素”、“Pipe管道元素”、“Processor处理器”元素、“Fluid元素”节点的名称,代表的第i个输入源;vi即是从第i个输入源输入流体的速度。

【提示1】

 如果输入源是Fluid元素,则要求该Fluid是“Passive”类型流体元素。

【提示2】

 建模时用户可以使用该规则语句为Processor元素设定多个如果输入源,在模型仿真运行时,系统会实时依次检测输入源列表中的各个元素可供输入的元素,如该元素可提供输入,从该元素获得输入量不超过vi,且累计总量不超过反应器的空罐容。

  1. connect_with = array(location1, location2, location3…)

这条规则语句的涵义就是从多个输入源输入流体到当前的Processor反应器元素中。这里的locationi就是流程模型中“Pipe管道元素”节点的名称,代表的第i个输入源。

【提示1】

当Processor元素使用connect_with语句设定输入源时,只能选择Pipe管道元素作为输入对象。

  • flow_to 流程逻辑

“flow_to”按钮下附着的流程逻辑代码,描述了该Processor元素将反应器内的流体运往下一个目的地输送逻辑。如前所述,“流程逻辑”定义的具体内容,就是由用户使用计算机程序代码(VBS语言)调用系统的“流程规则语句”代码构成。Processor元素建立输送逻辑的“流程规则语句”语法如下:

  1. flow_to = array(location1, v1, location2, v2, location3, v3, …)

这条规则语句的涵义就是将反应器内的流体向多个目的地输送。这里的locationi就是流程模型中“Tank储罐元素”、“Pipe管道元素”、“Processor处理器”元素、“ship”元素节点的名称,代表的第i个输出目的地;vi是向第i个目的地输送流体的速度。

  1. connect_with = array(location1, location2, location3…)

这条规则语句的涵义就是将反应器内的流体向多个目的地输送。这里的locationi就是流程模型中“Pipe管道元素”节点的名称,代表的第i个输出目的地。

【提示1】

Processor元素使用connect_with语句设定输出目的地源时,只能选择Pipe管道元素作为输出对象。

  • 行为逻辑

Processor元素的在“通用”选项卡中有两个行为逻辑定义按钮:“Action On Input”、“Action On Output”。它们分别对应着Processor元素实例,在仿真进行到不同状态所激发的行为逻辑。“行为逻辑”代码的编写,是由用户使用VBS语言调用系统的内部函数、自定义函数、模型变量等代码等构成。 这两个按钮下的“行为逻辑”代码的执行条件与含义如下:

  1. “Action On Input”:当Processor元素开始流体的输入时,该按钮下的代码就被激活执行一次;
  1. “Action On Output”:当Processor元素往下一个目的地输送物料时,该按钮下的代码就会被激活执行一次。
10.3 维护选项卡

点击通用选项卡页面左上角的“维护”按钮,系统将属性页面切换至“维护”选项卡的属性界面。“维护”选项卡用来定义Processor元素实例在仿真运行过程的维护工况,它有两个行为逻辑定义按钮,如下图所示:

  • 属性参数

如图,从左至右,Processor元素“维护”选项卡中的属性参数有:维护模式、值表达式、维护时长。其中“值表达式”随着维护模式的不同而具有不同的涵义,分别介绍如下:

  1. “No of Operation”:Processor元素实例,每完成一定数量的反应处理操作后便复位维护一次。值表达式输入框中“值”即为完成操作的数量,维护时长输入框参数即为“Processor”元素实例完成一次维护所需要的时间。
  1. “Value Changed”:在模型的仿真运行过程中,当值表达式输入框中录入的表达式的“值”发生改变时便触发一次Processor元素实例的维护操作。值表达式输入框中录入的是模型变量表达式。

【提示1】

一旦Processor元素处于维护工况、故障工况,在排空反应器内流体后不再接收新的流体,直至维护工况时间结束。

  • 行为逻辑

Processor元素的“维护”选项卡中有两个行为逻辑定义按钮:“Action On Start”、“Action On Resume”。 这两个按钮下的“行为逻辑”代码的执行条件与含义如下:

  1. “Action On Start”:Processor元素实例,在每次维护开始时,该按钮下的代码就被激活执行一次;
  1. “Action On Resume”:Processor元素实例,在每次维护完成时,该按钮下的代码就被激活执行一次;

一条完整的维护工况由“维护模式”、“值表达式”、“维护时长”、“Action On Start”行为逻辑代码、“Action On Resume”行为逻辑代码等五项内容构成。完成这些内容的定义后点击“维护”选项卡中的“增加”按钮,这一维护工况便记录在维护工况列表中,根据实际流程的需要,可以为Processor元素实例建立多个维护工况。如随着建模工作的进行,需要修改之前定义好的维护工况,则点击“维护”选项卡中的“工况列表”下拉菜单选中要修改的工况序号,则属性输入框中的内容,被该维护工况信息刷新,接下来,用户可直接修改这些内容,修改完成后,点击“修改”按钮,则系统记录的维护工况列表中的信息被更新。

如果要删除某条维护工况,则点击“维护”选项卡中的“工况列表”下拉菜单,选中要修改的维护工况序号,然后再点击“删除”按钮,该条维护工况的内容即从工况列表中删除掉。

10.4 故障选项卡

点击通用选项卡页面左上角的“故障”按钮,系统将属性页面切换至“故障”选项卡的属性界面。“故障”选项卡用来定义Processor元素实例在仿真运行过程的故障工况,它有两个行为逻辑定义按钮,如下图所示:

  • 属性参数

如图,从左至右,元素“故障”选项卡中的属性参数有:故障模式、时间间隔、修复时长。其中“时间间隔”随着故障模式的不同而具有不同的涵义,分别介绍如下:

  1. “Available Time”:当模型开始仿真运行时,每经历“时间间隔”参数所输入的时间间隔,Processor元素实例就被触发一次设备故障,接着设备经历“修复时长”参数所输入的时间间隔后,设备恢复正常工作。“Availabe Time”故障模式,用来描述生产线上那些当班的设备的故障行为,即只要这台设备处于“当班”状态(或者“加电”状态),不论它是否进行加工处理操作,系统都按照固定的时间间隔去触发该设备的故障状态。
  1. “Busy Time”:与前一种故障模式不同,当模型开始仿真运行时,系统会自动累计该Processor 元素实例处于加工处理状态的时间,当这一累计时间每经历“时间间隔”参数所输入的时间间隔,Processor元素实例就被触发一次设备故障,接着设备经历“修复时长”参数所输入的时间间隔后,设备恢复正常工作。
  • 行为逻辑

Processor元素的“故障”选项卡中有两个行为逻辑定义按钮:“Action On Start”、“Action On Resume”。 这两个按钮下的“行为逻辑”代码的执行条件与含义如下:

  1. “Action On Start”:Processor元素实例,在每次故障状态开始时,该按钮下的代码就被激活执行一次;
  1. “Action On Resume”:Processor元素实例,在每次故障修复完成时,该按钮下的代码就被激活执行一次;

一条完整的故障工况由“故障模式”、“时间间隔”、“修复时长”、“Action On Start”行为逻辑代码、“Action On Resume”行为逻辑代码等五项内容构成。完成这些内容的定义后点击“故障”选项卡中的“增加”按钮,这一故障工况便记录在故障工况列表中,根据实际流程的需要,可以为Processor元素实例建立多个故障工况。如随着建模工作的进行,需要修改之前定义好的故障工况,则点击“故障”选项卡中的“工况列表”下拉菜单选中要修改的故障工况序号,则属性输入框中的内容,被该故障工况信息刷新,接下来,用户可直接修改这些内容,修改完成后,点击“修改”按钮,则系统记录的故障工况列表中的信息被更新。

如果要删除某条故障工况,则点击“故障”选项卡中的“工况列表”下拉菜单,选中要修改的故障工况序号,然后再点击“删除”按钮,该条故障工况的内容即从故障工况列表中删除掉。

10.5 报警选项卡

点击通用选项卡页面左上角的“报警”按钮,系统将属性页面切换至“报警”选项卡的属性界面。“报警”选项卡用来定义Processor元素实例在仿真运行过程的报警工况,它有两个行为逻辑定义按钮,如下图所示:

  • 属性参数

如图,从左至右,元素“报警”选项卡中的属性参数有:高液面位置、低液面位置,分别对应着系统的两种报警模式:

液面升高报警:当Processor元素中当前液面位置高于“高液面位置”设定值时,触发系统报警,激活并执行“Rising Action”按钮下的代码。

液面降低报警:当Processor元素中当前液面位置低于“低液面位置”设定值时,触发系统报警,激活并执行“Falling Action”按钮下的代码。

【提示1】

液面位置是由当前液面距反应器底部的容量界定的,即在报警液面位置输入框输入的是距反应器底部的容量数值而非高度数值。

一条完整的报警工况由“液面位置”、“Rising Action”或者“Falling Action”报警行为逻辑代码等两项内容构成。完成这些内容的定义后点击每种报警属性框中的“增加”按钮,这一报警工况便记录在该报警工况列表中,根据实际流程的需要,可以为Processor元素实例建立多个报警工况。如随着建模工作的进行,需要修改之前定义好的报警工况,则点击“报警”选项卡中的“工况列表”下拉菜单选中要修改的报警工况序号,则属性输入框中的内容,被该报警工况信息刷新,接下来,用户可直接修改这些内容,修改完成后,点击“修改”按钮,则系统记录的报警工况列表中的信息被更新。

如果要删除某条报警工况,则点击“报警”选项卡中的“工况列表”下拉菜单,选中要修改的报警工况序号,然后再点击“删除”按钮,该条报警工况的内容即从报警工况列表中删除掉。

10.6 内部函数

点击系统模型结构树“System”节点,然后再点击其下的“Processor”子节点,系统展开Processor元素有关的内部函数节点。在流程代码编辑阶段,用户可通过鼠标双击这些函数节点来引用它们。Processor元素有关的内部函数定义如下:

  1. 函数名称:  Status(ProName)
    函数功能: 计算Processor元素当前的运行状态。
    输入参数 1:  ProName,Tank元素名称。
    函数返回值:Processor元素当前状运行态值。
              -1 函数未成功执行。
               0  等待流体注入状态。
               1 反应器工作状态。
               2流体注入状态。
               3流体排空状态。
               4 反应器处于维护状态。
               5 反应器处于故障状态。
  1. 函数名称:  fillStatus(ProName)
    函数功能: 计算Processor元素当前的填充状态。
    输入参数 1:  ProName,Processor元素名称。
    函数返回值:Processor元素当前填充状态值。
              -1 函数未成功执行。
               0 储罐处于排空状态。
               1 储罐处于半空状态。
               2 储罐处于充满。
  1. 函数名称:  freeSpace (ProName)
    函数功能: 计算Processor元素当前的剩余空间。
    输入参数 1:  ProName,Processor元素名称。
    函数返回值:Processor元素当前填充状态值。
              -1 函数未成功执行。
              > 0 Processor元素当前的剩余空间。
10.7 元素报表

当模型仿真运行完成后,鼠标右键单击在模型结构树Processor元素节点,系统弹出“模型编辑”菜单,然后鼠标点击选择上面的“统计元素”菜单,系统在屏幕右侧的模型布局区域里,以表格的形式展示出Processor元素的运行状态统计信息。表头名称及取值含义如下:

Processor名称Volume InVolume OutVolume NowNop次数Idle时间占比Filling时间占比Empty时间占比Process时间占比Setup时间占比BreakDwn时间占比

Volume In:截止到仿真停止时刻,反应器内共计进入的流体总量。

Volume Out :截止到仿真停止时刻,反应器内共计流出的流体总量。

Volume Now :截止到仿真停止时刻,当前反应器内存有的流体总量。

Nop次数 :截止到仿真停止时刻,总计反应器完成的反应循环的次数。

Idel时间占比 :在仿真周期内,总计反应器处于空闲状态的时间占比。

Filling时间占比 :在仿真周期内,总计反应器处于流体注入的时间占比。

Empty时间占比 :在仿真周期内,总计反应器处于排空流体的时间占比。

Process时间占比 :在仿真周期内,总计反应器处于反应处理时间占比。

Setup时间占比 :在仿真周期内,总计反应器进行维护操作的时间占比。

BreakDwn时间占比 :在仿真周期内,总计反应器故障修复的时间占比。