全球FlexSim系统仿真中文论坛

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

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑 9 Q$ P- _) i$ s* n* F/ n

) Y# l- s+ T/ o% v, C这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?: n+ k; |: M- d3 |

& @. ?7 |. ^+ ^* s, j/ Itreenode item = parnode(1);$ P6 q, Z$ m  G) R
treenode current = ownerobject(c);" A& T0 q3 g' q7 ~8 {
int port = parval(2);& R& u/ t6 N3 q8 W8 L/ q

5 D; b7 T, k6 `9 \treenode ts = createemptytasksequence(centerobject(current,1),0,0);* C3 W8 Z; C/ v8 [, P# p# q
5 Y9 S4 W3 M2 O: s
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
4 w3 K4 U8 C0 d* m, G& jinserttask(ts,TASKTYPE_FRLOAD,item,current,port);. H; z% X7 q5 R6 E- @$ S# D$ B
inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
. e% C0 d3 L* q$ o! |inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);
: W9 q+ {: `, x3 S' yinserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);9 }9 g5 i" L/ t0 ~! h. a9 V. W: I6 r
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
/ N" h' Y1 c8 w7 m1 f7 R, Y
5 \; {9 |$ K% S( Idispatchtasksequence(ts);" q' @  C! ?: s- a
. r, E3 u0 u' y7 F  N
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# 慧娴亚伦 ! m, q9 M/ C: ]: J

2 I; f5 B) a' A) Z( \  o" Z  U  F* \/ ?3 q, U6 c
报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑
% h! Q. H$ Q. G4 {( N7 _( y/ x! o+ B" G. G$ X( j$ {
3# 啊钟 就是这个
5 r# g, r2 E" F, b+ ]1 U/ f+ R" C$ g  x+ E! U
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦 7 _, T5 ~7 e: v8 O5 @0 n
5 Y# H8 F, m( k

+ E/ t0 X: @2 O9 t7 f我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了+ L/ x5 V) \- s. Q: O3 ~/ H7 B

; R& d. R4 |, O0 U" `treenode item = parnode(1);6 l7 |2 d% o) c: f- t7 N0 u
treenode current = ownerobject(c);! R# j0 E( @; _( a6 l6 S7 L/ v1 U
int port = parval(2);
8 Q% k/ g& U$ i5 z1 p  G; [# G
7 f' Z& G# |: H, g& n0 w( ~treenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列* d2 j' c1 }6 `% I8 T) G. B
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列
' ], {* Q" x3 a3 q8 Sinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
, f% L5 {; G5 G9 n  uinserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体5 I6 Q3 g' Z: ~9 X8 m5 e
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列9 `. F4 _" ^& x0 y
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒* _$ Z5 v  K4 ?% x* f
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
8 d+ }6 c+ d' W5 ?: G. k//卸载实体: e$ \8 h+ _5 F2 Y

/ ~; K" J& d1 I$ I9 u' _  Z9 Udispatchtasksequence(ts);                                                          //分配任务序列$ A/ }6 P! v/ \: }
5 q. j- y8 N. f" ~7 [7 t& R
return 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列0 u% F. G/ I3 W8 m% c9 N. z- x

  d7 K$ H+ r) r: @' ]2 o! \: d) L" }6 O  x
这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-6 03:55 , Processed in 0.069379 second(s), 14 queries .

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

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