设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7457|回复: 9

[求助] 用AGV模板发生了以下错误,请解!

  [复制链接]
发表于 2011-11-5 16:38:28 | 显示全部楼层 |阅读模式
问题在哪里?

本帖子中包含更多资源

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

x
 楼主| 发表于 2011-11-14 10:37:54 | 显示全部楼层
没有解决,再顶一下。
 楼主| 发表于 2011-11-17 11:03:27 | 显示全部楼层
/* called by:        entrance ctrl of the object 'track'
2 i) |/ h9 s8 L" ]7 l*/
8 H! H4 X9 p% [3 j& ?is
5 L1 `" l, m8 |; Z- W# \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- v' |3 \# T/ L% _) u6 r$ I( Ido
2 C1 z% _7 y9 P' O; q+ g        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 o% e1 z  a+ O4 ~! s        if current = @.Destination -- else return* x, [+ H0 w" t) W+ o- @" W3 R5 q
        then! Q* k2 Q  D" [6 K( m$ P8 s
                @.Destination := void;
" u1 Z& b- a5 ]+ C3 g                if @.occupied then5 f7 q3 ]5 B1 f2 T
                        part := @.cont;. ^$ w! ^3 c( K; t1 D# O$ ]
                        @.transpOrder := void;
, n. ]+ |: ?6 R" d" r$ }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 C' n+ W5 K) P. l, N+ p* v% `
                                @,root.eventcontroller.simTime);5 b$ l* m$ z% H5 w; c
                        @.HasOrder := false;
( N* }' y2 B7 I8 ~                        @.DrivingHome := true;- O4 x* v* V6 A6 V
                        rgManager.tryToStartTransOrder;
. `& @6 {+ C" t/ F/ s                        if @.Destination = void! S' g+ X+ L5 f; Y. {
                        then -- no transport order for vehicle @
1 d  |' F; J: |* b5 N$ p6 X; q0 F                                @.Destination :=
4 q( O& j5 [5 k2 i3 Y7 t! `7 }                                rgManager.nearestFreeStation(@,track.~);
$ L: R( i! u3 V  K0 B1 U. n                                newDirection(@);   1 O; T5 B9 Y- V  p- w
                                if @.Destination /= void then6 j3 I' P' o) z! F: f. a  t
                                        @.Destination.NumReservation :=
8 g; r3 e; `0 t6 \                                        @.Destination.NumReservation + 1;
! M% K% \2 a% }7 z                                end;
7 Q/ ^( `* a! i9 C& m: m                                @.CurrIcon := "drivingHome";8 v+ f9 J4 I) i( l/ V$ |
                                @.DrivingHome := true;% e, e! t* `4 @! d2 N
                        end;
8 s" h% Z9 P  E                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. Z  q2 i  }$ k5 f                        part := @.transpOrder;6 v$ [3 L$ n* @/ y
                        part.move(@);-- load part
: r; r1 h  \9 f: d5 T! j                        @.CurrIcon := "load";2 E- R/ C- X' V  ?( Y2 v6 \
                        GlobalDistObj := part.globDestination;
5 s1 j9 F  Z. {9 [/ G" O! ?                        assignLObj := rgmanager.rgAssignL;
. |! @" r! ~5 E3 c                        row := assignLObj.getRowNo(GlobalDistObj);  j) `& ?& ]0 }; N& Y) [& b7 }
                        if Row = -1 then -- since 70
: n) p- Z1 m  m9 e& Q/ U- p                                if lan=1 then
3 J) z1 f- ]& H! v                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ U9 w  j, ~. u$ y' ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: I) @8 V( k4 l/ J                                else
! t/ Z# Z! x1 A; J6 ]. j( `                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& o" h  Q8 S. v7 E                                                to_str("in docking station: \"",?.~.name,"\""));                                0 H$ a; i/ D# y* @
                                end;
. h+ K4 L4 [  {* g* j  G/ `# O+ ]- h                        else
# O) c3 d" A/ Y" V                                @.Destination := assignLObj[1,row];
, e7 G0 m+ Q/ b/ }* y2 L                        end;                       
% p5 b& K+ c: ^7 o- k" T# @                        newDirection(@);1 a$ @: z, [4 k2 [: U0 V1 W
                        @.HasOrder := true;6 V) e, b$ i  q) O: `4 z" h/ a' @
                end;
: V7 w! ]* ?2 y        end;8 m9 q+ p6 g# K2 m
end;        -- of the method7 t4 _; }$ K" \1 r# D$ |( S* L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 N& a! e" _* }" B2 u1 h
1 p5 o1 C9 Q: C  ~3 o9 |5 p
这是AGV_putin中arrive的method。8 B- ]1 w: z( F; ^& @
1 _2 \$ y: e; o$ D, i# c' C
当到达物料速度越高时,这个报警更多,
5 r# r( w" k4 ]8 z; P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 ^: ^. @+ ^4 T/ p5 V; q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?$ d. B9 A- }" z* ]% c
9 j( ~8 d9 n0 u* v+ a1 Q" T( h
另外一个小建议,就是move,所有的move都可以这样
) h" V& p+ L* N: Bif not move() then debug end1 t7 D# e( [2 X8 ^; i! _
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# i# g+ X! f+ R: h) x0 z
plant simulation中的free libraries有AGV模板,
- e: U, W. ^# B, k: _里面也有案例。! t8 M, c% M9 g7 m9 G
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 J! Y: a. [' ~

/ N: d. {: {7 Q1 P- J3 Y/ n5 M6 V: y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 F! b# x( d: t* }5 R

% k' T! M4 e* Y' ]" ^0 @那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 K+ a0 P3 }( e7 S: O这是AGV_putin中arrive的method。
1 c5 b3 L$ M3 F2 _7 n/ b' _+ B3 z& Z+ X, W4 T  K6 ]
当到达物料速度越高时,这个报警更多,

5 O8 d' d9 H( A6 Y( Y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-4-12 15:01 , Processed in 0.018066 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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