设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6098|回复: 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'
0 @' c. X) }; {4 U" g: v0 v! w*/8 \# N, @  K+ U1 L3 E+ a8 o
is
0 B2 [4 }- P. Z+ ^* @2 G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& r& I; S" ?" A' }7 V. o
do% I- C9 l8 l' g- z6 G+ Y7 F
        Lan := rootfolder.Internal.Tools.AOLlanguage;
, z" F4 V0 _, i5 y& U        if current = @.Destination -- else return3 w9 t3 ?. d7 ?$ a4 \
        then
0 |+ R6 Y! T  x                @.Destination := void;3 O+ |* k4 \# |( v6 X8 N+ `3 {
                if @.occupied then
2 W0 r$ x% h; ~# P4 C2 }                        part := @.cont;
3 K- x1 M* c" t" Q                        @.transpOrder := void;+ i# @5 l: ^' X* T# E
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, a0 S( }6 \+ c. E
                                @,root.eventcontroller.simTime);& y( U1 f& _! _/ U( D. ~
                        @.HasOrder := false;
' ~. D$ ?# W7 b2 R0 Q6 z                        @.DrivingHome := true;7 @. ^8 A5 _; K! y$ u. p) O' d
                        rgManager.tryToStartTransOrder;/ G. W. G5 [) I8 W& D
                        if @.Destination = void& i/ Y# L* D5 u5 U
                        then -- no transport order for vehicle @& E1 G$ @: A- s7 v- v
                                @.Destination :=1 S2 q3 l6 F$ c2 I
                                rgManager.nearestFreeStation(@,track.~);  h4 w9 [1 Q- w
                                newDirection(@);   ! H# H# W: q* [4 D. H; U1 J/ S
                                if @.Destination /= void then. `" O, O7 j6 y
                                        @.Destination.NumReservation :=% g5 |4 U2 I  O/ g
                                        @.Destination.NumReservation + 1;/ p- o0 A) f3 q
                                end;
" c5 W. X' j7 S* v( S0 R                                @.CurrIcon := "drivingHome";
9 S, k3 p* Z; ^$ {9 \                                @.DrivingHome := true;6 ^9 l7 [5 W$ x0 T3 X
                        end;
, y# x% Z1 W7 d  k" I0 `. @8 D* s. G                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 z2 M. F! V& i: k/ x1 F( h+ r; G
                        part := @.transpOrder;4 O: P" u+ d$ b+ J4 v$ r1 P
                        part.move(@);-- load part
3 M' e1 w" l- p+ q% _                        @.CurrIcon := "load";
- M5 r' D+ a" `2 D7 p9 u+ W/ z/ F                        GlobalDistObj := part.globDestination;
. n$ Z5 I4 M  d/ k' P3 d3 l  H                        assignLObj := rgmanager.rgAssignL;, X3 m. x8 B1 k/ U. m2 J
                        row := assignLObj.getRowNo(GlobalDistObj);
. d6 t: x+ `. p4 N$ N0 D                        if Row = -1 then -- since 700 }; m9 G3 B% q* }& e0 R/ q
                                if lan=1 then$ ]5 l6 b3 r; p& f* ^4 R9 a% C" ?1 a
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& p. f. c. r1 r                                                to_str("in der Andockstation: \"",?.~.name,"\""));" [1 ^* X( d* V2 ?) i- ]
                                else
8 e6 x* Y+ Y1 C1 j' j( E8 i% D                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 Z  {0 q, {5 l                                                to_str("in docking station: \"",?.~.name,"\""));                               
* I5 j9 E; V3 D                                end;
, n& J4 `9 A5 e' y/ t% W                        else
, ]: t' W& a4 z+ d% t) @                                @.Destination := assignLObj[1,row];
1 J( J8 q4 Q; }                        end;                        + Y; {2 c7 k7 a+ L' `9 k
                        newDirection(@);8 `, ^( U1 A% U3 n+ e" X
                        @.HasOrder := true;9 o( y; A& |# Z; t2 H4 v" ^
                end;9 R$ V5 |; s- i
        end;
% x+ G3 E& I, y. H5 k' ^end;        -- of the method" g$ [) ], W7 p1 H0 I7 G3 g! a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & ?5 D9 N+ U/ B4 I2 L  \

. F5 g7 o/ w' m: K6 s- G这是AGV_putin中arrive的method。
6 F7 r. d- Z3 X% u: M- ^0 ?. n8 Y
当到达物料速度越高时,这个报警更多,: b: ~' p, ]. j1 X! a" @
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 c6 ~, F- D# L  B
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, I' d* X! _9 y: R  z5 Z! K" x4 Z- k- T4 Z# s: p6 i* |7 ]
另外一个小建议,就是move,所有的move都可以这样
. @! `6 v! W6 f, ?0 R/ oif not move() then debug end6 i; o% |& W2 n# e, m" q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 y, P2 V# N. n8 r' splant simulation中的free libraries有AGV模板,
( l* y* ]! `# U- a+ u里面也有案例。2 o6 r' s  N4 ^- ]
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' K1 d- `3 C2 G+ F9 S1 v6 G4 {& s2 @3 Q0 b, @$ m. O8 q/ s
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, x+ O9 [0 A- v5 l9 Y5 e; E
0 S9 `. {% a5 r9 I/ O那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 h" @( r; E' Y* `这是AGV_putin中arrive的method。9 W3 T' g% `! E

9 w+ j7 m4 m& ^* V5 W, I+ q* f当到达物料速度越高时,这个报警更多,
2 a2 n" D6 Q( S  L4 [! H5 F
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-18 09:26 , Processed in 0.019324 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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