全球FlexSim系统仿真中文论坛

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

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑
  @% a. s) N9 i  z% b
+ U) x4 }  T  e/ X这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?
) u& r8 V* e0 A6 ^" E" n6 @% E1 G3 n3 R1 J
treenode item = parnode(1);) t6 S" c$ b  C2 |
treenode current = ownerobject(c);$ W* R) ^7 ~+ W$ e3 H$ X1 ~
int port = parval(2);: p/ W& J3 c6 F- G7 [# ~3 o# D* S

: n' g6 X4 V- ]! ~  {; Atreenode ts = createemptytasksequence(centerobject(current,1),0,0);
+ C& B; Y+ e' C* B. ~7 `7 Y: ]$ O9 S: ~$ Z. p1 n2 F! ]
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);8 U6 |" z+ i7 f+ S+ p8 M; d
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);, w' ~  v$ S: H* L
inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
  D. H0 c( p3 l) Iinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);
7 D7 V* V% L; H, d4 D  winserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);0 d0 {# f7 \# G" e9 g
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));5 ^) f. \2 g$ H* ?
" e- B: O; ?$ v/ k* s: Y4 ?# W
dispatchtasksequence(ts);+ C& J# V9 b  N! q; F7 Z) C7 c
( q* R, T$ b7 Q
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# 慧娴亚伦
! j* G9 p  p9 b; _7 a; Y* j1 N7 J, r7 W! ?* R2 w+ y7 g; n+ {6 A
4 A8 v. q; i6 Q) W
报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑
! M9 g9 W9 e, o* V
4 n8 ^3 ?7 X( y2 m) o 3# 啊钟 就是这个
" T, I" {4 D+ i) e5 ~& M$ }$ K8 F1 r0 u# o  s
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦
2 v7 t/ n7 U8 e+ r- a- r1 h0 B0 k2 D; a8 n( q8 h

! q6 N# h8 m, E8 D& X+ h我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了
8 T  J, V5 J- X& h2 a3 h, {/ ~; k$ O+ d4 T- Q
treenode item = parnode(1);
7 [% t- d$ y5 n- Ttreenode current = ownerobject(c);" D- j# l6 w8 o2 d% H3 T
int port = parval(2);# ^# T+ Q8 ?3 K+ N. j
+ h. ^' M1 {. s7 X3 }
treenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列5 c/ i+ g& b8 m0 w* m5 ]  U
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列
! V, x9 q: L* y2 v- g; A4 B# {; Hinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
5 b; U, a0 v9 A8 z# j/ f' oinserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体
6 B# K7 k& t; P5 o. D/ finserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列
" H8 h3 D* b$ [7 g, Dinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
9 R) R3 P3 g: T! {$ Qinserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
/ i4 w" Z5 k' ]. o3 G0 Q//卸载实体
- F/ J; I6 j8 R: m( f3 D9 `, g9 _( i3 l
dispatchtasksequence(ts);                                                          //分配任务序列
3 m( Z* c4 ?0 L! Q$ X& Q$ i8 S4 H1 ?( Z+ j; g
return 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列
$ _7 Y2 i( p1 E+ E1 ?! P  h/ ^  V+ T, n( i

6 @) Q! q0 j* C1 _. o4 z5 Q! u: L* ^这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-10-24 04:00 , Processed in 0.065629 second(s), 14 queries .

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

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