全球FlexSim系统仿真中文论坛

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

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑 ; j* i4 P$ s' k! O4 b' v1 D* o
# L( c  ~  @; L- C! o3 _% k, O- V3 x7 c
这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?  ?- ^: g2 P# ?: d+ l

4 J9 Y' N7 f7 p% s# f9 j+ Itreenode item = parnode(1);
( D* i/ L: ~0 Y% Etreenode current = ownerobject(c);. n% u3 \( o9 v
int port = parval(2);
6 u" I+ r0 h+ s- J, E( x! v# J6 V; [2 S! p
treenode ts = createemptytasksequence(centerobject(current,1),0,0);
/ h& W- R$ S+ n  M9 @: o+ c) y! x8 Z. @/ |( v
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
5 \; K" @3 s  ~% Jinserttask(ts,TASKTYPE_FRLOAD,item,current,port);5 ^6 X0 ]! G% a
inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);- f. b4 ?  Z4 ?; u1 a) u4 y
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);' r$ S7 |: n# ?6 h4 c* v. R
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);' d3 N" y- t% m8 Y0 Z( b
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));" g% j6 b8 M5 Y4 ]. q6 G
, @' C  E& G) W+ \
dispatchtasksequence(ts);
# D2 a/ c/ ~/ s2 u! H( Q
) e) D* x! k$ j9 ]' i2 Breturn 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 k5 Y3 ?) F: f* N( \( p3 Q3 y5 B" k! s$ X
& a$ o/ r" s' r
报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑 0 b4 r: ^' G& n2 F
' e* x- n; r. v5 L# q9 A4 y
3# 啊钟 就是这个
7 e: b0 q7 c# t, ?7 _: ?# p; S" B) k  |! Q
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦 4 k/ x9 P9 I1 p% ]. m

6 J0 _: A" v+ B) b5 n0 Z9 e7 b; N, p. ~" N7 |* f" @$ Q
我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了# z! d$ U8 l) e6 W
( o7 `8 D9 j) v  ~% M! ^
treenode item = parnode(1);
2 P. e! }& T8 l6 o, G$ T" g3 D4 otreenode current = ownerobject(c);5 A; d+ K4 |4 [' U* G& G  b# }0 d
int port = parval(2);
& W+ s/ q: U! P% W4 V( V& L0 a& \; M/ m2 X* [  Z
treenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列
# o. p2 E7 p; Uinserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列6 Q* M' Q3 ~- E
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒1 o3 h$ W3 T: h1 E' l; [
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体
6 s! h& @/ X% t# i% i; S( \inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列  k  ]' v$ r0 u* x& H
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
( h- a  m3 i2 \) W, Z) x' yinserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
/ V: L+ j0 T% n$ c//卸载实体7 G: w' A' H. _" C1 z( P
5 _# z1 {% ]! _
dispatchtasksequence(ts);                                                          //分配任务序列
7 |2 L* a, p4 P. G
! G2 C# L' v& z$ s) Ireturn 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列+ K$ C0 x% \+ I% d; W9 T

2 D: V9 r* N* k. e2 {8 ?4 N' K# G1 S1 I+ K) B3 B: u$ D
这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-12 07:00 , Processed in 0.074873 second(s), 14 queries .

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

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