全球FlexSim系统仿真中文论坛

标题: 在flexsim中使用bundle处理大数据 [打印本页]

作者: zorsite    时间: 2015-11-3 11:22
标题: 在flexsim中使用bundle处理大数据
本帖最后由 zorsite 于 2015-11-5 22:51 编辑
; [8 q7 K% m! [% Y  r- h. U# }5 q6 P. G' @) m
当你有大量数据的时候,你就可以考虑使用bundles(数据流,数据包)了。使用数据包的方式来处理模型数据会比使用表格速度更快,占用内存更少。数据包的工作机理和SQL表很类似。
% x9 @! W% t1 z5 G* I8 ^4 e) ~7 G4 m1 Q+ W7 R( Q
& h6 m! K: [4 h; F: `; h% @* z
flexsim7.5中,如果使用数据包来处理数据的话,你需要编写大量代码。在7.7版本中,数据包被整合到了全局表中,使用起来会更加方便一些。你可以在命令列表中搜索bundle来查找相关命令。% v; {; _4 {' A( K

! X2 w5 v7 V# B; p: f) [( D4 Y2 P& W6 b4 u( u5 O0 N
在树视图中,打开Tools中的GlobalTables文件夹,选中最后一个节点,按下空格键新增一个节点,重命名新增节点后右键点击,在弹出的快捷菜单中点击Node->AddBundle Data。你可以使用node("/Tools/GlobalTables/nodeName",model())命令链接到创建的数据包节点。
; t+ N' o+ x% F; U+ c) h9 |2 g' c* r6 o* g) b

  O" b* m* H9 M在添加数据之前,你应该使用addbundlefield命令设置字段。学过数据库的都知道,Field是字段,可以理解为每一列的列标题,entry是记录,可以理解为每一行记录。在数据库中,数据类型有严格的限制,每一列数据的类型应该是相同的,都是数值型或都是文本型。Addbundlefield命令每次只能添加一个字段名,而且你应该在输入数据之前定义好所有字段。一旦使用addbundleentry添加数据之后,就不能在增加新的字段了。当然你可以使用clearbundle命令清空所有数据之后再来添加新的字段。通常在script console窗口或者模型重置触发中编写关于bundle的代码会比较合适。
0 c) F5 a- J) y& D/ V! v6 \1 v; k9 x# [1 Z" r& ?6 k4 o
3 q- x# H# x3 G3 m' K# A
创建节点之后就可以使用setbundlevaluegetbundlevalue命令来设置和读取数据了。在flexsim7.5中不能使用Table命令来设置和读取bundle数据,但是在7.7版本中可以。
5 l' E% b$ N) I6 ?( k+ V9 ~' L: M0 }, H  G: w) |0 L. c) K: E
如果你不熟悉FlexScript,使用bundles数据包会有些困难。但是如果你的数据量非常大的话,使用bundle数据包模型速度会有显著提升。# _: O: }( Q3 a8 S2 j( j6 S* \

2 t# z6 b' Q0 s9 ^
8 w  P7 _" G& b" o' e将数据导出的最简单的办法是使用ExcelImport/Export Interface。在导出界面中将表格类型设置为other,选择bundle数据节点即可导出。如果你想把数据导出成其他格式,可以使用getbundlevalue命令将数据读出,然后按照你的需求输出。
, D( f  n- P/ \, p- V6 ~
$ \9 t9 O* W  t2 M" e# f7 m# ?0 y" j! Y  k5 k- u: D2 p
原文地址:
3 \  f" C/ F8 e1 G! m6 Rhttps://www.flexsim.com/community/forum/showpost.php?p=14383&postcount=2
- \2 S; R5 S% I! ]7 S" D$ o& z1 o2 P如有错误敬请指出。
作者: 慧娴亚伦    时间: 2015-11-3 13:30
感谢分享!
作者: 1010265352    时间: 2015-11-3 14:14
谢谢分享
作者: 657776724    时间: 2015-11-3 17:20
感谢分享
作者: domcylai    时间: 2015-11-5 17:33
很好!




欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3