设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9209|回复: 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'4 I5 H+ V; d! Z2 Z/ p0 b; M
*/8 w! v* }5 a! r5 u& N! K- p6 I
is
3 x' L  O) \+ m( M5 [. n; R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 Q0 k4 A$ C. N# E' e7 \
do
9 k3 B0 t1 R4 H3 S        Lan := rootfolder.Internal.Tools.AOLlanguage;2 o4 N* p# Q& x( B7 K# N9 z
        if current = @.Destination -- else return- i2 v2 I- [; F5 u  m5 t7 p+ K4 W
        then
: }- v& [& n% ?! {4 h& u                @.Destination := void;; Y) p& L* s3 w
                if @.occupied then! W" D/ h3 W& m) f
                        part := @.cont;
$ W6 G' n2 V% @. S                        @.transpOrder := void;
4 _* F' y" Q( T# J+ b. i# n                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. a1 O' {$ w9 [8 _# N
                                @,root.eventcontroller.simTime);
* J& Z8 @9 Q. R                        @.HasOrder := false;' D, y7 S7 f6 ?& ^8 n+ ^/ w! V
                        @.DrivingHome := true;
3 W, m$ |* N4 r; ?' ]; G                        rgManager.tryToStartTransOrder;% i9 [# L  h0 x7 N" _8 T
                        if @.Destination = void$ T1 O8 \% c5 R
                        then -- no transport order for vehicle @. T. i3 w3 ?3 Z9 @2 X
                                @.Destination :=' E& z% V: X+ e6 S0 M" U+ p% T# H; V
                                rgManager.nearestFreeStation(@,track.~);
$ Y  k  r0 W: M                                newDirection(@);   8 E) j6 j( h+ g9 m' ]9 {8 S
                                if @.Destination /= void then0 n, ^; P2 }! n1 l3 ]
                                        @.Destination.NumReservation :=
9 w7 l9 x9 V: |- }( S, a                                        @.Destination.NumReservation + 1;; U0 ^3 ~* \( U
                                end;( U  b0 m* m! [: C* p& F) s6 a
                                @.CurrIcon := "drivingHome";
/ y4 c* j0 E% O/ h  V3 A) z                                @.DrivingHome := true;
/ P1 X' |+ e3 u3 v) F$ f3 j                        end;# L* k" o8 u( j( L9 F4 N
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 O7 [  p5 C0 v3 O
                        part := @.transpOrder;# y/ K+ Z# T; j
                        part.move(@);-- load part4 W1 x  a/ I& Y$ r! W
                        @.CurrIcon := "load";
6 e  W0 v8 E0 V8 ^9 O& ?                        GlobalDistObj := part.globDestination;
0 D; E, ]! f0 S5 w                        assignLObj := rgmanager.rgAssignL;0 M" w) c% ], l+ x/ i& E
                        row := assignLObj.getRowNo(GlobalDistObj);
( d8 C7 e  J' p# ]                        if Row = -1 then -- since 70% S+ s/ u7 w: S9 ~7 B
                                if lan=1 then  B6 ^9 H  f4 {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 |& F& O. s9 M) s                                                to_str("in der Andockstation: \"",?.~.name,"\""));  f, ^; O2 z6 _$ i
                                else" l$ p0 x7 R1 m' l/ j
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ p; p; u$ ?1 I2 q                                                to_str("in docking station: \"",?.~.name,"\""));                                : B; v* X, A( j) r+ s
                                end;
; T9 }$ S$ b& B                        else' O4 }  m4 J9 O( t' X% b1 F
                                @.Destination := assignLObj[1,row];
/ R; K# J/ V$ d" I! |9 d                        end;                       
$ L# ^/ ]9 m6 K2 S                        newDirection(@);
) ?! U# k2 _* o8 a8 U9 D                        @.HasOrder := true;2 K6 K2 @# c+ u, r
                end;7 G, s0 B5 Z1 k( D
        end;
. D" y) B' a, H$ B) s) _end;        -- of the method
  [8 R( t5 g) `# ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 ~! X( j& ?7 Q9 g2 F+ k" P
2 d4 Z  A, ?6 l# |( W这是AGV_putin中arrive的method。3 r. Y0 L0 ^5 n0 M& E" H

" k! [" d8 F1 R. O; t' u当到达物料速度越高时,这个报警更多,
% w4 Q: ^3 m9 Y) A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ v3 b  E, o6 a4 g0 N: ?: `0 Y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: D" i- N, Y# `2 K3 o* c# |2 v

8 O* Q+ }1 F5 `( P% Y5 [0 z另外一个小建议,就是move,所有的move都可以这样6 ^# ?* X3 `( B
if not move() then debug end# ^* F( l$ [1 h2 q" `- ?: R$ @
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 `' U! N/ _% h9 Mplant simulation中的free libraries有AGV模板,4 ~' d3 x) O, |; |  Y/ ?3 W4 z
里面也有案例。8 a% Z5 M1 A( L3 Y
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 A, v) c8 L0 E$ O8 |# H
  c9 I9 ], s* R8 D. `, ?
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 ]' `# H0 g0 z# ~6 Y6 w3 c# D! t9 R" I  M" J
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 i( w  e% F- {
这是AGV_putin中arrive的method。
& p8 z* h# ?" d3 k  B1 o3 f% x  x0 M+ A. I$ ?% u
当到达物料速度越高时,这个报警更多,

# Y1 `" a7 Z4 I; b另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-19 15:25 , Processed in 0.018794 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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