全球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 D
treenode current = ownerobject(c);
& K$ o8 E( p- Z5 ?0 ]' s
int port = parval(2);
! N5 L' M- ` g( O" o: z% \
0 r! D. {$ F" M
treenode ts = createemptytasksequence(centerobject(current,1),0,0);
+ D2 v4 D! Y' n. ^
+ ~% N |1 ^0 P+ i& o, B: z3 Z; D
inserttask(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 M
inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
$ j) j7 l3 N3 O( ^# r; b: g
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);
+ o2 `# s- Z8 I
inserttask(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% O
dispatchtasksequence(ts);
' L3 |2 G+ m4 W) X
% z" E( A& O j- O, D
return 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# l
treenode item = parnode(1);
9 {8 s1 |9 C: `% K/ d- Y
treenode current = ownerobject(c);
5 p" f5 j# U' C
int 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 A
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL); //走到下一序列
. \* l2 O- G4 q: O7 p
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY); //延时60秒
; ^: h& G; k4 U/ }3 d
inserttask(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 o
return 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