设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4485|回复: 7

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

    [复制链接]
发表于 2012-8-31 17:11:17 | 显示全部楼层 |阅读模式
现在德语烂 中文也跟着烂掉了 大家就不要拘泥于我奇怪的语言组织能力了。。。& S( ^  a  g& j- {* ]0 y
) f4 r# P; K- L+ Z9 k/ }+ w
关于对象 比如工作站 利用率是一个比较常用的统计数据 PS也自带了 类似workingtime之类的统计。。。
1 c6 K. g& a: g( t
7 ~" f& ?# ?7 B不过 对于比如加工不同工件 或者进行不同操作之类的复杂统计 自带的变量就不够了。。。
' p/ A* Y7 l  w" f7 k, K
4 ?  I! i) J+ C8 |2 k我个人一般是用一个整型变量 来对这些不同的状态进行统计 也就是说在要统计的对象的状态发生改变的时候 也对这个整型变量赋给对应这个状态的一个值 最后 就只需要读取这个整型变量的统计表 就知道 对象的各种状态分布了。。。$ Y; s0 [# |/ E4 P
& d% _# D# j8 ~
比如 给小车定义整形状态变量status
- R8 n7 l# b$ }; H7 f" T4 N  Q# Y那么 在小车启动的时候 一般会用到
  [% U; B% d. I! z, s5 v' z@.currspeed:=xxx 或者 @.stopped:=false 之类的 2 i0 c1 i+ X8 g) W! Q
这时候加上一句 @.status:=1 . X2 ]; I8 W( N3 z+ G) j4 l* m
相应的小车停止的时候加上 @.status:=0( `; y( I) |* C4 a$ x) t3 h2 a3 z
& t; a' {$ Y, ]3 A. \1 r9 f
那么读取status就可以得到小车运行 和 停止的时间了
, p" v) E5 \% k( G% |2 {2 Q2 z5 ]) E6 L, Y' v
读取统计表的命令是getStatisticsTable . z: b- o. |# G& d3 J% p8 W0 d8 G+ ]5 C
另外 对于无法使用initstat命令的变量 可以用统计关闭再开启的方法来强制initstat

评分

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

查看全部评分

 楼主| 发表于 2012-8-31 17:12:27 | 显示全部楼层
本帖最后由 五五 于 2012-8-31 17:13 编辑 9 s) ?7 g& |# ~/ G* a

& Y+ h. U1 b7 X2 j另附相应 统计过程一份 虽然是德语大家可能看不懂 囧。。。变量名也很奇怪哟。。。
' c+ |5 _7 S; x6 C
* o& h, v0 N+ _is+ e7 g' i% ~. [. a/ M$ C
        Xdim, i, j, k : integer;9 f$ ^5 o2 n- i+ X+ V
        tab_temp : table; . T% x1 w  \/ Y1 @' f& x
        PufferKanal : object;( L. F2 f) \! I$ G* J
do
% z7 t* y/ y" E& ~        tab_temp.create;
5 j! G1 o6 l$ |3 Y6 j        Xdim := self.~.Tab_Stat.Xdim + 1;
; N( Z/ T. B7 k. P* O       
/ I: C: M$ K  Y( A        for i:=1 to current.Tab_Verdichtungsplätze.Ydim loop
  K! K( o3 O0 T# r* s- K: F1 P                tab_temp.delete;; O1 E5 `0 T. z. c
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).getStatisticsTable(tab_temp);
( d, g- L' v/ [$ c0 S               
! w! \, L# W3 }4 x) `. v* K                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=false;+ Y$ s! i( x1 R/ N
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=true;
' r& P/ s' h- M6 O7 m2 Y: x9 b
* X' M" Q! X. A3 n                for k:=1 to tab_temp.Ydim loop- s/ j* p# ]% A! G, {: p
                        self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]:=self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]+tab_temp[5,k];
: l* a/ {, z8 W$ I- q                next;# e# t7 K6 d) a% [0 x! T4 h8 R
               
+ w' i# w; L" C' {8 o        next;8 r- Y0 z# j% Q
        6 j: k4 s5 X2 r/ X2 e' L4 J
        self.methcall(3600);6 f+ |$ m& q  _# o/ z
end;5 X; m) O; Y% M: C# S/ S
 楼主| 发表于 2012-8-31 17:20:09 | 显示全部楼层
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间

本帖子中包含更多资源

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

x
发表于 2012-8-31 21:10:12 | 显示全部楼层
五五 发表于 2012-8-31 17:20 ( w; a# I0 j; }, F5 k3 k; T
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间 ...

  Q, N' z% R1 s5 E% D看来有空得跟你学几个德语词汇了,不然都看不懂了 !当物件本身统计功能不能满足要求时,只能自定义收集数据,这个方法很好,这个帖子应该是技术帖了,呵呵!9 s8 I* y$ m; z, f% R
ProcVerdichtung这个是个什么东西啊,怎么在Table里面?
+ Q4 _3 O& [9 u' M9 D' l7 s* L; N2 P/ c: A. i
5 n8 \8 M+ M( }) \
 楼主| 发表于 2012-8-31 21:17:52 | 显示全部楼层
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object
3 e# |+ i- u3 ^0 j' H而procVerdichtung就是这个object的状态统计变量。。。是一个简单的整型变量。。。
发表于 2012-8-31 22:44:18 | 显示全部楼层
五五 发表于 2012-8-31 21:17
. H; F2 D5 m4 o囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object 3 v! }# Z. x: W, E. N
而procVerdicht ...

9 n0 `3 E$ ~" i9 ?1 b明白你方法了,很巧妙,一般人想不到的,赞!
 楼主| 发表于 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-12-18 19:09 , Processed in 0.021085 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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