如何使用Arena软件ReadWrite模块

此经验有更新,新版请戳:https://jingyan.baidu.com/article/6c67b1d69885a22786bb1e54.html

在Arena软件中,ReadWrite模块用于和外部数据库沟通,读取模型中需要的参数或者输出实验产生的数据。一般与File模块搭配使用。

ReadWrite模块的读取功能(Read from File),能够让Arena模型摆脱一般参数设定带来的随机性,而利用真实的系统数据进行模拟。

ReadWrite模块的写入功能(Write to File),可以更详细地展示模拟实验中的每一处细节,提供更丰富的数据分析可能性。

本篇经验由Justin Zhou原创,由Arena小站整理。在此对Justin的支持深表感谢!

工具/原料

Arena软件
Project Bar>Advanced Process>ReadWrite

方法/步骤

我们在这里展示使用ReadWrite写入数据的功能。

主要步骤就是:

(1)File Module 的设置, 及(2)建立 ReadWrite Module。

假设如图中的一个场景,数码产品修理站需要修理两种类型的产品:Phone和Computer。修理站的工作人员希望记录修理每一个产品的开始时间、结束时间、修理时长,以便安排进一步工作。

想要记录每一次修理所花费的时间,首先要设置File模块。如上图。

假如我们想要将数据写入到txt文本文件里,Access Type就选择Sequential File。

Operating System File Name是这个txt文件在操作系统里的位置。这里要注意,Operating System File Name我们可以填写txt文件的完整路径,但是这个路径不能含有中文字符,否则系统无法读取;另一种方法,我们也可以直接写这个txt文件的名称,如:ReadWrite.txt,则系统会默认在模型文件所在的文件夹中查找这个文件。这里建议采取后一种方法,这样当我们把模型和txt文件拷贝给别人时,文件路径的改变不会影响数据的写入。

设置File文件也可以双击文件所在的栏位,打开对话框编辑,如下图。

之后是ReadWrite Module的填写。

用Arena File Name指向我们刚才所设置的File 1文件。Type选Write to File。

Assignment是我们需要写入的内容,每一个进入ReadWrite模块的实体所带有的相应数据都会被记录下来。

如图:

第一行记录实体进入系统的时间,这是Assign模块之前替我们采集到的。

第二行是完成Fix Process后的“当前时刻”TNOW。

第三行用公式计算了加工时间。

第四行记录的是实体的类型Entity Type,此处的语法Str(ENTITIES, Entity.Type)返回的是字符串,即我们在Creat模块中Entity Type一栏所设定的文字内容。

语法Str(ENTITIES, Entity.Type)中,ENTITIES指向了Basic Process>Entity这个图表模块。Entity.Type是根据实体所携带的信息指向相应的栏位。

如图:如果实体所携带的Entity Type信息是Phone,则在Entity图表模块中对应的是第一个栏位,Entity.Type所返回的数值就是1。而Str(ENTITIES, Entity.Type)返回的是字符串:Phone。

下图是txt最终的输出效果。到此我们已经知道如何写入txt文件了。

那么如何写入Excel文件呢?下面再举个例子示范。

首先设置Excel中的名称管理器。

例如: 我在指定输出的excel 文件中,在Sheet1这张表中,定义了A1:C71这个range,它的名字是TestRange。注意:

1)将 Sheet1 和 TestRange 这两个参数值记录,稍后需要输入到Arena File Module里面。

2)如果输出四组数值,Excel里面就必须定义四列,例如A列到D列。

回到Arena中设定File模块,Access Type选好相应的格式,这里我们选择Excel 2007 (*.xlsx)。写好路径。

1)点击Recordsets,Arena会将Excel中的Recordsets都导入进来。

2)在Recordsets in file中选择我们在Excel中需要写入数据的位置。

Recordset Name就是 Excel 文件中你要输出的那个表(sheet) 的名称,例如 Sheet1。Named Range是Excel名称管理器所对应的位置。

然后是ReadWrite模块中的对应。Record ID对应的就是Recordset Name。

下图是Excel 2007 (*.xlsx)最终的输出效果。

相信大家可以融会贯通读写其他数据库的方法,各位Get到了吗?

最后补充一点,关于Arena14.70.00 版本,存在一个读写64位Office文件的Bug,会有图中的报错。

这时我们需要在Office官网上打一个补丁 。

请在  http://www.microsoft.com/download/en/confirmation.aspx?id=23734 下载:AccessDatabaseEngine.exe

问题就可以解决了。

本文内容整理自网络, 文中所有观点看法不代表淘大白的立场