设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5971|回复: 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'
; {* i9 y$ l9 m+ v  w; S  R6 ^*/( {# Q- z! P5 y$ m
is
: R/ d2 E' [0 b        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 ]. p+ F- H/ }) I4 N: \% P! m
do
, _9 O! X  N% H* H* }7 z        Lan := rootfolder.Internal.Tools.AOLlanguage;
' U  ^) I" @4 b/ g+ u& z        if current = @.Destination -- else return3 c: ]- u" c4 Z+ b! i8 p3 `
        then/ P. u( }' D( h2 C
                @.Destination := void;6 t0 [7 E: P  r$ ~6 i% R2 k
                if @.occupied then$ J% _2 ]$ C/ ]6 x! I9 Z
                        part := @.cont;5 Z) S; Q2 }9 c8 r; l7 j* R
                        @.transpOrder := void;3 U, C: f% a5 `# f$ C4 d4 Q
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 d1 _8 y1 T7 v9 U3 \, Z- d/ J                                @,root.eventcontroller.simTime);
) q. W* E' a  d" D% |5 v; @                        @.HasOrder := false;
2 u/ e' Z- q1 k- a1 |1 f( h                        @.DrivingHome := true;/ @  ^9 u1 G) _6 [0 r
                        rgManager.tryToStartTransOrder;% a% n# M' i8 C' O( B, b7 X
                        if @.Destination = void
$ u) X7 `3 k4 b1 G3 B                        then -- no transport order for vehicle @
/ c$ B+ m1 n8 ?6 U  r/ O7 |$ s+ ^9 ?                                @.Destination :=
- D8 x1 j9 y) G, G6 I                                rgManager.nearestFreeStation(@,track.~);  m5 n4 s6 z  K+ q' \
                                newDirection(@);   
. p3 \% v/ {$ b2 K                                if @.Destination /= void then
6 X+ v6 z1 Z+ ?- q8 k                                        @.Destination.NumReservation :=
9 |, n( X/ k: M/ J" _' Y                                        @.Destination.NumReservation + 1;
" Y6 `3 f* b  I5 g4 L                                end;( w, [( q  N5 b+ f
                                @.CurrIcon := "drivingHome";- A1 ]$ ?  O! Y: A0 C( n6 j
                                @.DrivingHome := true;
( |- O8 d( H* S# g* a1 _                        end;
9 [! @- {% O( @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% c$ p9 C# k4 r1 V+ G
                        part := @.transpOrder;# n+ \: O6 Q, W; t$ I$ Z
                        part.move(@);-- load part
- {' R* L  G6 c1 T# A& Z9 V& y0 Y                        @.CurrIcon := "load";+ g7 a! g4 r! B4 T* i: N( o
                        GlobalDistObj := part.globDestination;, x4 |: ]" P4 a& s0 [$ g4 P' Y1 r
                        assignLObj := rgmanager.rgAssignL;- j! t3 e" ~, {, W, n
                        row := assignLObj.getRowNo(GlobalDistObj);
8 f, Q+ f' L8 }' }* x  r8 h                        if Row = -1 then -- since 702 Z9 X+ D. V" x# @; m  \+ n' q
                                if lan=1 then
, R4 J) e9 k' i: y/ f' `/ X' W- {                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% n4 m0 `9 K" X: |" e: [& x8 ]
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' \% G: R: }' b/ Q                                else9 ]' J1 |# p: r  N
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- S1 x  G$ s6 K6 X6 Y9 n! z. O                                                to_str("in docking station: \"",?.~.name,"\""));                                ! a" [4 j( U6 W& L
                                end;
9 A3 g! ?$ V. p$ B9 ~: ^                        else
+ O6 ?, z4 z+ @4 S8 `; |* o                                @.Destination := assignLObj[1,row];
* R6 M" g9 U7 Y2 m5 q                        end;                        , s) P8 t# O8 f" j5 c
                        newDirection(@);
' e" i& k1 s& P6 F  H! O1 `' o' K                        @.HasOrder := true;
- z/ ~1 ?0 {* U! d; B                end;
6 X& o; B1 {! P6 L        end;
& Y" ?9 A' g1 @: L, k/ [% ^0 l. aend;        -- of the method
4 ?7 t$ y" i1 L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ W, Q; O8 F. d: ]! x( y; v* p3 N
" b. W0 S+ b" Y& C8 G# D这是AGV_putin中arrive的method。
5 B1 ]/ M6 ]1 W  A/ B) J( A; c% t' h+ n! Z1 q
当到达物料速度越高时,这个报警更多,; u9 @3 a2 e3 B/ O8 b  @. y0 `9 w  P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 i/ F! X& e+ I
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 L3 a# E( `( Y2 `/ C5 R0 G; {; ?" D4 R9 q! p  ^
另外一个小建议,就是move,所有的move都可以这样) c. e; ?( }/ I' ~2 M* C
if not move() then debug end& X0 A" o7 n4 r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ t: t1 |* F7 F- P' c" ?7 Splant simulation中的free libraries有AGV模板,2 V& g$ Y# D3 s! e& `5 B6 r
里面也有案例。/ e  R* o' p. d6 X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  ^- w/ R( ]# e2 ?
: g( r' O* G6 Z  v5 T2 d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% v. }2 V4 s% ~& z& K5 P1 r! F9 b
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! Z$ ~4 b9 {; R8 ]& v
这是AGV_putin中arrive的method。7 Q2 o. g/ A7 P/ F1 X
' g  V% u% u; `+ l( ^+ E& }1 _
当到达物料速度越高时,这个报警更多,
6 G, m( T  G2 N4 D/ T
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-9 10:08 , Processed in 0.021177 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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