全球FlexSim系统仿真中文论坛

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

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑
' e+ D* }! x( N1 i2 _+ c* D3 l* ]4 L, m9 K# ]( v) [( H
这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?
! H+ F7 H' Q& \5 H9 X4 H* C, e+ o& e7 {0 W  O3 X
treenode item = parnode(1);
; K) n! Y& L0 T7 k. M0 _: Wtreenode current = ownerobject(c);
' s# J2 s! ?, ^, V# ?* S. uint port = parval(2);" D+ H" M: Z0 w; r7 ~

; R. I& n# b# ftreenode ts = createemptytasksequence(centerobject(current,1),0,0);" }  q* }7 ]- e! `& x1 z
7 [" Y% W9 i5 B/ A: |3 ]  L" X. u$ A
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
+ p7 C1 N" J2 d. A! _inserttask(ts,TASKTYPE_FRLOAD,item,current,port);
0 @1 M( h1 E; b% |( F9 H# @inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);0 O: f1 j- V3 Z
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);1 _5 Q/ g3 y% _" @. R& L* w0 U' ~( F
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);
& `- \6 D: @0 J  ^  x1 rinserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
; T; w- q$ ]1 f7 B- h
: |1 d- a; q1 A& E* edispatchtasksequence(ts);! [8 O( N6 n1 q9 l' Y1 ~  U& B/ }

& d3 N: p- y0 m. h- ]2 M/ }+ Z6 [3 Ureturn 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# 慧娴亚伦
2 t4 F" X! H- @$ I3 @1 ?( f2 O
3 v1 d8 b/ B* b1 D+ M; O# n1 K) g* s. z; E- L! F
报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑   f  K! m" ]1 x: m8 \5 B( Q

! ~2 Z6 k1 O# L9 y/ F" a 3# 啊钟 就是这个
( s9 X% G' x: ~
. o6 ~  C$ \6 [4 y3 O( o  \由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦
5 T+ G0 }3 }. p' D6 U4 x% K2 K+ b- l( J( h

0 \4 T" h: b6 S( N. y我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了8 ^2 d4 |& d( _

& B/ M& y+ q8 x4 J2 }  S* V2 Rtreenode item = parnode(1);5 O3 x, h' l. _2 g& b
treenode current = ownerobject(c);4 W* V3 P+ S$ p0 p
int port = parval(2);6 T5 c$ x3 f: a5 ]/ W

( L. Q& ^! P4 Ztreenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列
; L: p; E2 a3 _9 m" P- I/ }  yinserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列
, s. X5 f, ]8 T8 Vinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
  k# A9 T2 y6 J4 dinserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体
1 k2 @* ~$ B: b. w+ Sinserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列$ g6 r/ A  Z1 s1 Q8 u
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
7 a% C8 {; G4 A% o$ [( Binserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));% u' A+ p* r6 z0 y9 f0 J) D. r
//卸载实体
' {7 K) a# Q; j, I
. X7 m) J1 [5 W0 _1 Gdispatchtasksequence(ts);                                                          //分配任务序列
! |+ L5 m$ ]! W. X2 ?& x6 F
# v  p' ~# o: n; ~' S; y% breturn 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列8 K, n! c  y6 |
; X! A$ f; b) u

/ j5 K2 g& z  H这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-29 11:04 , Processed in 0.082108 second(s), 14 queries .

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

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