设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5431|回复: 7

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

    [复制链接]
发表于 2012-8-31 17:11:17 | 显示全部楼层 |阅读模式
现在德语烂 中文也跟着烂掉了 大家就不要拘泥于我奇怪的语言组织能力了。。。
8 N* _2 [$ C0 u4 D. T* f7 s6 X& V2 M  n# v" @: a
关于对象 比如工作站 利用率是一个比较常用的统计数据 PS也自带了 类似workingtime之类的统计。。。
. S! |+ b' W; L% `8 W2 ^3 U0 t* Q* M, z, Z
不过 对于比如加工不同工件 或者进行不同操作之类的复杂统计 自带的变量就不够了。。。
: q$ ?' F$ n% U, X3 \' m- n# n
- p# |- ~% e% B+ J6 }/ n我个人一般是用一个整型变量 来对这些不同的状态进行统计 也就是说在要统计的对象的状态发生改变的时候 也对这个整型变量赋给对应这个状态的一个值 最后 就只需要读取这个整型变量的统计表 就知道 对象的各种状态分布了。。。5 b5 {) X. E8 K% l$ m

+ u1 ]  s0 c4 x2 x. i% p' ?# B3 C% P比如 给小车定义整形状态变量status # M3 W7 h8 V0 [* w/ h
那么 在小车启动的时候 一般会用到
  O+ i5 g, O7 z, Z; {( m9 P  U9 E- c@.currspeed:=xxx 或者 @.stopped:=false 之类的
; E4 x' p& U3 Y- r5 F这时候加上一句 @.status:=1
' u( _) B" c$ J2 g) L9 P: F相应的小车停止的时候加上 @.status:=0% `$ x9 J9 r! \9 |$ E
* M* p+ z* ~" j5 v6 d) A- {
那么读取status就可以得到小车运行 和 停止的时间了
7 x8 c- @5 E2 U2 X, y/ e* i( i% Z* ~
读取统计表的命令是getStatisticsTable
, Q+ H9 d6 v% _" p& R" T另外 对于无法使用initstat命令的变量 可以用统计关闭再开启的方法来强制initstat

评分

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

查看全部评分

 楼主| 发表于 2012-8-31 17:12:27 | 显示全部楼层
本帖最后由 五五 于 2012-8-31 17:13 编辑
4 V7 U+ I! t, @/ d+ k5 A$ s/ F& r  M: v9 a% _
另附相应 统计过程一份 虽然是德语大家可能看不懂 囧。。。变量名也很奇怪哟。。。9 Y' m% @8 l9 I0 d3 E

2 C) C9 s% g% V/ _  A5 T8 Zis
* F9 Y7 T+ Q9 g6 m        Xdim, i, j, k : integer;% J7 F6 r7 f5 K/ X
        tab_temp : table;
0 l: I9 }! S# K3 @0 p        PufferKanal : object;
( G2 z" q7 |0 h  rdo" y; L- L' K  z4 i' Z/ }
        tab_temp.create;
; w0 K7 m8 I9 O6 |& S" e# J$ L" R% m        Xdim := self.~.Tab_Stat.Xdim + 1;" y$ ]( B/ Z" C
        # W' n1 v: B. `7 `* X  I
        for i:=1 to current.Tab_Verdichtungsplätze.Ydim loop
* L% M# j2 d+ T& p" \9 x                tab_temp.delete;
5 W* Q" |7 {1 w                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).getStatisticsTable(tab_temp);4 N% V' a7 k8 [- c7 ?6 }; M
               
1 e4 H) E  r0 K$ S% B; v                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=false;3 z- I. H5 K' b
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=true;( {1 m8 F0 P6 u8 O% T
' |7 T" M% u0 g7 c0 a# _  [" k
                for k:=1 to tab_temp.Ydim loop1 @5 }+ ?$ L" j* U
                        self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]:=self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]+tab_temp[5,k];
' J' N) ]1 b6 D4 z* }$ G3 S                next;
! U7 w( f8 G2 L; @                " a0 I& Z# h1 V6 e5 _( n4 M
        next;& V6 |7 g3 J" A
        9 t0 M+ a$ }0 y" T4 g9 E: q
        self.methcall(3600);' }3 M6 I9 I! e0 s' i
end;
3 e4 S" W  v" k7 M5 i7 i6 X+ i
 楼主| 发表于 2012-8-31 17:20:09 | 显示全部楼层
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间

本帖子中包含更多资源

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

x
发表于 2012-8-31 21:10:12 | 显示全部楼层
五五 发表于 2012-8-31 17:20
! L! q- H% n% B  y# W9 s介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间 ...

) Y& @! a- l6 [: A- ^- {) G看来有空得跟你学几个德语词汇了,不然都看不懂了 !当物件本身统计功能不能满足要求时,只能自定义收集数据,这个方法很好,这个帖子应该是技术帖了,呵呵!) v/ U6 ~' v6 s) Y  K& {
ProcVerdichtung这个是个什么东西啊,怎么在Table里面?
1 K% h( ]# C( \! A% H) W+ L6 ]+ w

$ j1 J/ @9 W; u" m. [6 F
 楼主| 发表于 2012-8-31 21:17:52 | 显示全部楼层
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object ) }- m( b4 T0 i" I2 F" i
而procVerdichtung就是这个object的状态统计变量。。。是一个简单的整型变量。。。
发表于 2012-8-31 22:44:18 | 显示全部楼层
五五 发表于 2012-8-31 21:17
, Q+ l3 E0 h( o; D; v囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object
4 a4 U5 x$ H+ |) d- ~( a而procVerdicht ...
1 k" s4 B1 B0 U+ i* E3 t
明白你方法了,很巧妙,一般人想不到的,赞!
 楼主| 发表于 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-9-9 14:56 , Processed in 0.019667 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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