全球FlexSim系统仿真中文论坛

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

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑 8 b3 T/ t4 ^! u3 I# U! ~& R
2 K# k6 ]2 N+ Q8 s
这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?$ l- X. b7 a/ @

8 Y$ v- j6 P' P" F2 j4 T$ Ztreenode item = parnode(1);
& X* n  Z; L' w) V5 i2 etreenode current = ownerobject(c);8 i! Q/ d/ o+ g/ h( N/ E7 i
int port = parval(2);# k: d% S4 O0 C# U% P1 i

# o/ q4 a/ R0 t4 s  B, vtreenode ts = createemptytasksequence(centerobject(current,1),0,0);
/ Q6 `  c) t0 K) z9 R3 b! h6 ~; k
4 J7 B* d* @: |9 k0 C% binserttask(ts,TASKTYPE_TRAVEL,current,NULL);
6 x& F2 b; J+ m. t8 D2 }3 l9 Xinserttask(ts,TASKTYPE_FRLOAD,item,current,port);
! y4 {3 N1 @, d5 P- Minserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);, C6 x! I. _; w; o) {
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);
6 `! V/ I# K; C; p+ Y: D2 Dinserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);' E  @; O2 X! L& G8 P/ [* @, m
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
) ], Y$ s/ @! M- v
% {1 H$ y( d! O, G6 fdispatchtasksequence(ts);
+ j, N- Q0 o- Y) F* X5 H5 E5 n' Q' t, T& K( 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
2#
慧娴亚伦 发表于 2014-5-30 10:07:18 | 只看该作者
单看代码是没有问题,但是需要结合具体的模型中的情况来看,您最好是能把报错截图上传。
3#
 楼主| 啊钟 发表于 2014-5-31 09:13:15 | 只看该作者
2# 慧娴亚伦 3 ^% n# L8 o5 w8 j7 ]) |: O% m; V

+ x/ d, Z4 \8 ~+ v' \' m4 i8 \6 {' }
报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑 ' m5 S' Q# ?/ Y( k6 f/ @6 k

% b2 {  q# ?6 W4 P" Q 3# 啊钟 就是这个% T' t) u; @, E8 o- H8 h$ T/ t6 J* p
& X4 G' S' V* n" [1 e. v
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦 , I1 m  A! L* _) z4 U) d
; z( X+ c8 s+ ^. g5 f3 u, D
" r- v4 P3 h& L
我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了1 T  x7 m$ W( ~$ ]
! B; {% x9 v! s  U
treenode item = parnode(1);6 l; V6 \) ~6 N3 k
treenode current = ownerobject(c);
) B) |8 W' v: eint port = parval(2);
, E0 U# F) x" f; t3 _8 Z9 ]8 K  M; k, q$ ~$ N; `4 `7 E( @$ F
treenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列
! g& i- D. ~, g1 g' _; xinserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列$ {; k* _* V, F& T
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒. o# z' V; ^. y5 Q' O1 Z: [
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体$ A# `9 D* _) i, z! v
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列& ^3 v) m# G( S7 H" k; S  e: I
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
, |1 n0 [) z' Q9 @8 Ginserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
8 ]9 o8 z# \% \0 O//卸载实体
; _, f1 }- Q% t; m+ p" N( l# v8 V, l' q
dispatchtasksequence(ts);                                                          //分配任务序列
1 {+ A( n( B+ B2 G
' q7 S8 x6 x3 Z+ S" f  f1 W% ]return 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列
7 J+ c& A6 v- m7 J! t8 [" W9 ?$ D' N

0 Y. h/ ?" [5 t( N9 W这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-1 14:34 , Processed in 0.077421 second(s), 14 queries .

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

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