全球FlexSim系统仿真中文论坛

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

作者: 啊钟    时间: 2014-5-29 14:53
标题: 任务序列代码
本帖最后由 啊钟 于 2014-5-29 21:31 编辑 4 H; J2 Y2 e0 h, ]" I# ]+ [

! D: H4 [& @, a) U7 m0 e1 g; N! U) ]这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?$ X9 r1 R; a) y8 |* t" H8 k
' c( p" U/ ~7 r$ ~
treenode item = parnode(1);
" C' O" e9 c% U; B( Q6 U0 Dtreenode current = ownerobject(c);
& K$ o8 E( p- Z5 ?0 ]' sint port = parval(2);! N5 L' M- `  g( O" o: z% \

0 r! D. {$ F" Mtreenode ts = createemptytasksequence(centerobject(current,1),0,0);+ D2 v4 D! Y' n. ^

+ ~% N  |1 ^0 P+ i& o, B: z3 Z; Dinserttask(ts,TASKTYPE_TRAVEL,current,NULL);: ^. O$ \3 {! U/ l1 n
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);
, B/ s0 a. h+ \. W5 r5 N2 g$ q0 Minserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
$ j) j7 l3 N3 O( ^# r; b: ginserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);
+ o2 `# s- Z8 Iinserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);- E: T1 U8 o) r/ Y+ a& e; o
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
& ?7 U$ n7 ?  j! q$ L+ J; C
+ |8 L0 C2 M/ Y$ P2 [$ u% Odispatchtasksequence(ts);' L3 |2 G+ m4 W) X

% z" E( A& O  j- O, Dreturn 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# 慧娴亚伦 : c' ]/ ~# t: t0 g
7 `; C4 @% O2 U3 o9 |
8 e% E/ s$ g1 B$ {  ?9 q% j
报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。[attach]1977[/attach]
作者: 啊钟    时间: 2014-5-31 09:13
本帖最后由 啊钟 于 2014-5-31 09:18 编辑
, q5 N7 m1 }. |/ j
! l8 E5 ?9 j; r[attach]1978[/attach] 3# 啊钟 就是这个
3 d: k5 A. K! W+ s; q: }: y, Q7 D% ]5 n3 q$ T8 X' n; j' J  d
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!![attach]1979[/attach]
作者: 啊钟    时间: 2014-5-31 16:19
2# 慧娴亚伦
7 ~1 a9 f: q' A- d! U& H/ V  P, M5 Q' d" T) H, c

' q6 Z# B' e- w2 N( F2 u9 T我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了
7 {3 u) ~% W' q, d* U- `& f7 R
* R- h9 s% y  T& d* B# ltreenode item = parnode(1);
9 {8 s1 |9 C: `% K/ d- Ytreenode current = ownerobject(c);
5 p" f5 j# U' Cint port = parval(2);7 ]" z6 I4 @" I9 C8 ~8 T0 C7 x
/ g% @" @& P% Z2 e" i
treenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列4 P0 S+ u/ m; M1 ]
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列/ n) T/ b" @, A0 Z' f! r% V
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒: l' x# J# Z, y' r
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体
% {/ J  ?/ t7 E( d( q9 Ainserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列
. \* l2 O- G4 q: O7 pinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
; ^: h& G; k4 U/ }3 dinserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
, a: n8 U3 O$ A2 j' L0 b% i//卸载实体$ B/ d5 @; }; f5 Z+ @6 z: r) d
6 g7 J( ~2 \9 G8 B7 I
dispatchtasksequence(ts);                                                          //分配任务序列
) h/ D5 L( P5 }7 n/ E- u# i& S' u
. w4 j. }3 z7 Y  U  f1 N  oreturn 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列
8 w! K( Q5 j: `9 r9 v# O/ S; y' k6 L- p$ p0 A7 i; a' _) a* ~

8 z2 |. }- x  R% \+ M6 M2 |这样是可以的吗?谢谢您!
作者: guozhongyun    时间: 2014-8-21 19:42
学习学习!!




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