设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7267|回复: 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'9 c( J! k5 a4 L9 k5 k! p
*/9 b# Q1 [7 |5 W! W1 o0 s8 a
is
! U/ ^) F! b4 R4 p5 c- W$ H' j        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& i- S" w4 m9 t5 R& @5 D6 l9 q
do! Q7 ~: _! n7 T
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! h& F+ i9 G# j        if current = @.Destination -- else return
" K# J, ?  a5 t2 S        then5 N+ A' Y6 m# }0 \2 n9 S
                @.Destination := void;7 c  S: p; f' a
                if @.occupied then
8 j/ n7 h6 I1 {  U- ^                        part := @.cont;
, e0 H0 E" c( _/ V! s. j                        @.transpOrder := void;; D3 G% @& r5 {& K1 u
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
; n/ y) u2 D7 n6 w+ G                                @,root.eventcontroller.simTime);" d" X  X8 ]6 F, P# |# ^
                        @.HasOrder := false;" e  G5 ]  K' Z* V0 {
                        @.DrivingHome := true;4 r# e/ i: N( x$ E- w+ J+ e
                        rgManager.tryToStartTransOrder;' e/ {! B3 \9 r1 q
                        if @.Destination = void* V# e$ A& n1 m' E$ i" }
                        then -- no transport order for vehicle @% T) W5 k# y7 @. Z# \4 u3 Y2 h
                                @.Destination :=9 j" `* F, _7 a
                                rgManager.nearestFreeStation(@,track.~);
1 }$ x4 A6 ~& m# Y                                newDirection(@);   ; z# R, C! C- w7 P: n% M6 U
                                if @.Destination /= void then
" F* a4 K% \& x: a% {8 R& b# p                                        @.Destination.NumReservation :=
, h) y* w2 @: ?3 h4 D# g7 T$ G  k                                        @.Destination.NumReservation + 1;) v0 I$ I0 q7 b9 ?
                                end;
; ?' R; y! q  @& B$ b                                @.CurrIcon := "drivingHome";
  e+ u) c( s8 @4 j3 L: ^9 K                                @.DrivingHome := true;
* u1 f/ F) Q, Y                        end;
3 W+ X  Y# W, N1 d) t9 K                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 f8 ~+ E  Z8 }8 S* q4 j+ `
                        part := @.transpOrder;
- U* ^3 J4 X" N% e# f  Q' C                        part.move(@);-- load part+ ]0 g3 c1 e' [% R% t
                        @.CurrIcon := "load";
1 o1 U0 b/ P! i$ \# T: Y# ^1 l6 ]                        GlobalDistObj := part.globDestination;( m/ |& P' s" S$ S
                        assignLObj := rgmanager.rgAssignL;
+ D: o! A8 s! V9 U! j) P7 L                        row := assignLObj.getRowNo(GlobalDistObj);
8 m) P9 H5 B; Y+ G0 s' G                        if Row = -1 then -- since 70
) Y8 m- }- L  E. p* T# [- J                                if lan=1 then
: F9 m% v1 Q7 q8 ]4 V; q" V" K% S                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 S& S- W3 R% q! o: t$ U# r6 [; t                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: D; X: ?# J, I- ~( s                                else( T8 V- \% ]( d
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; p! o; t+ O, H+ H
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 Z9 I) i  K% E+ {+ k1 T' |) o                                end;
+ O  S' j) z) j% I                        else
1 N0 K* A) z* m" B+ X' s% \                                @.Destination := assignLObj[1,row];( j" q% J2 D* h6 _$ j7 H) q# p; r
                        end;                       
; s, B  J/ M4 W* R                        newDirection(@);
! f5 G* v0 d! D% t/ y# B  h* ?: i                        @.HasOrder := true;
: J% k' j! |6 z$ r- @                end;6 S. a$ |/ `$ t% H5 D; G
        end;
1 A9 h% ^" T: Uend;        -- of the method
8 A3 Z! {% E9 B- \& G1 p! c" @6 _1 a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 v- u# P' E* X  h8 ^9 S
1 f2 n- l4 ]( L3 l7 T) l这是AGV_putin中arrive的method。) Q- a. y  v: ?

$ q- \( O( {5 y+ j当到达物料速度越高时,这个报警更多," Q# o8 K6 T. B* t' C3 j4 S
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 ~+ B8 r; X( W6 d1 g2 L% q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 Z0 Z1 E2 z, x+ V1 K' N

2 W7 q- s, p# J6 j8 G; K另外一个小建议,就是move,所有的move都可以这样
$ S+ a  ?  o' y5 z5 U6 ?5 v  a5 v! P0 Xif not move() then debug end
( h/ A5 `+ U  `& J2 i, {/ D: I* l. I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 }( h: a, N4 H' ]$ j1 W
plant simulation中的free libraries有AGV模板,
# w7 Q& }) L( j9 ?0 L8 z# o; i! `里面也有案例。
1 n7 V1 _# R  [! i& j5 A& ?5 [6 H我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* v# b0 R7 A6 h; ?% h: r3 R, ]0 p) R' K" a. J
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 d8 x9 X) P% b9 @
$ e7 J# C2 }% ]- W那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " B8 e, A6 O& }+ s7 a
这是AGV_putin中arrive的method。1 }; p. f. q1 X3 D
6 }3 `4 E6 d! h: ~8 V* D
当到达物料速度越高时,这个报警更多,
9 y' ^$ K: L; D
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-31 19:18 , Processed in 0.020930 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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