1. part 实体元素

1.1 元素定义

Part元素是用来描述现实生产运作系统中,任何活动的“离散实体”对象。比如在车间里进行加工的零件、进入机场候机大厅或其他任何服务行业营业场所的人员、社会交通物流系统中运转的车辆、船舶等;甚至是电子系统或其他虚拟系统中的信息流。比如呼叫中心接到的一个呼叫电话、供应链系统中的一个订单等等。这些实体对象的共同特征是它们在现实系统中的都是“自主”地到达或者出现,即它们的出现有自己的机制:可以一个一个的到达,也可以一批一批的到达,更多的情况是它们的到达或者出现是随机的;还有一类活动的实体对象,它们只有在其他对象使用它时,它才会出现在系统中,换言之,它们自己不会“自主”地到达。比如库存里的毛坯零件、原材料等。当要仿真建模的工业流程系统,有符合这样特征的对象时就可以用Part元素来描述它们。进一步把前一种,它的出现有自己规律的对象定义为“Active”类型的Part元素,后一种则定义为“Passive”类型的Part元素。

1.2 元素属性

在模型结构树上,鼠标双击Part元素节点,系统弹出Part元素属性对话框如下,缺省的状态下,系统展示出的是“Active”类型Part元素属性页面,通过这些属性参数,来定义Part元素的到达规律。对“Passive”类型的零件,则没有属性参数输入文本框,只有逻辑定义按钮。

  • 属性参数

如图,Active类型Part元素的属性参数有:到达时间间隔、最大可用数、初始到达时刻、到达批量(一次来几个)。这些参数描述了在仿真运行时,用户所定义的这个Part元素,是以怎样的规律到达系统的。在属性文本框中,输入不同的数值,代表不同的到达规律。进一步,“到达时间间隔”、“到达批量”属性文本框中还可输入函数、表达式,在仿真运行时,系统会实时调用这些函数,通过函数的返回值和计算表达式的值,来确定Part元素的到达规律。

【提示1】

如果要在属性值文本框内输入之前定义好的函数,首先将鼠标移至属性文本框内单击,使得当前文本框获得输入光标的焦点,并将文本框内光标移至输入开始的位置,然后找模型结构树上找到之前定义的函数节点,鼠标双击该节点,则函数名自动录入到属性文本框输入光标所在的位置,然后再输入函数的参数即可。另外可使用这种方法,引用模型结构树上的全局变量、函数,在属性文本框中录入表达式。

1.3 流程逻辑

Part元素属性对话框,只有一个“Push_to”流程逻辑代码定义按钮,其下附着的流程逻辑代码,描述了Part元素实例前往下一个要到达的目的地的逻辑定义。如前所述,“流程逻辑”定义的具体内容,就是由用户使用计算机程序代码(VBS语言)调用系统的“流程规则语句”代码构成。Part元素可使用的“流程规则语句”语法如下:

push_to = array(location1, location2, location3…)

这条规则语句的涵义就是把当前的Part元素实例送往目的地locationi。这里的location就是流程模型中“Machine元素”、“Buffer元素”、“ship”元素、“Track元素”、“Conveyor元素”节点的名称。如果该模型节点是一个成组设备节点,可用设备节点名加上设备序号即location(ii)的形式,来标记要前往的目的地,是成组设备中的哪一台。

【提示1】

当去往下一个目的地的条件满足后,系统在往下一个目的地输送Part元素的实例时,是逐个Part实例、逐个目的地依次进行处理的。

【提示2】

系统在执行上述语句往下一个目的地输送Part元素的实例时,如果所有的目的地已满不能接受该Part元素实例,则这个实例离开模型系统,被“Reject”掉。

1.4 行为逻辑

Part元素属性对话框,有两个“行为逻辑”定义按钮:“Action On Create”、“Action On Exit”。“行为逻辑”代码定义了Part元素实例,在仿真进行时的动作行为。“行为逻辑”代码的编写,是由用户使用VBS语言调用系统的内部函数、自定义函数、模型变量等代码等构成。 这两个按钮下的“行为逻辑”代码的执行条件与含义如下:

“Action On Create”:该按钮下的程序代码段,在该Part元素实例一旦被产生出来时激活执行;

“Action On Exit”:该按钮下的程序代码段,在该Part元素实例,在仿真运行阶段,一旦完成其生命周期的各项任务,而离开模型系统的时刻,被激活执行。

1.5 内部函数

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

  1. 函数名称:  TYPE()
    函数功能:  函数返回取得当前Part元素的名称。
    输入参数 1:  无
    函数返回值:当前Part元素的名称。
  1. 函数名称:  set_Attr(attName, Value)
    函数功能:  给当前Part元素实例属性名为attName的属性赋值
    输入参数 1:  attName: (必需),一个字符串表达式,属性名。
    输入参数 2:  Value: (必需),一个数值表达式。
    函数返回值: 1 函数正常执行;-1 函数未执行
  1. 函数名称:  get_attr(attName)
    函数功能:  返回当前Part元素实例的属性名为attName的属性值。
    输入参数 1:  attName: (必需),一个字符串表达式,属性名。函数返回值: 1 函数正常执行;-1 函数未执行。
  1. 函数名称: NSHIP(prtName)
    函数功能: 返回当前设备在仿真周期内的完成流程任务的数量
    函数输入参数 1: MacName含义:设备名称 
    函数返回值:
              >= 0  :  完成流程任务的数量
                < 0 : 函数调用失败 
1.6 元素报表

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

零件名称Part EnteredPart RejectedPart in ProcessPart shipped

零件名称:统计的Part元素全称。

Part Entered:到仿真终止时刻,共计进入模型系统的该Part元素实例个数。

Part Rejected:到仿真终止时刻,共计被模型系统拒绝掉的该Part元素实例个数。

Part in Process:到仿真终止时刻,仍驻留在模型系统中的该Part元素实例个数。

Part shipped:到仿真终止时刻,共计处理完成并离开模型系统的该Part元素实例个数。

【提示1】

到仿真终止时刻,按照建模过程所定义的Part元素到达规律,该Part元素总计产生Part实例的数量为Part统计数据表中第一项(Part Entered)和第二项(Part Rejected)数据之和。