设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9732|回复: 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'/ H& `( Y( r% L3 Z) y$ X4 z2 R9 [
*/% \' i: |. e# ]3 G4 |
is
0 A% z5 v" |$ }2 m8 @. [2 [& X" r        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ C2 m* @( D& c# o/ ^# e* N' G, r: Mdo1 {" d5 Y$ U0 N; z0 ~3 k: e6 M6 t
        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 {2 E2 P' P9 A: V        if current = @.Destination -- else return
( g( ^" b) m* H5 m        then2 j$ ~4 b2 V  M. q$ P1 Z. s- _+ g
                @.Destination := void;; c9 r5 l% g0 v, [
                if @.occupied then
) u4 m" Q; t1 P% @                        part := @.cont;
* x+ m, ~0 H1 N5 d2 I                        @.transpOrder := void;
1 Y, y0 q  J: }4 B% x' }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: _8 G0 b( m* e0 y; o
                                @,root.eventcontroller.simTime);; m/ h2 H4 u5 k" n; x
                        @.HasOrder := false;
7 e$ l8 R, U6 Q+ J5 k9 ]* {) O                        @.DrivingHome := true;# r: H" T( x; y, E2 \
                        rgManager.tryToStartTransOrder;6 n/ Q& a2 H( |2 q' \9 Q5 P) L$ v: K" \1 d
                        if @.Destination = void& \& n1 h2 b& b5 ]% e9 {4 Z$ C3 z
                        then -- no transport order for vehicle @% H; n' i% U1 _* X$ _/ K2 }; w4 a
                                @.Destination :=
( E4 k$ L. P+ O5 `                                rgManager.nearestFreeStation(@,track.~);, V* V. I* U& |7 A7 L
                                newDirection(@);   
* p2 T: A  }! X7 Q& L3 v                                if @.Destination /= void then: A$ k7 E9 h  M
                                        @.Destination.NumReservation :=
$ G+ q$ a9 O2 Z4 m3 v( Q  Z                                        @.Destination.NumReservation + 1;* y) f0 A3 d  N3 d) v
                                end;
, s9 H! }  P6 `3 [) [8 `( S                                @.CurrIcon := "drivingHome";; V# z% }5 l: C! a: G# `
                                @.DrivingHome := true;- Q. N1 ]6 E+ U# I  [2 V
                        end;
! m' k/ r+ M) J" Y" c4 O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 N/ e7 ]  f( A0 ^                        part := @.transpOrder;
% [" c" ~& W# z% W                        part.move(@);-- load part
* ?' l6 J. l- }8 \4 C7 O' s                        @.CurrIcon := "load";5 w1 e6 @+ ?. Q1 e. y8 S
                        GlobalDistObj := part.globDestination;; s0 F" @6 T& q1 W
                        assignLObj := rgmanager.rgAssignL;! s/ R( n3 Z1 T8 s
                        row := assignLObj.getRowNo(GlobalDistObj);3 P1 ]3 f; A4 \4 N
                        if Row = -1 then -- since 70
" j4 _/ t) e4 _2 j, ~, r+ t                                if lan=1 then
' b, I6 `% ~/ H  j9 ]* q/ O" s                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ A! k+ A3 y; n
                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 a+ X, O6 G' ^% J1 \: R: m! l
                                else
5 Q' Q( L% R. o" L/ b% t& s                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: U4 R# V, D- j/ Z3 W
                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 L* B* S, f7 u3 z  C- y& C# `: S                                end;
: C- g+ U* v, m8 z% z6 D                        else0 Q! v! f% K+ m. t/ U+ I3 O
                                @.Destination := assignLObj[1,row];
( G" N7 ?! ~3 d( u: y/ O                        end;                        3 y' j, k. ^, d) l8 x5 S/ I! Q
                        newDirection(@);
4 M- p, f0 g$ M  Z! q8 ]* J) Y                        @.HasOrder := true;" w" [7 t) U7 T( x' Y# u+ L& s' z5 z
                end;
& {. \: Y. A4 m0 c! V1 {0 {2 v- ~        end;6 ~/ W4 P8 a/ M2 D
end;        -- of the method8 V# c. U) b* {, h  D$ b5 H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; Y, K) i" z- b2 s- g+ {0 b# S2 S
这是AGV_putin中arrive的method。  h% X3 d  [/ J; G- H) Y; x  F

4 W2 N8 g8 \0 A, \5 Q6 ?当到达物料速度越高时,这个报警更多,
+ Z, t) q: D: W! `3 D可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 j% [2 E# X; M5 n程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. }7 e9 J9 f0 ~& V3 S! t- ]0 ~# V& t+ U! D; v
另外一个小建议,就是move,所有的move都可以这样
/ p2 T: D4 u) G/ G% U# Bif not move() then debug end+ d7 w! V9 K7 p. W- ?% |2 a- s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 m& }0 y  v3 `, m' S6 M6 w
plant simulation中的free libraries有AGV模板,
7 h7 O2 b* W  q0 o5 J里面也有案例。* Q% ~1 @8 u  X) ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% G! Y, f/ a! ?7 Y  e. L- A* X: m; g
# q; }+ l9 A( R' K) D7 C! R2 q我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) j& O) s9 O6 `7 g1 T* }
2 {; Q% u, c1 s8 V& Y0 x那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' s- K# z4 X2 B8 @5 `' t. A
这是AGV_putin中arrive的method。
* p$ `  \8 m) p, h# U  @8 g+ ?# z, s( M: D3 n- o
当到达物料速度越高时,这个报警更多,

' U' [( g1 Q( d/ J. B5 y2 W9 X, N另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-21 03:57 , Processed in 0.020847 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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