全球FlexSim系统仿真中文论坛
标题:
任务序列代码
[打印本页]
作者:
啊钟
时间:
2014-5-29 14:53
标题:
任务序列代码
本帖最后由 啊钟 于 2014-5-29 21:31 编辑
+ V# q/ I# I; t; ^
8 m6 L& U& L# I) t6 s
这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?
8 K: C2 X2 }, v, v% s
2 \; q. q% C: B
treenode item = parnode(1);
% K* l8 ~6 `0 e" L
treenode current = ownerobject(c);
; B* v/ K& c. J, C5 i3 z
int port = parval(2);
& Q! X- F0 h) d3 E/ E/ f$ d2 i
4 u0 ?& v0 ]; n4 Z1 y
treenode ts = createemptytasksequence(centerobject(current,1),0,0);
; u3 @! Y! f8 U( { z, N8 i, B
0 a9 q! z5 i% M( l
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
) J; }, g# Z5 s4 V# r& }0 S
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);
. s; K( @' G) g
inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
. o# s6 g0 C' z/ w) F
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);
* x8 W3 u/ m5 X' V- I( B
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);
& B. G, z9 O8 c* q+ J
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
& Z) a: c( k" E9 ~; S8 @
& H2 x+ {, c# T5 I+ c0 I6 l/ y
dispatchtasksequence(ts);
8 v) B7 Z3 U! {& Q, w& L0 Q4 Y
6 b1 n* \4 r! @& V
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#
慧娴亚伦
( l! X+ E" G. Y( `
5 v+ G2 s: \ P& h, c9 G
7 R6 q6 t& w e3 h7 f3 o$ C) ?
报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。[attach]1977[/attach]
作者:
啊钟
时间:
2014-5-31 09:13
本帖最后由 啊钟 于 2014-5-31 09:18 编辑
# e! K1 h- k# L, n h+ S
; g6 r. p3 k8 k; |* r* h
[attach]1978[/attach]
3#
啊钟
就是这个
" i3 e5 ]' F9 _/ e
8 q5 d0 B0 C& N" p( \! W
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!![attach]1979[/attach]
作者:
啊钟
时间:
2014-5-31 16:19
2#
慧娴亚伦
3 t. L+ C' b! M3 R! c' U, Y" g0 T! Q
, ~, v* t! _+ b
$ v4 j" e' E7 b4 W, {- D
我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了
4 B4 o9 C2 e0 S8 |# c" d/ U
" u: S- g( U2 B& |) F9 t3 r
treenode item = parnode(1);
7 `3 L8 |& L8 ?# V& Z7 u$ h
treenode current = ownerobject(c);
- \, R, R6 K! I: ]# V# B
int port = parval(2);
7 I- r. X' ~ [7 ~8 z* v# n% V& l
7 ^& b- ~" O- h; C4 P
treenode ts = createemptytasksequence(centerobject(current,1),0,0); //创建空任务序列
+ f: E! N2 l ]; {3 _# d
inserttask(ts,TASKTYPE_TRAVEL,current,NULL); //走到本序列
+ F6 A I1 Z9 S
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY); //延时60秒
7 D7 ]' u! z2 i J$ E3 _
inserttask(ts,TASKTYPE_FRLOAD,item,current,port); //装载实体
/ f" ]8 x8 q) Y3 H& p
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL); //走到下一序列
" h: i6 z7 w# |3 f0 i7 T. R
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY); //延时60秒
* ^3 J1 s& U x0 u3 f x6 H/ k
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
# l, f, O: n. ?; @6 ?" c# K# p
//卸载实体
: E* `9 ~" g/ ~3 O0 [
$ m) i/ G/ e7 o: Q
dispatchtasksequence(ts); //分配任务序列
- j6 ?& E1 J' j. H2 T. `
1 x1 N) j [5 d# y2 ?' O- P$ n
return 0; // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列
* B0 d. l8 J7 |
2 F, c7 G( {/ W4 ^! x7 K, e- f
, @3 `. O E* q0 H9 D% S' k8 B
这样是可以的吗?谢谢您!
作者:
guozhongyun
时间:
2014-8-21 19:42
学习学习!!
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3