设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3979|回复: 7

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

    [复制链接]
发表于 2012-8-31 17:11:17 | 显示全部楼层 |阅读模式
现在德语烂 中文也跟着烂掉了 大家就不要拘泥于我奇怪的语言组织能力了。。。; R5 t( o. ^, J. S3 j, D6 J/ E
) U% o! c0 v& B9 Z$ U. _5 D
关于对象 比如工作站 利用率是一个比较常用的统计数据 PS也自带了 类似workingtime之类的统计。。。
& X" b# i3 m2 l: r7 x* A* \$ i
( n3 ^2 z6 k9 F3 H( H' r不过 对于比如加工不同工件 或者进行不同操作之类的复杂统计 自带的变量就不够了。。。
1 x  i+ p/ s7 ~0 p: p; X$ g+ g$ Z* A% N# P' n1 J
我个人一般是用一个整型变量 来对这些不同的状态进行统计 也就是说在要统计的对象的状态发生改变的时候 也对这个整型变量赋给对应这个状态的一个值 最后 就只需要读取这个整型变量的统计表 就知道 对象的各种状态分布了。。。
2 R# ]9 c% |" O+ w: O! P, [+ s* |3 ~0 j$ H# h, d
比如 给小车定义整形状态变量status , w' J' m9 S' u2 X
那么 在小车启动的时候 一般会用到: i* u$ M2 F% v% U9 y+ l
@.currspeed:=xxx 或者 @.stopped:=false 之类的
! f) w& k5 |) H5 C& b& U9 h  s这时候加上一句 @.status:=1
: T1 G2 I; z- j5 o5 c8 ]相应的小车停止的时候加上 @.status:=0
6 Z; r+ i. G+ x6 e6 D0 A+ \6 n
  A& M. c/ P; C9 v+ m  B2 P: y# y那么读取status就可以得到小车运行 和 停止的时间了
$ Z: m1 F  K  k0 V) G% K2 N2 r' A8 H  H6 H
读取统计表的命令是getStatisticsTable 5 d: \# v' c. E/ W- L5 ^
另外 对于无法使用initstat命令的变量 可以用统计关闭再开启的方法来强制initstat

评分

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

查看全部评分

 楼主| 发表于 2012-8-31 17:12:27 | 显示全部楼层
本帖最后由 五五 于 2012-8-31 17:13 编辑
# z6 f. }% A3 R$ i6 a% m+ O! {+ F, M. b
另附相应 统计过程一份 虽然是德语大家可能看不懂 囧。。。变量名也很奇怪哟。。。1 `6 ?& @* f/ G5 B( O, y
  w  Q4 s8 \5 }* _1 b3 ^0 z, F
is  x( q' m; c; h$ [; M) D
        Xdim, i, j, k : integer;6 l$ ?/ U- y: i; l1 c
        tab_temp : table; / D0 ]! D  r1 A, Q- z3 P
        PufferKanal : object;9 w* f4 c1 c: i5 w4 v
do, H4 H  x: {* [+ d
        tab_temp.create;
/ l+ r% K- t" K3 l; t        Xdim := self.~.Tab_Stat.Xdim + 1;3 W8 h4 @+ ^7 P* ^: L
        * s' Y6 P! q, h4 R! @
        for i:=1 to current.Tab_Verdichtungsplätze.Ydim loop
5 r+ Y, z$ D% w7 w+ y" ^' I+ y                tab_temp.delete;
( ?, _. H- g' x3 O2 j- a3 D; c. l) q4 m                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).getStatisticsTable(tab_temp);  n% h7 |+ b  e
                3 z$ N. B1 X) j* O! Q
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=false;2 r* A) Z( }& I! W) [8 A/ F
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=true;0 Y  `: Z3 a: c8 w1 P# K; g
7 K! f: U, G' C* l
                for k:=1 to tab_temp.Ydim loop6 z& ~. ?; F; X, j
                        self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]:=self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]+tab_temp[5,k];
& [- W* U+ j9 R) g* C" z$ u                next;, w! U4 w- P2 N/ ?( S
               
5 c- C# r8 R& Z# Z        next;
, X8 {- A' ]! z" E4 A        6 [# F- ^( I. `# j3 o
        self.methcall(3600);4 C# v2 u* K8 i- L1 ~7 O
end;" k* v' y8 ?  y6 U
 楼主| 发表于 2012-8-31 17:20:09 | 显示全部楼层
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间

本帖子中包含更多资源

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

x
发表于 2012-8-31 21:10:12 | 显示全部楼层
五五 发表于 2012-8-31 17:20
' L! d* b& W6 g, V介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间 ...
+ t) G$ z( J5 I9 A( X3 G$ m
看来有空得跟你学几个德语词汇了,不然都看不懂了 !当物件本身统计功能不能满足要求时,只能自定义收集数据,这个方法很好,这个帖子应该是技术帖了,呵呵!( P" g$ {' k" x* \3 c
ProcVerdichtung这个是个什么东西啊,怎么在Table里面?4 ~$ k' Y6 h. W* N5 [# ~6 y

. \* m1 q# V; x% H
! @' K% f3 s" n0 d6 c
 楼主| 发表于 2012-8-31 21:17:52 | 显示全部楼层
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object & e9 `, H* \: y* t
而procVerdichtung就是这个object的状态统计变量。。。是一个简单的整型变量。。。
发表于 2012-8-31 22:44:18 | 显示全部楼层
五五 发表于 2012-8-31 21:17
. J5 F" H" }) y囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object ; w/ Z3 `' r0 J( B- V# ?" S
而procVerdicht ...
) N# B/ T$ a' e4 R: P, C/ R  [
明白你方法了,很巧妙,一般人想不到的,赞!
 楼主| 发表于 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, 2025-9-8 11:02 , Processed in 0.016218 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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