设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4258|回复: 7

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

    [复制链接]
发表于 2012-8-31 17:11:17 | 显示全部楼层 |阅读模式
现在德语烂 中文也跟着烂掉了 大家就不要拘泥于我奇怪的语言组织能力了。。。
2 ]& l& Y# a9 U$ u& [+ ]* m9 r- I! \& e1 c* x! y+ A4 d, `6 d
关于对象 比如工作站 利用率是一个比较常用的统计数据 PS也自带了 类似workingtime之类的统计。。。1 W: C& F+ ?2 t( z; S2 l+ g4 l
  t( e/ s# N0 H& o, e
不过 对于比如加工不同工件 或者进行不同操作之类的复杂统计 自带的变量就不够了。。。
5 c- b( Y7 q. L# F  ~- I! Z4 _* P" c
我个人一般是用一个整型变量 来对这些不同的状态进行统计 也就是说在要统计的对象的状态发生改变的时候 也对这个整型变量赋给对应这个状态的一个值 最后 就只需要读取这个整型变量的统计表 就知道 对象的各种状态分布了。。。- Y7 B) Q2 y* r% L) _

, Y' J# A" }* A8 o4 i7 _$ [比如 给小车定义整形状态变量status
9 Z( V  G* S5 `5 p  g/ @) K那么 在小车启动的时候 一般会用到
- i9 a' s1 T) l+ D' b@.currspeed:=xxx 或者 @.stopped:=false 之类的 - ]+ d0 \" B/ P5 S( X
这时候加上一句 @.status:=1 + W$ ~/ {  M9 R  i
相应的小车停止的时候加上 @.status:=01 g. u1 l6 g* w7 S- r

0 B! \( F6 o# o) G那么读取status就可以得到小车运行 和 停止的时间了) B6 L9 ~7 {! y. p
. |1 j, R/ ^' M; h8 P/ y
读取统计表的命令是getStatisticsTable
- T6 M5 k2 E8 W2 l# N0 j另外 对于无法使用initstat命令的变量 可以用统计关闭再开启的方法来强制initstat

评分

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

查看全部评分

 楼主| 发表于 2012-8-31 17:12:27 | 显示全部楼层
本帖最后由 五五 于 2012-8-31 17:13 编辑
4 {, k- o7 N7 j- {/ {! g! m) t8 ~) p4 m+ k7 S2 g; L
另附相应 统计过程一份 虽然是德语大家可能看不懂 囧。。。变量名也很奇怪哟。。。  P1 r% f  K6 ~3 _6 q

% ]2 a* b% q+ `0 b( nis
1 e+ Q' @3 a0 j5 J3 I3 f2 l        Xdim, i, j, k : integer;
  ^: u+ J4 o' j( ]2 s        tab_temp : table; 6 m' h" i" [1 |3 J7 e
        PufferKanal : object;- n5 r: F- s5 G, G
do; V9 Y: Y, k- }. v7 @
        tab_temp.create;
3 c( G& D: c, A- f        Xdim := self.~.Tab_Stat.Xdim + 1;
# Q' E6 ~; Z% L" R5 }$ q  O        % ]: ?+ c% c, G2 t* V1 G
        for i:=1 to current.Tab_Verdichtungsplätze.Ydim loop
! X2 m" W& U% d. G/ C2 F6 S2 r                tab_temp.delete;/ i5 z( ]2 m& A2 E
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).getStatisticsTable(tab_temp);
" g  n; W; s# E* J" e. A. o$ u0 j$ k                % _2 ?9 t" C4 D/ G; [5 J( g5 V
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=false;0 d, _" ]7 t- a" Z& p0 q
                ref(current.Tab_Verdichtungsplätze[1, i].ProcVerdichtung).statistikAktiv:=true;0 }% u3 F+ ?8 t8 D

, n, u; |& {% G+ s                for k:=1 to tab_temp.Ydim loop
/ K- {/ K* S* M# D. a) ?                        self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]:=self.~.Tab_Stat[XDim, 4-tab_temp[1,k]]+tab_temp[5,k];1 X! W* q% s* ~2 m7 P( w# h, a
                next;
4 J$ w) Q' V7 d2 j" P7 {2 d7 |% j               
  a3 x; T0 x6 [' G, o2 A6 G8 M        next;
  H. R6 V9 F4 y        ( e/ g  M, C( ]4 G
        self.methcall(3600);
, d  n7 v4 Q. g0 D# G; i% ^) U7 l5 c/ hend;2 Z5 N8 ~( C& m8 u3 q! N
 楼主| 发表于 2012-8-31 17:20:09 | 显示全部楼层
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间

本帖子中包含更多资源

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

x
发表于 2012-8-31 21:10:12 | 显示全部楼层
五五 发表于 2012-8-31 17:20 + I! H. ]$ Z; d0 r0 \0 ^
介个是读取出来的统计表 第五列 也就是我用到的那一列是每一个值持续的时间 ...

* v$ j) K& D  x7 _! p看来有空得跟你学几个德语词汇了,不然都看不懂了 !当物件本身统计功能不能满足要求时,只能自定义收集数据,这个方法很好,这个帖子应该是技术帖了,呵呵!; d4 w* I) f' ?2 `0 {# j
ProcVerdichtung这个是个什么东西啊,怎么在Table里面?
( Z0 u4 U- _4 [0 B/ o
% D2 \  ^. j+ R# H# `! V! D4 v0 B/ F% W: R6 [' \* }: B+ `6 P
 楼主| 发表于 2012-8-31 21:17:52 | 显示全部楼层
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object
' [* k; s0 t; E0 y而procVerdichtung就是这个object的状态统计变量。。。是一个简单的整型变量。。。
发表于 2012-8-31 22:44:18 | 显示全部楼层
五五 发表于 2012-8-31 21:17 # {# {: {9 }5 }. t0 P# ]
囧 解释一下 表格的第一列 也就是 current.Tab_Verdichtungsplätze[1, i] 保存的是object
8 B4 Z) {$ f# r1 R% [( H- L' A而procVerdicht ...
% f1 {, @2 Q/ U; J( J1 s
明白你方法了,很巧妙,一般人想不到的,赞!
 楼主| 发表于 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-10-25 21:40 , Processed in 0.018279 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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