全球FlexSim系统仿真中文论坛

标题: Message Trigger 这东西怎么用? [打印本页]

作者: rightred    时间: 2011-5-24 19:38
标题: Message Trigger 这东西怎么用?
第一步:
/ d" F, B4 q2 m* ^0 C8 ~# Rtreenode item = parnode(1);* [! J" H0 g; u, @$ f" F6 e% v8 R
treenode current = ownerobject(c);0 r) t2 B. n/ K( Q' L7 @/ s
treenode source=node("/source",model());+ c# M7 W) U8 B2 g$ p: |  x
int port = parval(2);
/ \7 T0 g; E0 w& v9 ~if(. S7 h1 g" e/ s" }+ f& D
        content(current)>=20
$ R  X) z' Q+ x' [) `' g)* A& X  o7 \7 E2 P% n8 P
sendmessage(source,current,1,0,0);
4 W' Y: v2 s# U3 _( X+ freturn 1;
$ q) s" w3 d: F: C) ^, _# ^第二步:
; e& o& b/ t: ]8 F6 r, ?/**Custom Code*/
- c1 n) W% y: g- ?7 ^6 S) Vtreenode item = parnode(1);/ N7 x  K2 ]2 I; {
treenode current = ownerobject(c);
; r* a0 W" N1 o6 P; Streenode source=node("/source",model());
5 D( _# e1 I& H4 U. gint port = parval(2);3 v1 l8 T1 ~" s/ n
if(3 s  E8 h2 U5 v% |
        content(current)<5
9 O  U7 p; Z% L: f: {: C" W)
0 }2 K2 v2 S2 J9 i9 Y, \, B/ jsendmessage(source,current,2,0,0);
/ i; H. B6 C# \& preturn 5;
0 F1 f" v- Q& k$ T) r5 ]/ t9 p第三步:/ ]5 d9 K/ U  P0 `: H& e

) U, Y0 ^  ~& T& b/**Custom Code*/
+ ~) _0 l/ C6 M( m0 F# |treenode current = ownerobject(c);( X/ p, U5 ~7 H- A+ T2 U0 X
unsingned int uservalue=(unsigned int) msgparam(1);' l. P  \. X7 E! Q# i
switch(uservalue){
) ~4 c4 ~  o* m# }5 K7 J        case 1:closeoutput(current);break;: `  d- \+ j$ G/ Y9 v! c0 R
        case 2penoutput(current);break;
7 S$ h9 v( ?) v9 h! r2 V}  g& |; s! ~/ o+ S
最后系统报错是第三步,说是没有定义uservalue:/ n  J2 f0 M! W( n4 r; s3 E
+ @' i; N8 _1 a# Y! [! H
line 3        unknown variable "unsingned"$ l* E/ l; ?7 d1 {' T/ p

) a% D" w8 n' gline 3        syntax error, unexpected type identifier, expecting ';'
5 _* T# [: C" f% W1 S' X6 r0 J* SCould not finish parsing because of previous errors.# m! [+ g) G% N3 l, f: q* u

# K7 ^8 m  @2 k, d  y) c4 B' G9 T请问各位大大这是怎么一回事....
作者: atdmin    时间: 2011-5-26 14:18
应该是这样子的吧:
9 W5 i7 ?0 r, R0 n( ?/**Custom Code*/3 L& s7 A3 U$ D
treenode current = ownerobject(c);, k6 [) \5 e9 S* ~0 L& i
int uservalue= msgparam(1);: \8 `3 z/ |1 w& N4 R+ _  Z
switch(uservalue)
/ o3 {/ j4 H2 B{
' M3 _/ F; n5 |0 m        case 1:closeoutput(current);break;7 k& G/ S/ G+ u) U. ]9 T  v) F
        case 2penoutput(current);break;  \( @3 M$ ?# `: L  ^( u
}9 N1 S; z' ?) T+ m- M/ P" `
你试试,看看行不行
作者: rightred    时间: 2011-5-26 14:52
2# atdmin
# S8 p# x2 @: K/ L- p% M, W; m8 a0 b

" p  h# M8 g8 z% G9 l+ d2 P嗯,这样的话已经不报错了,就是功能还是无法完成...很奇怪
作者: atdmin    时间: 2011-5-27 09:35
你要的功能是这样子的吗:
  D* \6 d; [6 c第一步:(写在传送带或者缓存区的进入触发)9 n* `7 m$ y$ S* K# X8 I9 U% x5 H
当当前实体上的临时实体个数大于或者等于20的时候,给发生器发送消息,并赋予第三步的uservalue值为1;
* J# [  ?/ F, v# `3 w$ @0 U第二步:(写在传送带或者缓存区的离开触发)" Q- f' R$ b# k
当当前实体上的临时实体个数小于5的时候,给发生器发送消息,并赋予第三步的uservalue值为2;  Y8 \/ P' u7 J9 [1 i9 o& i
第三步:(写在发生器的消息触发)7 y) X5 }$ N. E" w2 h
当uservalue值为1时,关闭发生器的输出端口;5 q; U! h( G6 B; y/ N) ~: x
当uservalue值为2时,打开发生器的输出端口;& |( V- r  x5 Q8 p5 w
+ z( I; h0 i* D3 \: S5 d  x- c
     我也是新手,互相学习下!
作者: atdmin    时间: 2011-5-27 09:39
3# rightred # w: z8 `: g: ?

! d5 [! ^$ Y* x  h% I! J这是我建的模型,你可以看看,或许对你有用!
作者: rightred    时间: 2011-5-29 11:17
5# atdmin
( K- G: X% P  k  @( m! G/ l; H2 Q5 \  K1 y6 \/ j% h5 ~
' o! K3 ~7 l2 l0 c5 e9 ?, A! z) a
嗯...是这样的。谢谢你的模型拉




欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3