全球FlexSim系统仿真中文论坛

搜索
查看: 6938|回复: 5
打印 上一主题 下一主题

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑 8 Y) g  N: v' i2 H

% g2 }& n/ ?( N+ L% c# C这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?& w2 P. N3 h. \

1 X, y) d7 I' n  t- l; x4 ttreenode item = parnode(1);
8 n: d$ |4 P/ t# ]4 t, ytreenode current = ownerobject(c);3 V1 p& M7 ?0 f8 Z6 S% s. m
int port = parval(2);
0 L9 I- o5 S' E2 d- E5 w# b& }6 a0 X# g/ t) b/ A
treenode ts = createemptytasksequence(centerobject(current,1),0,0);6 a, h5 J7 p# u+ B- {

$ }, D1 @. ?1 p, winserttask(ts,TASKTYPE_TRAVEL,current,NULL);
9 Z7 K$ ]8 j7 y! xinserttask(ts,TASKTYPE_FRLOAD,item,current,port);
5 E( P' F* A. a0 u" [) `inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);# J: F) B. X. r# f0 X/ S
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);
; q! |. @0 {# X" w- k- oinserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);
2 _+ s9 v' z, Linserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
! l8 t* j' d4 X$ Y& j, X$ t: G1 z1 K  }$ w4 `7 f. l( W
dispatchtasksequence(ts);
( ^1 D% O& {" i6 G# Y1 q5 E7 ~1 G9 S1 \" u& L
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
2#
慧娴亚伦 发表于 2014-5-30 10:07:18 | 只看该作者
单看代码是没有问题,但是需要结合具体的模型中的情况来看,您最好是能把报错截图上传。
3#
 楼主| 啊钟 发表于 2014-5-31 09:13:15 | 只看该作者
2# 慧娴亚伦 . S' i4 R* X4 X

9 }* a! y; q8 X. u8 @9 A! Z  z' N7 c5 w; D( e- W6 ?( _
报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑 9 b4 i; @- i  C& g3 K

/ u( i6 P- j2 x9 r7 n  W( a 3# 啊钟 就是这个" w! s0 C+ y' R; x) G/ _
1 V0 L- n2 _/ H
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦
; g7 Q  L$ ]' J4 W/ g4 D/ h6 t$ Z% h, ]* _( b! ~4 c
  a" ], p, E; R+ M& M8 N4 E
我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了! l$ ?  c/ n2 ]" m+ S

8 Q3 c7 k1 Y. J8 e' ?9 o. vtreenode item = parnode(1);7 Z: `* ^9 b+ G6 I
treenode current = ownerobject(c);, X, R0 @5 n7 J3 c
int port = parval(2);
+ S3 m! |. a* s/ I+ k2 h
  H+ F% [) K! j/ gtreenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列
& E; L1 ^% ?0 k  o& ?8 A9 o7 Tinserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列
9 e8 f9 u6 y3 m9 G! w( n% Hinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
6 W/ z: V, ]1 B5 e7 a9 m! hinserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体
3 K: s3 e' |/ {$ v( T: B/ r- ninserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列
& Y8 k4 A) f- \; Kinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
8 Q0 _( r! Y' H' p" `% L1 z) @, i) cinserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));" Q  {+ c8 L' g: {1 ^/ ^3 \2 G
//卸载实体) B- C, Q6 ]% x0 N9 q; W7 x) I: n" `

* D% U- b% U5 R. S  d  cdispatchtasksequence(ts);                                                          //分配任务序列+ N" u; n/ U: [3 Z

1 H5 ~4 q* `* O' I$ m# g1 lreturn 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列
" D2 F% P. N! j; w2 `+ \" Y' G, u# W
: y9 o8 E9 W  q0 K! D  L
这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2025-5-11 12:39 , Processed in 0.072961 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表