设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5689|回复: 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'
' m7 J3 d" z4 }4 A- y/ o( ~*/7 f4 _6 g! w" t2 b/ Q
is
. P! O' p! G) t" f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 }, I! U! T" z* v1 tdo: a8 n% S* g1 F/ R3 h( R# l4 y
        Lan := rootfolder.Internal.Tools.AOLlanguage;. {; w, [% `: Q
        if current = @.Destination -- else return
4 y# `: @" ?8 ?* a5 M4 H        then' E, |: g; r5 a8 b; Z
                @.Destination := void;" S& |5 f! G/ K/ H3 d9 n
                if @.occupied then- V" e. T4 D* p
                        part := @.cont;2 J3 A6 R, P; V
                        @.transpOrder := void;/ i# n9 s, q  q' T, Z2 o
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" m1 [" v. K+ v                                @,root.eventcontroller.simTime);
  t% r1 k- o1 \" g8 r) U                        @.HasOrder := false;
. r4 L% b8 |3 i9 h9 A                        @.DrivingHome := true;
. O; n9 k$ ~( O) M                        rgManager.tryToStartTransOrder;) f7 b. u! v3 T& P
                        if @.Destination = void
" C; p) `5 w& S& w& }' ^) S4 O                        then -- no transport order for vehicle @  k9 @+ Y' c5 G% W! I' z" ^1 M8 e
                                @.Destination :=4 i7 y% M5 k6 n" X5 Z# a0 _
                                rgManager.nearestFreeStation(@,track.~);
; A; v* U. @; c/ s                                newDirection(@);   . U( z, E( v9 E
                                if @.Destination /= void then0 S( {7 H4 x& T' o% ]0 {- w5 k
                                        @.Destination.NumReservation :=
) A7 }' P4 P/ o% H                                        @.Destination.NumReservation + 1;
  U% w  D+ _: O6 v- p                                end;
$ n, ~1 e4 l7 r3 V7 k) B                                @.CurrIcon := "drivingHome";
8 H. C, A9 I/ \/ _% T. t                                @.DrivingHome := true;' a& A6 u! l5 B$ g# }. @" ?
                        end;: e( ]5 B. K5 ~! Z  `8 l& P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& V0 L! T* g( ?) j/ {
                        part := @.transpOrder;
8 r2 u" o, ~: q7 X3 H. t& f+ d: P                        part.move(@);-- load part
) y: z) b$ u9 ~  ^1 N* @0 _5 c                        @.CurrIcon := "load";
9 T" d0 M1 {% F                        GlobalDistObj := part.globDestination;: l1 {8 |; }; p% b0 m$ C7 f
                        assignLObj := rgmanager.rgAssignL;
, H( Y8 b$ W! k4 }$ Q0 |8 B                        row := assignLObj.getRowNo(GlobalDistObj);
- y- r* p0 Y1 z) L1 f                        if Row = -1 then -- since 70
! D, M" A8 Y# v1 k                                if lan=1 then
7 b9 H: a7 C  S                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 e9 q4 a8 C( c1 V* r4 O+ {
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) X# w7 x; g7 b6 h                                else
+ N4 N+ o* d1 H% H4 h, T5 R                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, V" v6 o$ |! l4 s# P' p7 v                                                to_str("in docking station: \"",?.~.name,"\""));                                , v( l* h( u9 [- b8 _$ b7 v; a
                                end;
1 i. Q, @7 L" G9 r& O. S! Z                        else* C- x0 j$ \. C( x5 }6 [% P* D- _+ n& [
                                @.Destination := assignLObj[1,row];
& Y* Q, Q) t7 \0 X' f9 i0 j$ p' y: \                        end;                        2 [" M) v) k2 t  T2 G: M+ X
                        newDirection(@);
: R6 h  @: T+ j& G% Q) f                        @.HasOrder := true;
3 y; a% e; |* Q- b4 K                end;' v/ b( c9 }  V; T: a
        end;9 S. @. D; o" T
end;        -- of the method7 Q+ C; g) U. r3 x) |$ n* k  o& X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) t5 A& ?& T4 N% [; J) R; T, v
7 O. r' M$ k# J6 c: ]) m8 M3 I& a这是AGV_putin中arrive的method。
9 B1 e7 b/ n7 ^# |0 y. ]2 S" b; u( f, \  N" e
当到达物料速度越高时,这个报警更多,: k: ]6 W; i6 P" D3 D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- A% q- ?1 U8 i) f- F程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) S# x5 l7 p, V) a6 P
8 I3 P. ?: ]; X( M另外一个小建议,就是move,所有的move都可以这样% c% I" n( ~- j7 [% K) p
if not move() then debug end
1 Q: G/ {  C1 E; y% o( S这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ j% ]2 w! S! w8 [  gplant simulation中的free libraries有AGV模板,# q. y& E, b' i
里面也有案例。9 O& i1 S" P/ x  g7 B7 i. X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 e7 U( R! ?" r. W, j& k5 M$ Q! G, C' C4 w% Y
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 Y, a$ N* Q' c
; `7 ~) Y4 U( p% |9 p' J  g那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 c6 T! \/ N! u& W8 D这是AGV_putin中arrive的method。  k0 [7 K, i) r
. j4 h2 Y8 j4 W  Z5 P6 @
当到达物料速度越高时,这个报警更多,
* K+ Z0 d2 E, o1 }7 w( ]! V
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-14 15:04 , Processed in 0.019379 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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