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

- 属性参数
如图,Active类型Part元素的属性参数有:到达时间间隔、最大可用数、初始到达时刻、到达批量(一次来几个)。这些参数描述了在仿真运行时,用户所定义的这个Part元素,是以怎样的规律到达系统的。在属性文本框中,输入不同的数值,代表不同的到达规律。进一步,“到达时间间隔”、“到达批量”属性文本框中还可输入函数、表达式,在仿真运行时,系统会实时调用这些函数,通过函数的返回值和计算表达式的值,来确定Part元素的到达规律。
1.3 流程逻辑
Part元素属性对话框,只有一个“Push_to”流程逻辑代码定义按钮,其下附着的流程逻辑代码,描述了Part元素实例前往下一个要到达的目的地的逻辑定义。如前所述,“流程逻辑”定义的具体内容,就是由用户使用计算机程序代码(VBS语言)调用系统的“流程规则语句”代码构成。Part元素可使用的“流程规则语句”语法如下:
push_to = array(location1, location2, location3…)
这条规则语句的涵义就是把当前的Part元素实例送往目的地locationi。这里的location就是流程模型中“Machine元素”、“Buffer元素”、“ship”元素、“Track元素”、“Conveyor元素”节点的名称。如果该模型节点是一个成组设备节点,可用设备节点名加上设备序号即location(ii)的形式,来标记要前往的目的地,是成组设备中的哪一台。
当去往下一个目的地的条件满足后,系统在往下一个目的地输送Part元素的实例时,是逐个Part实例、逐个目的地依次进行处理的。
系统在执行上述语句往下一个目的地输送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元素有关的内部函数定义如下:
- 函数名称: TYPE()
函数功能: 函数返回取得当前Part元素的名称。
输入参数 1: 无
函数返回值:当前Part元素的名称。
- 函数名称: set_Attr(attName, Value)
函数功能: 给当前Part元素实例属性名为attName的属性赋值
输入参数 1: attName: (必需),一个字符串表达式,属性名。
输入参数 2: Value: (必需),一个数值表达式。
函数返回值: 1 函数正常执行;-1 函数未执行
- 函数名称: get_attr(attName)
函数功能: 返回当前Part元素实例的属性名为attName的属性值。
输入参数 1: attName: (必需),一个字符串表达式,属性名。函数返回值: 1 函数正常执行;-1 函数未执行。
- 函数名称: NSHIP(prtName)
函数功能: 返回当前设备在仿真周期内的完成流程任务的数量
函数输入参数 1: MacName含义:设备名称
函数返回值:
>= 0 : 完成流程任务的数量
< 0 : 函数调用失败
1.6 元素报表
当模型仿真运行完成后,鼠标右键单击在模型结构树Part元素节点,系统弹出“模型编辑”菜单,然后鼠标点击选择上面的“统计元素”菜单,系统在屏幕右侧的模型布局区域里,以表格的形式展示出Part元素的运行状态统计信息。表头名称及取值含义如下:
| 零件名称 | Part Entered | Part Rejected | Part in Process | Part shipped |
✤ 零件名称:统计的Part元素全称。
✤ Part Entered:到仿真终止时刻,共计进入模型系统的该Part元素实例个数。
✤ Part Rejected:到仿真终止时刻,共计被模型系统拒绝掉的该Part元素实例个数。
✤ Part in Process:到仿真终止时刻,仍驻留在模型系统中的该Part元素实例个数。
✤ Part shipped:到仿真终止时刻,共计处理完成并离开模型系统的该Part元素实例个数。
到仿真终止时刻,按照建模过程所定义的Part元素到达规律,该Part元素总计产生Part实例的数量为Part统计数据表中第一项(Part Entered)和第二项(Part Rejected)数据之和。
