设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7899|回复: 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'
8 [! x  h& K* v% s) l+ h6 ^*/5 c* _& Q+ ^! b$ ?
is
) ], S/ h9 \" W        part, GlobalDistObj, assignLObj:object;row,Lan:integer;, d- b. J" j# k
do
. ^9 V" y- [& P  K5 c7 ~( U        Lan := rootfolder.Internal.Tools.AOLlanguage;
' ~! x2 ^0 r3 p        if current = @.Destination -- else return
- U- i- V8 o9 k$ C) q6 {* L& f- X        then
0 J5 l5 Z7 z9 U; U                @.Destination := void;1 b- J3 v$ s9 q4 q: ^5 ?; Z
                if @.occupied then
( q, j9 i7 S5 N4 ~9 h5 M" t                        part := @.cont;; \+ a. d3 l# v8 j5 d8 E  @9 D6 H
                        @.transpOrder := void;9 w9 O8 t, k( k( S; d! U! E6 C
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 C' i# }7 z! n( v8 G                                @,root.eventcontroller.simTime);3 @1 l+ ^! v* L% y; h; u  A, s" _
                        @.HasOrder := false;
% A( x& Y7 H) _& j                        @.DrivingHome := true;5 Y3 w2 q4 f: H, S8 ?
                        rgManager.tryToStartTransOrder;* C% X% Y: i- k& i. m; `3 X
                        if @.Destination = void
& s& j% E$ C/ N                        then -- no transport order for vehicle @3 S) o  d! Z& T
                                @.Destination :=4 g4 L. L- U2 E
                                rgManager.nearestFreeStation(@,track.~);
* }0 ?: R+ T+ \8 r# U' m                                newDirection(@);   0 L' K% i- M/ O6 m. e. }; J
                                if @.Destination /= void then
- c( D) N+ p8 X5 K# ~                                        @.Destination.NumReservation :=
& `. B! C8 P) r  H                                        @.Destination.NumReservation + 1;/ I! X' t: p4 _5 O; b" {# [1 q
                                end;- F/ b4 J4 |8 F& V8 }! N
                                @.CurrIcon := "drivingHome";% r8 l3 H7 ]" m) z/ M, C( }
                                @.DrivingHome := true;% K+ N4 ~& j. e
                        end;9 l9 O  [' [# E5 F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" |3 K" L( _8 W9 _( Z* h
                        part := @.transpOrder;
% u6 g' i3 _9 p) m% Y% @                        part.move(@);-- load part9 C5 ?9 U: F; H# |' r, K
                        @.CurrIcon := "load";  P6 s# M! T3 V& W0 X' S
                        GlobalDistObj := part.globDestination;
( I3 \" y2 A$ R* p# g, m                        assignLObj := rgmanager.rgAssignL;9 g9 s0 F0 J9 ^$ \( _
                        row := assignLObj.getRowNo(GlobalDistObj);5 n0 d. i, e) D( {
                        if Row = -1 then -- since 70
7 ^& X$ E# Z3 W4 J                                if lan=1 then
1 r$ Z' K! P% w) U) N2 L- ^) W# j                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ c8 y: a% E7 E* I# [% s                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' Y! }; t0 z5 v! i8 e# T                                else' y, w, ?# q$ k) P' Q4 V; t
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- d2 t5 s7 }* x" ~) g- f# V
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' k1 @  U  A# q( O                                end;& a! ]; v) O2 [# ~0 f  @
                        else
3 n2 H! |% S" Z8 G5 ~" v0 A3 r! J                                @.Destination := assignLObj[1,row];
# [3 j6 ]6 ^. U) p& O6 c( |                        end;                        5 F$ p9 R4 Z2 g( {' N2 q3 F
                        newDirection(@);7 ~6 C1 S8 b: o* s& P1 U: T; m+ b3 s
                        @.HasOrder := true;
5 ?: p7 \  B. I# X. n% B3 D                end;4 I( X# u8 Z  R! t2 X
        end;5 O) A' h0 W9 m! D( \
end;        -- of the method
4 Q& ^* [) g6 U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , e0 `; k9 T; T6 h* M, x1 L3 Z
& ~- O2 ~/ O9 H) h( s
这是AGV_putin中arrive的method。2 W( D0 X3 J; D8 @2 _3 H" `
  j& U$ F( Y0 E* q$ m# t
当到达物料速度越高时,这个报警更多,
( X; ]8 t+ G- V0 U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: `+ K- p' e8 N2 R4 @程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 Z4 U7 B! v2 F
- F, |9 z9 W4 e/ I9 j- x! w8 n另外一个小建议,就是move,所有的move都可以这样7 x9 O6 T# r$ D. H% d3 C5 N- j
if not move() then debug end
2 N, v5 j3 N! v( v6 F这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ H! g/ k0 d* |- M" z/ [plant simulation中的free libraries有AGV模板,4 k4 w9 N. O4 h) ^/ N- ]+ ~' L, Q
里面也有案例。/ C2 P  P# U6 p, b/ d: K" b
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ w1 m# N/ ?# ^# r5 p. f
8 i# l3 ^+ R# m$ }$ F
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. A9 T# N1 `4 r( x7 v" G/ A7 P2 L% t4 Q4 Q' R5 M. B' O
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 ?0 f/ f; R2 H' B) p
这是AGV_putin中arrive的method。
6 V7 z0 n7 Z0 t; @; v( c6 |4 y$ b8 h# v2 ?9 t* n
当到达物料速度越高时,这个报警更多,
- q/ l4 r$ d- ~: e. r5 o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-4 00:27 , Processed in 0.020312 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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