设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10182|回复: 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'
) i" o, J9 l5 t6 B" K  s*/4 s' H: d/ y$ }( [
is
( e/ h+ k8 p, U( V. C$ T5 p& q: x5 j        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( h* t/ e! ?+ z$ ?" ~! H
do' {, a9 F, a6 d* {% u6 N
        Lan := rootfolder.Internal.Tools.AOLlanguage;, w  f& x+ D$ d
        if current = @.Destination -- else return% b. c$ [, H* M, p
        then
) O- M/ u# t6 n1 J- F, D                @.Destination := void;6 l; w' c9 L. Z" Q& `- ~
                if @.occupied then
* m: z4 P! C" L0 F: a                        part := @.cont;' M1 W  [; g0 n$ q  _2 V
                        @.transpOrder := void;
1 U: \$ P: o  [" Q' r                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" k& l$ u3 ^& w                                @,root.eventcontroller.simTime);
0 ~, N1 ^4 S- z+ ~                        @.HasOrder := false;# J4 c8 h. y5 r3 ]" f, P
                        @.DrivingHome := true;: S0 I; f( j3 j4 H7 M
                        rgManager.tryToStartTransOrder;0 r" J5 ~" ?& W* _7 O
                        if @.Destination = void# N1 D- h5 k) ~1 M, P
                        then -- no transport order for vehicle @. v$ w& X) [% S
                                @.Destination :=0 W8 R. J: _, P) x
                                rgManager.nearestFreeStation(@,track.~);
  {( j8 d( f1 Y8 B: @' E                                newDirection(@);   
8 y) U/ I/ O9 ~, Q0 R                                if @.Destination /= void then
! A: B  q# O. N                                        @.Destination.NumReservation :=
0 l8 H' O. _  f- D/ t                                        @.Destination.NumReservation + 1;/ U( r- q% |7 H0 B4 g
                                end;
5 g, N% {8 t8 z                                @.CurrIcon := "drivingHome";. n( r& k! M! L% }+ g; D
                                @.DrivingHome := true;
" x/ w9 ]# Y4 O' Q                        end;" C# W% z9 l4 o9 B/ x7 e  B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 J. e: Q  q: K
                        part := @.transpOrder;8 i) u6 c- N: a8 K  q6 X: \) j9 S7 _
                        part.move(@);-- load part  _/ h+ n0 ^3 Z& ?  I: V& v% k
                        @.CurrIcon := "load";
& ?/ s* N* \6 g* m* _1 W+ f                        GlobalDistObj := part.globDestination;" X- L4 e/ v" h$ n
                        assignLObj := rgmanager.rgAssignL;% W6 x9 f8 x9 V0 Q$ V. J
                        row := assignLObj.getRowNo(GlobalDistObj);# K* `- r" Y0 {7 F9 i! r
                        if Row = -1 then -- since 70
0 G6 w$ x! R7 ^/ y5 E3 K5 |                                if lan=1 then
/ u2 f/ m% Y0 B* g                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),, C8 c  n2 ^" \9 [3 g4 t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  p8 y, V" O/ H! U1 `% _" x
                                else
, P+ {* P" j, A/ N8 \8 S                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# d: J% o/ E9 V2 p. h% u                                                to_str("in docking station: \"",?.~.name,"\""));                                9 K# ~2 c4 z( E6 K4 D, d
                                end;
( N3 s9 H, u9 f$ b: f9 N4 {                        else
1 H8 Z) P, x* K  }- g) R                                @.Destination := assignLObj[1,row];
; o. A6 }; Z5 @& y# T* E                        end;                       
! [  G: C; {' J& V: }                        newDirection(@);8 Y4 }3 b& D% Z
                        @.HasOrder := true;! M, Z$ N) M0 R. u9 x5 u
                end;. Q2 \4 b* F7 e2 d1 \
        end;. B* G; ~/ Z; A! b$ k$ K  h6 f
end;        -- of the method
# [$ O4 G$ F. E# m- ?$ ~, K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 H: B( {, g8 F8 _+ `

  r2 y: o; G+ c% Z: k; f这是AGV_putin中arrive的method。
. q2 u0 `2 V& @0 T6 ~
) y6 w2 ?+ F5 z# C8 b3 s当到达物料速度越高时,这个报警更多,
- y  t5 a0 {8 }可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 r/ o/ X; C6 T" H/ ]) B4 t# C8 d& Y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) H2 P: I8 n, w/ s( r# |9 r0 G+ y
3 W  I& ~+ a0 d8 D4 y0 F( f6 g
另外一个小建议,就是move,所有的move都可以这样% [, M& D7 B' U# \2 d; b
if not move() then debug end- \! _- h3 Q  B6 H) ?( L4 T! B; J" Y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 a/ Y$ P, B! h, K) T
plant simulation中的free libraries有AGV模板,
; T! b, f7 z. t7 c里面也有案例。
+ v0 w! O' n5 }' W我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 m& N4 u; h; P% E" O9 }& m/ N

% e* z5 N4 _0 N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 d0 _* C- X, w2 h* C, D4 {& B
4 l2 I. \4 L0 l1 l  A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 {/ C" R1 H. i3 G这是AGV_putin中arrive的method。. l0 [: u3 j) Z- y1 Q  K

3 o: p' y( c5 l  P. h( t当到达物料速度越高时,这个报警更多,

1 K2 O4 D! I' z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-18 19:21 , Processed in 0.018019 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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