设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7959|回复: 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'3 I' o1 O% E, |) p8 V
*/
8 v' s- w' [- `6 D2 }( uis$ u: o6 `% C: O7 F) t
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 L$ O" M. [* g( K- s2 C6 ~' q5 C/ p
do
, z7 L4 p( O2 q- V0 c2 P        Lan := rootfolder.Internal.Tools.AOLlanguage;& a9 z5 h1 P$ q  m3 W8 G
        if current = @.Destination -- else return
+ F+ T  V2 S9 G' ^+ w& h+ h# K- H        then% u# P, Q% s) x
                @.Destination := void;, Q4 F2 M/ I8 C6 W8 e3 L& [
                if @.occupied then
7 O" R! q( J$ U                        part := @.cont;
) S! p: R6 W9 ]  Y8 X                        @.transpOrder := void;( D7 K* Q$ O9 Y# h6 }+ C
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# Q* i( P. G; |1 D0 V                                @,root.eventcontroller.simTime);4 Y( F) f. M6 e, N: |# S  ]9 g9 i
                        @.HasOrder := false;
7 V1 [+ @) z7 F6 I                        @.DrivingHome := true;- [& a- ]- b& Q' v
                        rgManager.tryToStartTransOrder;
: ~; W/ z0 T; ]# ^                        if @.Destination = void$ e" I9 j$ Y, x5 X  O" F% ~; {
                        then -- no transport order for vehicle @8 p8 b! F' w7 b5 g2 \# T
                                @.Destination :=, j+ u* Q" j. t
                                rgManager.nearestFreeStation(@,track.~);
" L9 R9 S# \/ I. l# j                                newDirection(@);   
) R) b; Y- ]( I, W                                if @.Destination /= void then5 }  R2 k0 [5 e
                                        @.Destination.NumReservation :=$ D$ I7 t8 s( L) Q
                                        @.Destination.NumReservation + 1;1 Y9 L7 Z$ U+ V0 _6 i
                                end;# v  g! h9 M3 \7 `) H$ n/ Y
                                @.CurrIcon := "drivingHome";# j3 F5 e  r2 ^# j4 H
                                @.DrivingHome := true;$ E2 K) _$ q: _, J5 B* b, n
                        end;
  v( M" E% g' {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 h4 t- v5 v  o
                        part := @.transpOrder;. H* ~. _4 Z$ w7 ]1 x
                        part.move(@);-- load part/ N; i' M7 g) c* {; Q! c
                        @.CurrIcon := "load";
3 [! W' \# z/ R9 j) \/ j5 r4 Y: h0 D7 Y                        GlobalDistObj := part.globDestination;
4 Y, \" M, c: ^* f1 J) W7 O                        assignLObj := rgmanager.rgAssignL;, z/ D% e! A% n% F+ k, x
                        row := assignLObj.getRowNo(GlobalDistObj);! ]" G- w3 F$ {1 ^2 C
                        if Row = -1 then -- since 70
+ {$ |$ H; D- W# O                                if lan=1 then
0 H; y+ {' _% G' `" J( m5 s3 C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 I% t9 S! f1 R8 }& F                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# P& s0 s, h. h/ g+ q                                else
- F3 Y$ e( N( m4 ?( m! [                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 g2 d/ I: |! l! F. K
                                                to_str("in docking station: \"",?.~.name,"\""));                                9 o2 c# M" V( g9 e1 p0 L2 j
                                end;
9 Y$ L- _$ e: Z6 k+ n) `& V                        else8 ]5 W7 ]7 N+ N) ?
                                @.Destination := assignLObj[1,row];4 r% i- g& q4 ~8 `" z) R3 O
                        end;                       
) o& m; |, e' L( E  G, M                        newDirection(@);
0 a. R' m4 p8 |3 F+ E/ U0 S5 C8 R/ r                        @.HasOrder := true;1 @. s- O' K4 a  J
                end;. G) e; P6 M; v1 F8 p) n( _0 d
        end;
& M0 L; M) A* Z* ]( Yend;        -- of the method; \; a4 G  q2 R) A# P3 r. U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 z- W$ B$ }+ ]* j8 d+ v1 f( F+ C
+ Y  U& r/ R& b8 a这是AGV_putin中arrive的method。7 t- B( R& \8 g$ N# C+ o. X( V+ o

0 ?/ C6 G; m" e0 U. ]当到达物料速度越高时,这个报警更多,
, Q5 ^# a  z( l' h# P4 H9 Y% r2 S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, C9 ~$ B' e1 T( ?/ `  }8 o程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! X/ a$ R/ i/ Z9 R
2 X+ d- r$ K& [! \+ A7 o
另外一个小建议,就是move,所有的move都可以这样3 H, o* v2 b3 X, Y! y# V
if not move() then debug end- V% W( G* s) [0 m) x" E0 [
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% w0 w! k( Z! N0 l
plant simulation中的free libraries有AGV模板,8 m" Y/ g  u. ^( C' Y
里面也有案例。
/ ]3 U0 B. S* ]; r0 ~我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
2 E: Z! z0 i& z2 [; l% _1 G. l/ `. B* y6 W
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - t; q+ u" t$ u, L/ C
. k3 {4 W/ U1 |" W0 ^7 V+ a% @5 `
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: N& N; f1 |9 C2 g这是AGV_putin中arrive的method。- V+ M( Q: d" `5 |  Z" W* q9 X; C

& e! _. Q% Y: m7 d8 C当到达物料速度越高时,这个报警更多,

9 }/ \* G9 I7 {另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-7 18:17 , Processed in 0.019295 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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