全球FlexSim系统仿真中文论坛

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

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑 % N5 A; `  a" J2 t& ~
# L( @" s6 j/ _3 |8 L$ t
这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?
' ^( F6 ?: u9 R. ?5 b' B3 q+ N4 c5 ]4 L: l4 n7 _. S" n) ?3 ^
treenode item = parnode(1);
+ g" Z& a8 b4 }( T- G3 Y1 N& [treenode current = ownerobject(c);
0 L4 Z% F0 y; yint port = parval(2);  @9 ^" O0 Q) a/ x7 t

/ x8 z- b0 Z2 @  ]5 F* n' ]% Mtreenode ts = createemptytasksequence(centerobject(current,1),0,0);4 k5 n: [; ~3 a" }) B5 d

' J+ ~! e9 |9 p- Pinserttask(ts,TASKTYPE_TRAVEL,current,NULL);
, C* l2 K, j8 kinserttask(ts,TASKTYPE_FRLOAD,item,current,port);
4 Z5 M+ v& m1 F1 n; finserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
6 G- U* v9 T2 B+ G6 Yinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);) u, z% w5 z3 s9 |. b' n! U! Q
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);# w) f! Z6 v: F5 G  t. S
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
% W- ~( b8 v7 M$ {, C
  ?/ [( E9 H/ ]1 R5 v: C8 idispatchtasksequence(ts);( v2 {4 ^/ g0 E8 i
% i6 @8 |8 |0 w$ ~  w5 D9 P
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# 慧娴亚伦 9 U1 x# M* G/ r, x& i

* v9 @1 ~9 p. K2 A
' d9 @8 k7 J1 Z" q9 l* K* ]报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑 9 M; ]* p$ h5 h+ A

# A( D! J$ k& o) k 3# 啊钟 就是这个
! M' ]7 r) I) g1 k1 N% b  |
& V! h2 r7 T% J, x- ]由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦
8 c! a4 e. y/ n) r$ c% R6 v. l
- a# F! g# I, S7 `2 V9 F' d5 p$ C$ ~) A+ [( {  Q
我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了+ q$ |4 K# S. k0 y0 o

+ @# q/ S- W% P; ^; e5 Wtreenode item = parnode(1);+ l' i) g$ x/ W5 q3 X, d
treenode current = ownerobject(c);
1 |3 ]7 R, {1 q2 P6 G7 d0 S# T! Pint port = parval(2);
8 \/ i5 ]& P- b2 S+ {, E- X- i! W6 N% g# ]6 d8 S4 k
treenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列$ |# W) y. L6 n& {
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列
- L: [- L4 X) D' h" hinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
- t) j  A1 B2 D: `0 n5 K' Rinserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体: W) v8 m) N( S  S. C4 v
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列+ g5 g+ N2 ^+ ~9 Z& H
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
8 x: w/ P- X! i, Rinserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
4 P3 o8 D; {" _" h' d6 g//卸载实体9 p, z" D7 B& R& p, t

) S1 g9 |- O. B' X, a5 Ndispatchtasksequence(ts);                                                          //分配任务序列( Z: b2 j9 i2 g- ]

" D: z& P* g, V0 S7 creturn 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列: S$ `% h; P/ l1 R

! `, ?% ]! E4 g- H7 u& }/ }) o( r/ Y
这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-12 06:59 , Processed in 0.064543 second(s), 14 queries .

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

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