全球FlexSim系统仿真中文论坛

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

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑
! k% D8 v9 G+ B. @! V& S3 \& f; E# H, E0 T! l8 Q
这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?7 }( O7 K% d0 c: F, Z8 }
6 ~/ N" W& E4 o* K
treenode item = parnode(1);
) o  h: d7 v: A  k- Y2 _: Itreenode current = ownerobject(c);
6 ?8 E9 ^* v6 o. Kint port = parval(2);, ]& z4 ~# C* l5 ]8 c

- i' D. z- t, J- _8 M) Q' `treenode ts = createemptytasksequence(centerobject(current,1),0,0);
# n, D4 t# k  ]8 A" j
+ v! i" V  X9 U( ginserttask(ts,TASKTYPE_TRAVEL,current,NULL);+ w3 e6 P1 @3 K% {+ k: f- Q
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);$ p: X6 n$ n) u# t! {% o, F
inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);3 ]' ^2 N4 f- s- |- H2 q
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);- a7 P# \8 H" V6 P* Q
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);  r# G; I3 \  V5 F) M6 W
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));4 y' i5 y* q& Q: \
. b% W* Q0 H4 a# K# Z
dispatchtasksequence(ts);$ ~, ]% u! u$ ~% `, b0 U
1 i$ l; e; B0 o4 @' R, p" J
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# 慧娴亚伦 7 f+ G# U7 s. \" K0 e

! A3 {" E& {4 H
  {+ _. T( K) c+ ^! U报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑
) K* W5 h1 ]7 |) z& D! y0 e" m. m) Z
3# 啊钟 就是这个9 T5 C* E6 r2 v" v

8 \8 f0 ^7 L: P" q, U由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦
- o/ l& i7 |& I' q0 f  x1 F! R
6 O% L8 X2 w/ f- U) A% {/ q& q; d1 p
- q* Y6 K" B& R$ {3 I, `! a+ U/ h我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了$ _' p3 u+ J$ z! o" Z5 E! N

$ f  l! a& a2 M  S% F4 D- a" R. L& a0 u, otreenode item = parnode(1);) Q: W2 [# b2 u
treenode current = ownerobject(c);
. ?6 Y) r5 r# r, T- [int port = parval(2);
5 n3 Y- c7 v3 z* y* ^: R
6 f& }( ^& ?# |( e" C2 Ftreenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列" J0 c  F8 L. H2 a% c
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列4 R! |" L2 C  m3 g# F' o
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
9 j. w* x' Q, `8 y" N2 Tinserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体; e2 ^$ l3 S$ [8 R# m
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列5 z1 o: g  u# u9 l" f7 u
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
" Z6 f6 j1 |- C& m3 linserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
' R. v2 T, e! x* [% r//卸载实体$ e; T" e& Z1 q/ {1 L( O, u  t5 s
# C' `& B( Q; B5 D
dispatchtasksequence(ts);                                                          //分配任务序列- Y% J7 h7 E5 Z

) L0 u# x3 J* N. dreturn 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列7 O4 t- E" {" `! F1 ]

+ n9 G! l; V+ }) Z6 b- e. Y, z. r0 a+ |! ~# A# ]! B, p( L
这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

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