设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9123|回复: 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 M3 t6 W& c7 B  Y1 W*/
+ I' E9 |# C% W3 P" s' r+ Fis& L! P( ?% p) z, y! ?" q
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
' A2 Y4 v* b4 z, N- ?: tdo  d( W) |/ ]$ I: B6 m! v
        Lan := rootfolder.Internal.Tools.AOLlanguage;4 \' y9 K1 r  y' d( P
        if current = @.Destination -- else return
7 n6 j! N+ g8 @0 l& C        then
8 `4 Y- S! s. x                @.Destination := void;; J4 p" p( Z9 T9 X$ N) U+ h
                if @.occupied then
7 Q6 n& ^/ [6 x% d6 o  e                        part := @.cont;1 d3 y" c; h( N, C
                        @.transpOrder := void;
! z/ w, [6 S( }& x% \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 a' {" T% [& K# R; m
                                @,root.eventcontroller.simTime);; c- j: I7 |" g: q2 p0 X
                        @.HasOrder := false;. P+ }3 k3 j: \2 x6 c
                        @.DrivingHome := true;# U! [) R2 q) E# \
                        rgManager.tryToStartTransOrder;
+ B$ t4 q+ O' }9 V                        if @.Destination = void
/ u& ]- |3 @& ~$ G                        then -- no transport order for vehicle @
" s4 n2 G- E/ Y# i8 M                                @.Destination :=9 G; W5 G- ]8 S" g9 C
                                rgManager.nearestFreeStation(@,track.~);
2 L' v/ O% @% D, h' E0 p                                newDirection(@);   
' S5 H! M$ l" P. J4 A; P                                if @.Destination /= void then) t- Y( R8 y4 f. k' [7 B4 s) m
                                        @.Destination.NumReservation :=8 z* o) Y9 o0 F) p
                                        @.Destination.NumReservation + 1;1 r( U# v- k# [/ f. ?
                                end;
+ E, }/ s0 Q: [6 k1 U8 S/ o/ O                                @.CurrIcon := "drivingHome";4 r1 U) U3 O6 Q8 [/ i
                                @.DrivingHome := true;
* ], w$ Y$ V9 Q5 _: R: r                        end;6 V9 X3 Y. ~) J8 ~* m4 ^) y5 v* @
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) h' E7 s0 ^& b4 h
                        part := @.transpOrder;7 R3 v- m4 f" B% j
                        part.move(@);-- load part
* ~; m- |- ?  _4 W: ?$ p                        @.CurrIcon := "load";7 y5 a, ]& Y8 y  J& ]/ C3 Y5 j) x
                        GlobalDistObj := part.globDestination;
1 `9 N4 w% n2 J1 ~- |                        assignLObj := rgmanager.rgAssignL;
& f3 C3 q8 a6 z2 o. \& |                        row := assignLObj.getRowNo(GlobalDistObj);
# S8 Q6 h5 u2 V0 s                        if Row = -1 then -- since 70; O1 Q) M" @% J" O$ x" ^
                                if lan=1 then/ v. z6 y' u0 P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 R; A/ y8 g* O4 Q5 f' i$ |% {                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 {5 l% |3 U6 e, [5 ^& q: L
                                else$ I1 O6 Y2 `2 n# z. s+ S$ c4 d+ A
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- L% O0 O: t, G                                                to_str("in docking station: \"",?.~.name,"\""));                               
" p6 s6 M3 H( a" b$ C                                end;# d; W) n% ?4 S0 v" t+ L
                        else6 Z; t+ O3 O+ [8 z9 W+ i
                                @.Destination := assignLObj[1,row];
1 |8 }' m7 A4 @/ r$ E" [                        end;                        - }$ @: t5 d& L% M
                        newDirection(@);
$ S/ A( Y% t/ h4 @: U1 a( @8 ?; v                        @.HasOrder := true;' P3 S$ H' n9 y" S
                end;, P5 e& z) b1 S; m* E
        end;1 H4 c# p$ k! p6 j: ?+ U4 U& R+ U
end;        -- of the method
8 _9 f- j  \; g- B5 P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # ]% g4 P" Z7 F7 J0 @1 I
: {& U& C" p# u  L
这是AGV_putin中arrive的method。! r' z- [) I& K% ~0 u% S
+ S3 |+ Y( l& I  N2 a7 c
当到达物料速度越高时,这个报警更多,: @6 h3 C8 ^* ^4 C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 F* O9 {2 Z* ], B2 C2 N  w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 C3 c# r4 k9 J7 s+ C
3 ~2 }2 }+ d$ J. z+ \
另外一个小建议,就是move,所有的move都可以这样
: V- ~) @& q; f- R' {if not move() then debug end! Y2 @8 Z$ r' c  F, v
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. O, c/ [+ ~5 [: K3 \, eplant simulation中的free libraries有AGV模板,
9 q* r+ \, ^7 P里面也有案例。& a. i% D% O& J6 {
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. u1 ^! z9 {7 Y; y' E' \0 C+ L
0 i8 u7 U( X9 S& ^: m5 m$ F+ S我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 [- ?0 p, a& W# \
. C3 r! s3 I6 {6 E/ ]3 l9 {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' t; k' h8 K1 X. v+ {这是AGV_putin中arrive的method。7 R: ~) j1 w" ]' C/ ?

0 N6 y3 n  L+ F7 j当到达物料速度越高时,这个报警更多,

; a/ e" s" w3 r' K: Z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-15 00:12 , Processed in 0.018396 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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