全球FlexSim系统仿真中文论坛

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

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑
; A$ _7 ?% L* M2 j' w: g! ?$ h" t: {2 I# }: ], J
这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?, u+ b, ]- q' l" [9 s
! E6 Y- G5 K" s
treenode item = parnode(1);$ @& ?! I$ C/ B5 W( G
treenode current = ownerobject(c);
# r7 A, W& \; q2 R  n8 ^int port = parval(2);
; b. R* X! y- e9 L' ?% S3 J' _  j, s5 [
: P/ I. j/ y4 M2 I$ o. E, A. a& mtreenode ts = createemptytasksequence(centerobject(current,1),0,0);
9 O% o2 k0 {2 s' e$ f3 {
- ?# N- z/ Y$ r. n9 einserttask(ts,TASKTYPE_TRAVEL,current,NULL);
# \& D" k. U5 F: Q8 Z9 kinserttask(ts,TASKTYPE_FRLOAD,item,current,port);3 G+ M1 V. ?; y) Z3 K
inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);# j; B- o- g2 p+ `; z, ^& o
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);
: A4 j+ J! o5 l. einserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);7 p: Z0 m' b) C- R1 _
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));2 o  [* n) j6 J* y4 d( Q1 Q# ^1 p5 j

- V# P' Z, w5 hdispatchtasksequence(ts);
8 X0 @( p. R" K
8 m4 `% A8 B, w. @& {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# 慧娴亚伦 + y7 X/ I; a' D; a8 H) N

; g5 B% g, s5 i. A, e
( k8 Y8 |5 v5 \4 B. N- @报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑
2 W+ L+ @/ R) o$ X2 ~' v' ]# x9 q2 F
3# 啊钟 就是这个& {2 z7 H$ C8 C
2 F9 X! G1 L* m2 Z/ v9 U
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦
3 `- e- ]0 ^, M5 H
7 t7 Z2 C# Q6 e$ O. J3 ]4 A, D
7 Q3 u, x' N; T4 C' G; o我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了
, `) N, m& v; V, J0 C4 {$ J+ M1 `/ r% o
treenode item = parnode(1);7 d% k7 M$ w' M/ N7 E9 A
treenode current = ownerobject(c);* U+ Y" @1 U& D* O8 d
int port = parval(2);$ W. M; y9 D0 E0 K" G! J2 e
! G8 D. ]/ r0 r: U* _6 @
treenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列" i$ O1 n6 ~6 u( Y$ V1 I9 H4 _' {
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列
( s) h# Z7 i( Rinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
& v2 J$ e5 V7 Y& f+ M* n: Cinserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体; q; }' m1 Q1 a; f: F4 O
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列
& k9 J8 _% j+ e' o" y- Xinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒& @' U3 Q( a8 s8 O
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
% N1 |, ?  M2 X5 G# p" g- R" M3 F, }" A//卸载实体
5 I! B- {9 s; ]! k: m) B
0 O' ?/ [4 k) G2 Q1 O7 b1 ^1 |% ?7 qdispatchtasksequence(ts);                                                          //分配任务序列
. J0 t4 w! w. }' a- h
# [4 o- f/ n4 f) u( Preturn 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列
# e5 N7 j. \: n- R, W, A& S5 y. H) D1 b/ d# r0 |7 H

  a; v2 J% Y" D, j( @; G4 X; P这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-14 10:18 , Processed in 0.084465 second(s), 14 queries .

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

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