设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5273|回复: 7

[原创] 关于对象利率用及其他状态的统计

    [复制链接]
发表于 2012-8-31 17:11:17 | 显示全部楼层 |阅读模式
现在德语烂 中文也跟着烂掉了 大家就不要拘泥于我奇怪的语言组织能力了。。。- F% p3 |- `# t$ J" s' G/ X

# M5 I& Q5 }- y* Y: n关于对象 比如工作站 利用率是一个比较常用的统计数据 PS也自带了 类似workingtime之类的统计。。。7 X7 M+ N; P/ B0 o7 X
$ c0 r/ m) u( q- n# T$ }* ^' g  a
不过 对于比如加工不同工件 或者进行不同操作之类的复杂统计 自带的变量就不够了。。。
2 y- h( `, p& A- |( u' W( k$ h) @7 r9 K
我个人一般是用一个整型变量 来对这些不同的状态进行统计 也就是说在要统计的对象的状态发生改变的时候 也对这个整型变量赋给对应这个状态的一个值 最后 就只需要读取这个整型变量的统计表 就知道 对象的各种状态分布了。。。
# t( s* }) e* Q8 V  s0 ~; b1 Y7 j! |. |# \9 A1 c8 `) S& k+ E
比如 给小车定义整形状态变量status
' K+ L- z: M* o! z% E0 Z那么 在小车启动的时候 一般会用到
6 b: K5 e9 W1 r) W@.currspeed:=xxx 或者 @.stopped:=false 之类的
. P+ s" D: d( u! q/ p" N; k4 P. Y这时候加上一句 @.status:=1 5 R9 o( [5 R  u& q7 c
相应的小车停止的时候加上 @.status:=0
3 U2 e# r# B8 z6 }6 \2 R2 t; E% j6 i3 T' i) b
那么读取status就可以得到小车运行 和 停止的时间了1 w$ W7 a! g0 X6 D2 K

; k, [  a2 P+ {读取统计表的命令是getStatisticsTable 1 u1 a+ a( A' \: C$ R4 f1 I/ H
另外 对于无法使用initstat命令的变量 可以用统计关闭再开启的方法来强制initstat

评分

参与人数 1仿真币 +23 收起 理由
linweixu168 + 23 赞一个!

查看全部评分

 楼主| 发表于 2012-8-31 17:12:27 | 显示全部楼层
本帖最后由 五五 于 2012-8-31 17:13 编辑
/ O# j. U# `6 S. Y) i2 ]4 g" @) y5 {3 r- U+ K. s1 k
另附相应 统计过程一份 虽然是德语大家可能看不懂 囧。。。变量名也很奇怪哟。。。: D* |  f3 t4 B3 {* l" `- P; l% a2 O

4 k5 G0 N8 }, M  `is$ k- S" u  B  [* x1 D) X
        Xdim, i, j, k : integer;
6 {" j$ E3 o! Y0 O% k6 e4 Q9 X        tab_temp : table; : l: C) e2 g5 X2 S
        PufferKanal : object;: R3 z+ r0 t, X
do3 `" w7 k$ `; ^
        tab_temp.create;
7 N5 g  i. E+ Z4 J        Xdim := self.~.Tab_Stat.Xdim + 1;$ s. g' V- Q+ |0 r" `7 W( Y
        9 k6 a; S, y9 `" S$ ]1 [) p
        for i:=1 to current.Tab_Verdichtungsplätze.Ydim loop
. y3 X7 W, m) b( u0 A                tab_temp.delete;
$ _6 M' ~# i( ~; y9 X* Z' R2 K                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).getStatisticsTable(tab_temp);
& ^' |/ V0 P3 W0 d, D3 u7 @                : H+ F5 l/ U) T4 x: k, @1 q( l+ n
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=false;/ G! h3 B9 @: \2 a
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=true;) R) i4 l; o, r' h  f4 X1 {

9 H: R' f8 u+ \) y1 j# H6 u                for k:=1 to tab_temp.Ydim loop# v( D/ x8 k  I4 c
                        self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]:=self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]+tab_temp[5,k];% _. G) T' h$ o" T
                next;4 m( `+ R0 h1 I1 x7 t% c
                1 x- ]' m: M, |9 h, u, h1 v
        next;1 u  `. y+ p- ^# O2 `6 Y" |
        & _2 N( y2 ^; O0 W
        self.methcall(3600);4 b! \) J: f4 W# D! g% r; w5 f
end;
* l5 T# l; C. |0 O
 楼主| 发表于 2012-8-31 17:20:09 | 显示全部楼层
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2012-8-31 21:10:12 | 显示全部楼层
五五 发表于 2012-8-31 17:20 6 S5 R+ a* P8 L
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间 ...

; x' e4 s$ A! v" T2 i$ I& N看来有空得跟你学几个德语词汇了,不然都看不懂了 !当物件本身统计功能不能满足要求时,只能自定义收集数据,这个方法很好,这个帖子应该是技术帖了,呵呵!
5 U3 V0 L& r* Y8 T0 h6 X3 bProcVerdichtung这个是个什么东西啊,怎么在Table里面?1 h* k) N# Q. j# r% c
. v5 e' g5 J- }1 U2 p

/ D* ~! Y( g- W
 楼主| 发表于 2012-8-31 21:17:52 | 显示全部楼层
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object ( f4 R* K" s3 c& W4 ]( b& z5 L# K0 Z
而procVerdichtung就是这个object的状态统计变量。。。是一个简单的整型变量。。。
发表于 2012-8-31 22:44:18 | 显示全部楼层
五五 发表于 2012-8-31 21:17 4 b' L- d: i4 w) s5 C
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object
9 u) V$ K/ I# w; `; s而procVerdicht ...

' I$ f* h4 ^% G: g明白你方法了,很巧妙,一般人想不到的,赞!
 楼主| 发表于 2012-10-21 21:05:11 | 显示全部楼层
有人要 找不着 人工置顶哈~
发表于 2015-7-2 10:08:01 | 显示全部楼层
学习了!楼主是在德国学Maschinenbau-Infomatik方向的吗,还是Logistik?

点评

经济工程  发表于 2015-7-3 16:45
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-7-30 23:26 , Processed in 0.019786 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表