全球FlexSim系统仿真中文论坛

搜索
查看: 5483|回复: 6
打印 上一主题 下一主题

“用户事件”UserEvents求助

[复制链接]
跳转到指定楼层
1#
domcylai 发表于 2011-11-4 16:30:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 domcylai 于 2011-11-6 22:49 编辑 3 L+ k4 `5 O$ h4 N$ P, [3 h3 Z; c
# R- C! I# |; d5 q9 u  B
最近在学习UserEvent时,遇到一些问题(附件):
3 s3 y( \. K" {1.模型中Tools 有一个GlobalTables : num ;3 m7 e& B0 k3 `8 m+ S, t
2.现在要求每隔一段时间以后,从FlowItemBin中产生Box进入系统,产生Box的数量从num表中取值,第一次产生的num是row1 的值,第二次是row2....# w5 h) u- U) [# w) F0 w- i* m
3.当执行到最后一次后,停止用户事件。+ V: Y( ^( K+ X7 f

& h# d: u3 _* b3 o: C5 \5 B* m
1 g4 J# k$ o2 [3 Q这个方法虽然实现了上述的功能,但是没有扩展性。如果num表内row的数量很大,而且不确定就不容易实现了。

本帖子中包含更多资源

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

x

评分

参与人数 1威望 +12 收起 理由
Rosalyn + 12

查看全部评分

7#
Rosalyn 发表于 2011-11-14 20:17:45 | 只看该作者
4# qiush1234  C6 r# p3 F6 r
自定义函数,我觉得可以通过C++编程和脚本编程,然后变成全局变量,可以让整个模型都能调用
6#
Rosalyn 发表于 2011-11-14 20:12:15 | 只看该作者
3# domcylai
6 z7 M& W- M9 f
  \  s: m) c- ^. s% s# [5 k; a
- Z- ^% n% j& _/ h学得越来越不错了,补充一下,时间定时器,还可以用发生器和吸收器两个来控制,固定某个时间点创建临时实体,在创建触发里编辑代码
5#
 楼主| domcylai 发表于 2011-11-11 17:33:21 | 只看该作者
自定义函数是神马东西?是指Script教程吗?
4#
qiush1234 发表于 2011-11-10 09:19:04 | 只看该作者
过来学习的,不知道有没有自定义函数这样的教程啊。
3#
 楼主| domcylai 发表于 2011-11-6 23:06:29 | 只看该作者
UserEvents 功能是正式版软件才能用,Demo版用户可以使用另外的方法来“制造”一个时间定时器:比如设定一个小车在两点间运动,每次触碰的时间通过速度来控制。也可以用传送带等
2#
 楼主| domcylai 发表于 2011-11-4 17:29:34 | 只看该作者
本帖最后由 domcylai 于 2011-11-6 22:53 编辑 , J$ m& v& \! L1 c* Z: o* t3 c
0 Z1 h5 ]2 C  [# a; \
解决方法是:用一个for语句来控制:关键代码如下
7 [2 M' H5 L* M: O" q3 S) x/ H/ @2 l for(int i=1;i<=gettablerows("rank");i++)
  w% j# \/ @2 N( ]( K# R{        if(i==num)  // 此处num值是记录UserEvent 已经运行的次数,可以新增一个节点或用一个table来记录
. O/ ?( ~& s# L! @4 y6 T        {        * A( l, }( H) L. i( _! P
                for(int j=1;j<=gettablenum("rank",i,1);j++)5 @; v8 @) I4 s
                {( C, V0 |3 ~) E5 T5 n
                        insertcopy(node("/Tools/FlowItemBin/1/1",model()),node("/Queue1",model()));/ d: `5 H/ k9 S& c2 B: Z7 t* ]
                }
+ K- A  D& K8 c5 W' b6 t  X( z        }7 X- D: H8 c) C" q9 A; i
}8 p# W8 F( Z5 R$ \' S1 [8 x0 X5 W% r
此外我还加了一条语句:4 \' D; E) T# y8 ^
//if(num==gettablerows("rank"))+ [! j# }4 J) d) E* O0 ?
if(num==5)     //UserEvent运行5次后关闭
) u5 I4 q7 C  }+ M& n: m5 ?setnodenum(node("/Tools/UserEvents/UserEvent1>variables/repeat",model()),0);: U' p( s. s8 p0 v& p/ f1 _
else
- ?2 K* S! y; R{7 o$ l% x: K; V! O) b( {3 R
        num=num+1;
8 |4 I/ \9 s0 F$ m3 F* K7 M        setnodenum(runnum,num);; D& u/ {9 h" B6 w$ o
}
" o  s3 [# a- r5 S& M7 {) X也就是控制 该UserEvent 自动运行的开关节点。=1 为开 =0 为关。

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2025-6-30 23:01 , Processed in 0.084959 second(s), 16 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

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