设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5018|回复: 7

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

    [复制链接]
发表于 2012-8-31 17:11:17 | 显示全部楼层 |阅读模式
现在德语烂 中文也跟着烂掉了 大家就不要拘泥于我奇怪的语言组织能力了。。。
- H# S: n# x7 T3 }# z" a& Z
& L& l! z' G0 O1 _关于对象 比如工作站 利用率是一个比较常用的统计数据 PS也自带了 类似workingtime之类的统计。。。
" ?& x6 z' s- _. v' d8 O
0 j: t+ C" X/ Q; F- z) Y不过 对于比如加工不同工件 或者进行不同操作之类的复杂统计 自带的变量就不够了。。。# w' Q% a( K) T% A# S# s# S8 v
" k# F5 t' D9 k' U
我个人一般是用一个整型变量 来对这些不同的状态进行统计 也就是说在要统计的对象的状态发生改变的时候 也对这个整型变量赋给对应这个状态的一个值 最后 就只需要读取这个整型变量的统计表 就知道 对象的各种状态分布了。。。
& }1 {; E. y; i* ?# e- [0 [4 Q* ~
比如 给小车定义整形状态变量status 2 O( u* E% N8 e: F$ X2 v
那么 在小车启动的时候 一般会用到+ Y) A' \5 B, W5 ?
@.currspeed:=xxx 或者 @.stopped:=false 之类的
& e/ l3 R5 A* D* E这时候加上一句 @.status:=1
4 H7 C* b0 ~. n+ }& \, H+ j相应的小车停止的时候加上 @.status:=02 d" d/ u$ j4 c% b, Z- U) R. d+ c
, }, ]; v/ ^- w7 V" ~0 I" `
那么读取status就可以得到小车运行 和 停止的时间了; l' w5 R- S6 p* s
) p, T* o+ q  }0 ?% Z
读取统计表的命令是getStatisticsTable ' i, K0 Z3 Q9 z" `. U! i
另外 对于无法使用initstat命令的变量 可以用统计关闭再开启的方法来强制initstat

评分

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

查看全部评分

 楼主| 发表于 2012-8-31 17:12:27 | 显示全部楼层
本帖最后由 五五 于 2012-8-31 17:13 编辑 8 \7 c' t% a7 w+ N- i8 E
6 r4 }" Q6 K0 l7 c7 L2 }0 q3 y
另附相应 统计过程一份 虽然是德语大家可能看不懂 囧。。。变量名也很奇怪哟。。。6 ~, N' J7 _" A; G2 J$ v& k4 _: e4 N

! J; P+ M3 K! I3 mis
  x! F" G  K$ C. w; g        Xdim, i, j, k : integer;( R7 E- c: u6 c+ N/ q, n
        tab_temp : table; 9 T' B6 ?+ t: z
        PufferKanal : object;; o: u6 G$ Y  V) [" b5 y
do/ _/ g# H0 E, q6 ]3 G
        tab_temp.create; ! K* \. a% o# |9 z' n5 ^, X8 j
        Xdim := self.~.Tab_Stat.Xdim + 1;
* j  g# B" m5 n8 p* D+ ~; K- D8 ?       
- W# G0 [3 w9 z        for i:=1 to current.Tab_Verdichtungsplätze.Ydim loop
  |# ]# ~' _7 e; b+ G( a, v                tab_temp.delete;& ^4 w/ M: w/ U' Z; @
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).getStatisticsTable(tab_temp);% c: t' i9 P7 V9 t
               
1 @, N2 u; d+ f3 E0 v# q2 f                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=false;# w' J8 b0 A1 s* l8 B  e
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=true;, ]  g/ e8 H( i5 F
+ \, `# l* O0 u* c  l' b$ I
                for k:=1 to tab_temp.Ydim loop9 J- c+ u) a% b
                        self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]:=self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]+tab_temp[5,k];5 p: ?& i* H! w$ v+ M' d' @1 i
                next;* b& h9 G1 R+ ~
               
7 ~* B# A# L/ k        next;/ M! X8 h, G: v9 ?& X
        " z; u0 e9 j% Z' l% S+ X. O
        self.methcall(3600);- d- A& N2 i6 {
end;
* H5 n9 t4 U+ M! p; B' B
 楼主| 发表于 2012-8-31 17:20:09 | 显示全部楼层
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间

本帖子中包含更多资源

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

x
发表于 2012-8-31 21:10:12 | 显示全部楼层
五五 发表于 2012-8-31 17:20
  d/ v( f, ]$ s1 y0 A  Z介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间 ...

' K4 P) J" h( \8 m看来有空得跟你学几个德语词汇了,不然都看不懂了 !当物件本身统计功能不能满足要求时,只能自定义收集数据,这个方法很好,这个帖子应该是技术帖了,呵呵!& W% s7 E2 R8 u
ProcVerdichtung这个是个什么东西啊,怎么在Table里面?: R6 ^" A, L" ^, R% e
0 t' P3 r  Y' u3 _' D1 U
. B6 h# D* i4 g- D2 Q
 楼主| 发表于 2012-8-31 21:17:52 | 显示全部楼层
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object
2 j6 m3 d( I2 Y" i7 h而procVerdichtung就是这个object的状态统计变量。。。是一个简单的整型变量。。。
发表于 2012-8-31 22:44:18 | 显示全部楼层
五五 发表于 2012-8-31 21:17 9 E. l9 X8 s: ^/ Q# a! f5 j& v
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object
  |1 {0 C$ \; S4 e) M# O而procVerdicht ...

) @) T( v$ ?0 W: j明白你方法了,很巧妙,一般人想不到的,赞!
 楼主| 发表于 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-6-14 16:13 , Processed in 0.017148 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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