全球FlexSim系统仿真中文论坛

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

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑 2 V( v* U7 p/ g. N* ]$ I, ]
! j; C& x7 Z' e- q+ i) K
这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?8 B  Q4 V2 W+ ], ]: N
3 B& |3 W/ z# T! @8 y' I0 W2 S
treenode item = parnode(1);
6 ~0 w" p7 C$ m; ~# m, x5 }3 Vtreenode current = ownerobject(c);
6 w/ q) y7 _9 a$ f8 Zint port = parval(2);1 M3 L7 Q$ A( v  q) Y$ H
1 D. r: c3 s  T/ B  J! T- a
treenode ts = createemptytasksequence(centerobject(current,1),0,0);
  ?5 _1 K& R6 q$ \( w8 x2 s7 X% v( G9 _5 S- r: }; G
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);4 E% G9 Q3 |  Q+ E, M7 a' C( a
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);
+ s9 P3 A3 F, V# }: [3 k, E/ `inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
: h1 {9 S4 m6 l6 c& Q# o  \7 ^+ b1 Linserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);5 N) x. k; [& ~! Z: }9 }& K& l
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);& f$ C3 z/ }1 U$ k( }
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
8 e4 I8 {, ~3 _# b6 N' s; J3 x8 @- u
dispatchtasksequence(ts);8 s# z* U( x. R0 d$ d
, x2 C# J8 y. 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# 慧娴亚伦
' S2 o* U1 X! p5 H, F- T
7 n' v# ^3 l0 U- H+ n; Q, w* w6 ]1 P
报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑 " }( N& j& P% U$ M) c
$ G, L& a; H8 K+ T
3# 啊钟 就是这个4 Z+ V5 J0 M1 R: x, @$ x, \+ N
6 W  w! {, s' N( Z
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦
. \' Q' H  E# \# [( ?4 H6 t
( N+ X8 b! T" ^  X6 A2 U" i+ y% U& [' }' `7 a9 p0 a% U
我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了
7 {/ b( e  g; s0 ^
0 F0 ?$ q2 W: A) U7 Ftreenode item = parnode(1);) u8 A+ [) b: b
treenode current = ownerobject(c);; t# ^9 P7 n3 Y4 g" ~
int port = parval(2);% H6 |- w% o6 c, O! \# q: e

( @4 p) C4 R+ d5 q4 F3 B' R  itreenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列; q7 j1 _' o* S- V
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列
& `& t7 ?0 `8 ninserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒- l4 ?& |7 w+ @6 L  w) z
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体
" }: t8 {* V4 o. t! I- Q9 Yinserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列  W! K9 z$ R7 I  s2 v" d& J
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒( ~9 E# y% b% `
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));+ l) o! y7 D; d. o6 |
//卸载实体  w2 o9 O: W6 B. O# Z  n
6 f) i# h  h# ]* _
dispatchtasksequence(ts);                                                          //分配任务序列6 }0 q/ H8 y4 i+ B( u
4 @: b# Z6 s& W" p
return 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列. c: d* h% {& y: E, ~
. a9 Z3 \. P+ P9 G4 D

9 A" }: i8 D2 ~这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-6 04:20 , Processed in 0.075590 second(s), 15 queries .

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

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