设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6719|回复: 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'
! P. g+ g! E% R( C* O7 [*/8 R& f* M2 F& s3 F/ C6 q
is
0 e* w! c* N4 o) T1 F  U0 n5 F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 [6 s) \. X5 {% z% I& [: Y
do
0 X( `/ E/ Z: g2 T        Lan := rootfolder.Internal.Tools.AOLlanguage;
) _; `1 G0 m; I% \8 r        if current = @.Destination -- else return- u3 }. d6 ?# t  @0 i& X  [
        then
& |- m2 r, b, ^3 j+ o6 j3 k                @.Destination := void;$ s9 E. M7 r& _$ ^
                if @.occupied then- w4 O3 [9 A. O9 n6 s$ D
                        part := @.cont;
& ^5 [9 T" ^+ f5 g! [+ e                        @.transpOrder := void;
/ d) k5 j& D: X, f( f                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 F3 n5 \  n- ?8 Z9 S0 R                                @,root.eventcontroller.simTime);& {0 `5 Y9 h0 @) O  i1 Y
                        @.HasOrder := false;
* e* Y9 ~- [( L! X                        @.DrivingHome := true;& {* G2 R- e/ o* Y
                        rgManager.tryToStartTransOrder;9 L  Z" o6 F  T8 A% F
                        if @.Destination = void
- J" O$ Y0 I1 p0 S( K                        then -- no transport order for vehicle @
2 S8 w4 k$ ~! I' o, I0 j                                @.Destination :=
) q) }$ A" f) R+ H' k                                rgManager.nearestFreeStation(@,track.~);
/ g+ ?# f( d  G                                newDirection(@);   
7 @% o. C3 I4 S. j7 E/ e; [                                if @.Destination /= void then
. `; {; T+ c4 v                                        @.Destination.NumReservation :=) w3 z, I( R4 ~; s% B( b
                                        @.Destination.NumReservation + 1;
- R2 ^" a( L# M; U, L2 Z! r6 _                                end;1 C" `; [. M$ K2 S- d! x3 W
                                @.CurrIcon := "drivingHome";3 i1 M  l; X. N! i) ]; N8 t, E
                                @.DrivingHome := true;% X& @! f% ^3 _+ W; }3 \
                        end;- H4 {- T7 a# x) C
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' D) U3 p8 ~+ K4 `( G! e
                        part := @.transpOrder;1 u6 Z; z5 E3 b* E
                        part.move(@);-- load part
2 v' p( s8 c7 |9 l; _" |& C: f                        @.CurrIcon := "load";
% v% k8 Y0 k" x& K2 z) F5 o2 \                        GlobalDistObj := part.globDestination;, [4 p  h; ?# Z' g
                        assignLObj := rgmanager.rgAssignL;! h( B2 t& F" i
                        row := assignLObj.getRowNo(GlobalDistObj);
1 t! s% j% o+ `; {, W                        if Row = -1 then -- since 70
0 H3 R  |; S6 t4 Y                                if lan=1 then& K4 P" g, x2 p: P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 F) M  `+ Y" j5 a- ]                                                to_str("in der Andockstation: \"",?.~.name,"\""));  k# {' Q- }4 @
                                else
- k, ^. a2 w  q, c2 J                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 P4 J4 R0 @; j+ g
                                                to_str("in docking station: \"",?.~.name,"\""));                                6 v; W; m6 T  G) K" C
                                end;$ t( G4 j; p% W6 {' q, }) I% C9 w& O
                        else
, E' E' r" [, `) p                                @.Destination := assignLObj[1,row];
5 R  {5 D( T# w) }0 Y                        end;                        $ B# A; D: g$ S* n* ]
                        newDirection(@);
) E$ r8 l: e  `( D& I                        @.HasOrder := true;
+ D+ E; D7 v4 U4 n% Z  h                end;
0 |/ d0 K& ?3 h8 t' X# N1 h        end;
, A7 y1 X8 B8 e/ T8 rend;        -- of the method' \9 X5 o; }$ A  Z" h  m# m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & x0 X0 q$ ]9 P4 G' Q3 z) \8 X
& Q5 z/ u( ?& m; c6 k/ |
这是AGV_putin中arrive的method。. `1 w- P" k, B( r
/ Z6 F) c4 f* j6 {" {
当到达物料速度越高时,这个报警更多,
! g/ {3 t4 ^/ M可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 x) q+ v, I, g% f; {/ e, T  S1 S
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- Z: y0 e# _$ I5 e! Y6 t: O9 x7 d4 J: G3 w" a5 B
另外一个小建议,就是move,所有的move都可以这样1 u/ I+ g1 y0 o  ]5 |
if not move() then debug end; Y3 J2 o) Y) g6 l- N4 ]% k* ]& t
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! u4 ^1 L' `2 M6 V' aplant simulation中的free libraries有AGV模板,+ W! s8 {  j) b( b
里面也有案例。
# u. H+ L; _+ o我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 \, K+ Q% z. ~1 `) {  a
9 d/ f( D: }/ Q1 c
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 P  c+ F  |1 X) {5 C0 n

$ A% n6 `! z, y2 L9 j1 m, q8 A那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' M: u6 |. S( h
这是AGV_putin中arrive的method。
' N3 L- a8 W( o$ Y: N& L& i6 k) K/ ]* b7 Y
当到达物料速度越高时,这个报警更多,

" S/ F" ^2 W/ g" R( p* |另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-22 15:34 , Processed in 0.021023 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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