设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4596|回复: 7

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

    [复制链接]
发表于 2012-8-31 17:11:17 | 显示全部楼层 |阅读模式
现在德语烂 中文也跟着烂掉了 大家就不要拘泥于我奇怪的语言组织能力了。。。
( ~4 B9 `  f7 B& I; m! {3 ]! p
7 q6 }# ~+ |3 G6 S1 l关于对象 比如工作站 利用率是一个比较常用的统计数据 PS也自带了 类似workingtime之类的统计。。。
6 @- x3 v+ f6 f! Q! S( p3 ?7 ^0 c: l( |: o6 C& ?9 X
不过 对于比如加工不同工件 或者进行不同操作之类的复杂统计 自带的变量就不够了。。。9 F  C& h; }3 J: ^# r. x4 `

! u. J$ F% [4 j- R* }" v我个人一般是用一个整型变量 来对这些不同的状态进行统计 也就是说在要统计的对象的状态发生改变的时候 也对这个整型变量赋给对应这个状态的一个值 最后 就只需要读取这个整型变量的统计表 就知道 对象的各种状态分布了。。。
! D3 W6 i! o' S; |; e9 O  H6 z
比如 给小车定义整形状态变量status , w5 p7 |$ k( Z! p; W$ Z
那么 在小车启动的时候 一般会用到2 _1 S6 d5 x$ V6 D0 g* U
@.currspeed:=xxx 或者 @.stopped:=false 之类的 " r3 W* p/ h  q
这时候加上一句 @.status:=1
- B& P% G  G4 }( p8 [/ {4 F8 v: L相应的小车停止的时候加上 @.status:=0  B* F, G. Y' S/ ?: p( z0 C
5 m7 c7 f: z2 _( h9 x2 m
那么读取status就可以得到小车运行 和 停止的时间了) q- g$ {6 B  M
. {+ ?1 r& }5 ^
读取统计表的命令是getStatisticsTable
+ S9 V4 Z# }. z另外 对于无法使用initstat命令的变量 可以用统计关闭再开启的方法来强制initstat

评分

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

查看全部评分

 楼主| 发表于 2012-8-31 17:12:27 | 显示全部楼层
本帖最后由 五五 于 2012-8-31 17:13 编辑 7 r/ \4 d' M# e/ p

' }( Q# [$ Y% O4 K1 N+ |5 }6 \另附相应 统计过程一份 虽然是德语大家可能看不懂 囧。。。变量名也很奇怪哟。。。5 e2 h8 G5 Y- d9 P8 f0 H9 J

8 l" R. x: l( t8 }1 sis
* |0 W9 C' q8 X2 S) z0 A        Xdim, i, j, k : integer;
; D+ ?# u1 M) N. I& V# O        tab_temp : table;
( x5 H) p: @5 ^& L        PufferKanal : object;
- c: K: m6 m- O# f  hdo
" w0 O! Y, a/ y: D, r* \        tab_temp.create; 5 J- r  h% A# Q8 A1 K
        Xdim := self.~.Tab_Stat.Xdim + 1;
' w- ]9 C; P: G7 b       
# G  ?6 }8 @; P  d! r        for i:=1 to current.Tab_Verdichtungsplätze.Ydim loop
- M( {0 M4 b1 b& r                tab_temp.delete;5 B" O, D1 p9 Z. b$ d8 m: H( ]7 s
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).getStatisticsTable(tab_temp);
2 j$ @6 l8 P9 l4 b* w9 i5 s6 O# ^               
% r0 _6 C4 o" \4 P5 v# f$ J: N                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=false;
+ f- V" Y( n8 L% [  W& i                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=true;
; r8 u% r+ f; ^8 N8 q # P2 \1 T* p+ p  l3 _; C5 d2 Q& b
                for k:=1 to tab_temp.Ydim loop
" f5 ?: Y0 u9 [( m& X                        self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]:=self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]+tab_temp[5,k];) H/ g8 k, W& g7 I& w
                next;0 m5 S5 _: z; v2 G
               
* m8 C' t/ r7 l# e. B1 [2 W# k        next;8 {& z3 c  \. K! A
       
: ?: h) _5 [( ^% q8 V6 j. w4 V7 ?        self.methcall(3600);6 p: p; g* r9 \5 H
end;
  z1 g* M+ X" F; I: e1 J
 楼主| 发表于 2012-8-31 17:20:09 | 显示全部楼层
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间

本帖子中包含更多资源

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

x
发表于 2012-8-31 21:10:12 | 显示全部楼层
五五 发表于 2012-8-31 17:20 ! e0 n! i8 _9 G, n# V. c" y; w
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间 ...

1 g+ t! \$ }3 B! o看来有空得跟你学几个德语词汇了,不然都看不懂了 !当物件本身统计功能不能满足要求时,只能自定义收集数据,这个方法很好,这个帖子应该是技术帖了,呵呵!$ i% i2 V4 \+ g5 v+ X8 r) D
ProcVerdichtung这个是个什么东西啊,怎么在Table里面?
  D8 c$ P" E) R: x1 B% u- n/ }3 Z7 _) h
, l6 y8 ?# b9 e8 `; j- P* O
 楼主| 发表于 2012-8-31 21:17:52 | 显示全部楼层
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object
% v" x+ t, b! q8 I  m7 P而procVerdichtung就是这个object的状态统计变量。。。是一个简单的整型变量。。。
发表于 2012-8-31 22:44:18 | 显示全部楼层
五五 发表于 2012-8-31 21:17 3 e; b0 f: a5 W- p+ w( `
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object ; \) }& B: j: F! {9 |
而procVerdicht ...

4 c7 ^4 ?( W1 Q" |明白你方法了,很巧妙,一般人想不到的,赞!
 楼主| 发表于 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-2-4 18:08 , Processed in 0.019050 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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