设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4472|回复: 7

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

    [复制链接]
发表于 2012-8-31 17:11:17 | 显示全部楼层 |阅读模式
现在德语烂 中文也跟着烂掉了 大家就不要拘泥于我奇怪的语言组织能力了。。。
$ c( B/ @2 M! a  d+ O' e) G% r8 Y7 X
关于对象 比如工作站 利用率是一个比较常用的统计数据 PS也自带了 类似workingtime之类的统计。。。
- m- P* r" U% q+ m2 a
3 T  Z3 F1 i7 k  L# v1 ^不过 对于比如加工不同工件 或者进行不同操作之类的复杂统计 自带的变量就不够了。。。8 {8 o+ a: v4 O7 Q+ \
( T2 E- k4 T: _2 g6 g, x  X. ?6 N
我个人一般是用一个整型变量 来对这些不同的状态进行统计 也就是说在要统计的对象的状态发生改变的时候 也对这个整型变量赋给对应这个状态的一个值 最后 就只需要读取这个整型变量的统计表 就知道 对象的各种状态分布了。。。
* Z9 l8 s% Q  J9 C( k- t$ H4 f9 \4 F6 |; \
比如 给小车定义整形状态变量status
8 D7 N! @8 ~2 c) a那么 在小车启动的时候 一般会用到
3 Q0 H$ \0 a5 p* V( ]@.currspeed:=xxx 或者 @.stopped:=false 之类的 ! L; V/ l- W. L" [
这时候加上一句 @.status:=1
' x# h. ~$ i1 u4 q9 Y/ O相应的小车停止的时候加上 @.status:=0
% f: W6 A1 ?9 S3 `: M1 y! h1 N6 a3 y7 }9 v2 j
那么读取status就可以得到小车运行 和 停止的时间了! g4 ]( ~( F; ]2 O4 G
, I$ |7 ]' t. Z& ^" \* Z" L! E+ g% @
读取统计表的命令是getStatisticsTable ' N0 E0 f- L% E4 W0 s( w, x
另外 对于无法使用initstat命令的变量 可以用统计关闭再开启的方法来强制initstat

评分

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

查看全部评分

 楼主| 发表于 2012-8-31 17:12:27 | 显示全部楼层
本帖最后由 五五 于 2012-8-31 17:13 编辑 % ?4 y' z$ y( a1 {$ E/ e

) {9 a. O  ]5 O4 }另附相应 统计过程一份 虽然是德语大家可能看不懂 囧。。。变量名也很奇怪哟。。。
5 ]: e2 n4 Q7 v/ I2 R. C
- `9 I) b, z7 A9 u! Sis
& t* i  M. G( Q- E2 v4 C        Xdim, i, j, k : integer;
2 o  q) @" R0 x, v6 r+ \        tab_temp : table; 6 @) x! R' _/ y
        PufferKanal : object;
& E) M( E" c4 Rdo
. |3 m- F0 ?4 D. U- f& @        tab_temp.create;
, B3 w* d4 ]$ \- }- i        Xdim := self.~.Tab_Stat.Xdim + 1;6 K! s- |5 ~+ _  v; J
       
$ y3 d7 }5 ]5 |8 Q: m( {, @        for i:=1 to current.Tab_Verdichtungsplätze.Ydim loop1 ?+ A3 o# F! k4 ]( i% Z; b" B0 C5 p' {
                tab_temp.delete;- g0 h. }: i5 S* n! ?
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).getStatisticsTable(tab_temp);- h" r; L5 Y/ ~3 B( w
                ; b4 e  z5 o. z# g/ `+ \& k
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=false;
2 n* N2 w0 S! c4 A                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=true;
- s5 Y$ C8 ]1 U# M' z
6 z  ?( m( r0 V2 }& h2 O" w( S; ~                for k:=1 to tab_temp.Ydim loop
, s4 b- @! z5 B  j: E) u" T                        self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]:=self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]+tab_temp[5,k];; M, H' `, M- n
                next;
9 ~9 U  J) A& i               
2 M& P8 J( o0 w: z8 N        next;! e- F3 q. g7 z
        ( _0 R0 _/ V* \
        self.methcall(3600);
( _  Z8 H' ~3 S) S: x- l3 _end;% W  b9 Z/ f+ I, p, Z% Y1 ^* N: @" B
 楼主| 发表于 2012-8-31 17:20:09 | 显示全部楼层
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间

本帖子中包含更多资源

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

x
发表于 2012-8-31 21:10:12 | 显示全部楼层
五五 发表于 2012-8-31 17:20
6 S' k. ^! w6 x7 h9 y5 r介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间 ...
1 ]# \, E% Q# E8 w
看来有空得跟你学几个德语词汇了,不然都看不懂了 !当物件本身统计功能不能满足要求时,只能自定义收集数据,这个方法很好,这个帖子应该是技术帖了,呵呵!
. c, Z9 J2 K$ p4 l6 `ProcVerdichtung这个是个什么东西啊,怎么在Table里面?& q! e# I% b7 O3 H: a

( [8 M2 n* ]4 N8 ?/ D  s/ l! p% I- \! S; C5 ~- e$ ~& I
 楼主| 发表于 2012-8-31 21:17:52 | 显示全部楼层
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object
" ]& X: e$ h# k, r" }6 X而procVerdichtung就是这个object的状态统计变量。。。是一个简单的整型变量。。。
发表于 2012-8-31 22:44:18 | 显示全部楼层
五五 发表于 2012-8-31 21:17
- E+ ^2 s3 K3 s9 T. a1 X; N, |+ X- i囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object
% N4 O- i, [! f& Z% `; E1 \7 b而procVerdicht ...

8 L, q, {4 R/ ?7 [+ Z明白你方法了,很巧妙,一般人想不到的,赞!
 楼主| 发表于 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-16 10:18 , Processed in 0.017043 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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