全球FlexSim系统仿真中文论坛

标题: 任务序列代码 [打印本页]

作者: 啊钟    时间: 2014-5-29 14:53
标题: 任务序列代码
本帖最后由 啊钟 于 2014-5-29 21:31 编辑 3 Y4 x+ N6 J' s& Z/ e

( U; x  D/ n- U6 {这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?: G* U7 E3 O" Y7 p' j

9 s' K+ n/ i! ?% N7 D0 g: L2 h; ctreenode item = parnode(1);+ t8 e1 z: O3 }
treenode current = ownerobject(c);
. n& t( g  [# ]' K# ?! M5 kint port = parval(2);
# v( B$ f* ~4 X" v( A& N3 P" S
( H/ {: Y. D# N3 e: s7 k, C. dtreenode ts = createemptytasksequence(centerobject(current,1),0,0);  r1 }* k4 X5 b/ h1 }

. T8 `' r1 [! H2 Cinserttask(ts,TASKTYPE_TRAVEL,current,NULL);2 D. }# Q! Q3 g# }' J
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);" I, t* p( z6 s( o& c/ {, |: A
inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
8 ], A2 W) n! b9 M/ ~1 zinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);
  U( m" \; r; w4 \inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);7 Q% ?, {7 _6 w! J5 s- n' s# T. k. l
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));4 y8 W! b1 o% A) W

. T" t& V# n% Gdispatchtasksequence(ts);
4 Q' Q  s1 U* N- ?6 N$ }
( Z8 w/ T0 d) _* ireturn 0;  // return a 0 so this object will know that you made your own tasksequence and it doesn't need to make the standard tasksequence automatically
作者: 慧娴亚伦    时间: 2014-5-30 10:07
单看代码是没有问题,但是需要结合具体的模型中的情况来看,您最好是能把报错截图上传。
作者: 啊钟    时间: 2014-5-31 09:13
2# 慧娴亚伦
0 ~1 F& ]  w4 e3 s2 N; }7 Z
; C$ A  a2 b  H# D3 s
' ]  p+ ^! C; C" q9 Q+ x: u报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。[attach]1977[/attach]
作者: 啊钟    时间: 2014-5-31 09:13
本帖最后由 啊钟 于 2014-5-31 09:18 编辑
. V, {( l+ ?1 j7 S5 H$ f. L4 U2 ~" j
[attach]1978[/attach] 3# 啊钟 就是这个  l% e' m% K! o# X
: o' S* t3 N" B' z7 I# y* ?$ l
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!![attach]1979[/attach]
作者: 啊钟    时间: 2014-5-31 16:19
2# 慧娴亚伦
6 D) o% j" f# n$ C
1 F4 W0 s  P1 ?: W6 U, h
; W( b. z  p7 ~, t: z4 f6 R1 L' t* m我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了) W0 @4 f7 G! O2 |7 U% u! a

1 S; M3 m7 r0 a4 Q7 Streenode item = parnode(1);
( {  W1 W8 K0 K: ?" Gtreenode current = ownerobject(c);
, l$ r, J% S# }% i( \5 I& ]( _int port = parval(2);
1 S, U; C, G; s4 K( ]  z- E
: Z/ `; F2 a5 s9 @, B5 `; ?; ztreenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列
8 \, P* ?5 ~0 C& F5 \" Ninserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列
0 ]. J' O7 W, ]9 F: C1 ]6 q6 vinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒- o$ e. K; O7 {# ]" M9 [
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体
: [' G+ z. j6 W, d/ b, T- [inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列7 c& c1 m6 {& x1 b; t+ m% n
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒/ J3 m( v. J, C& C+ Y
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));2 w7 {; X0 U) o: p( L
//卸载实体6 N4 Q$ d3 U7 @6 |- j; K2 r' e

+ h3 r. q: L1 m' Fdispatchtasksequence(ts);                                                          //分配任务序列; H. r1 z# H* o" I  f# ~: w2 `
6 q1 o; E, v# ?: }
return 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列
; d" b3 a% w/ V+ r' M8 V2 _! B0 W; w: B% s/ t/ l6 @
* v' M" Y" Y3 _
这样是可以的吗?谢谢您!
作者: guozhongyun    时间: 2014-8-21 19:42
学习学习!!




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