全球FlexSim系统仿真中文论坛

标题: 固定实体与临时实体统计信息的差别 [打印本页]

作者: zorsite    时间: 2018-7-5 11:40
标题: 固定实体与临时实体统计信息的差别
在代码编辑器的头部代码中,通常都有对current和item的声明。
+ @6 K( g& ~$ I) U7 C# x
  1. Object current = ownerobject(c);
    , r( ~. e  l7 X
  2. Object item = param(1);
复制代码
从字面上看,两者都是Object类型的变量,也都可以调用Object类的属性和方法。比如,调用stats属性:
( j! _9 ]4 Y9 L5 j, }% ]
  1. int x=current.stats.content.value;2 q: j8 n; m9 {) m
  2. int y=item.stats.content.value;
复制代码
但运行时却报错:
9 |4 d9 I: T7 T3 }& U; m[attach]4451[/attach]
0 S7 ?9 b2 B- ^% N' e在获取Pallet Object 的Content时出现异常。
; b% m; e8 e8 w( V7 {: \0 X4 q! d2 y9 p9 W+ o
观察两者的树节点,发现固定实体和临时实体在统计属性上有很大差别:
$ `/ }6 t4 |- @# A! p9 n[attach]4452[/attach]
4 e' M* q. ^8 ?虽然都是Object类型,但是Flexsim并未在临时实体上设置更多的统计信息节点。
0 D- {; X  N- Y0 E# m在编写代码时一切顺利,只要是Object类型的变量,都可以使用Object的属性和方法。% y1 |3 a3 M& k4 d% }+ E! M
但是能不能获取到值,就只有运行的时候才知道。
: I. S8 i! ~$ Z显然,临时实体并未有content统计属性,所以运行时报错。2 y, f$ S2 ~0 ]
' U  ^: U( R# y' {

- _! C; k; r7 ]4 o6 A' I* J6 Q! Y. {) u6 }
作者: zorsite    时间: 2018-7-5 11:47
另外需要注意的是,Object.stats Allows you to access the statistics of an object as TrackedVariable objects.
: H* v6 T! f& r$ n& P
& w5 t$ d2 S4 v+ f$ q0 d( E) oObject.stats 返回的是 tracked variable,如果想要得到统计结果,必须再使用value属性。) L% d: d2 {6 W0 y: c$ _+ m
诸如:4 s- j. }8 r. p" m  f& R+ k! U4 g
  1. int x=current.stats.content;
    , P, |4 {, _9 w; j" o6 u
复制代码
) d5 z* P* X6 X( X; e( a. n
将会报错。: g+ t1 h% `- ~" P* @" ?6 X
正确的写法是:
4 \, t" P8 w+ _+ e8 F* G
  1. int x=current.stats.content.value;
复制代码

  R7 `2 X. Y& F" X  T# _1 @




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