设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8659|回复: 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'
' V) ?( z! G  l( V+ c. i*/9 m! E" \+ G0 H$ w
is4 L' p7 w9 H( u& a
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. O3 d& _$ X" Q! V; k: T  tdo
- o6 W6 W) O) D$ W0 n9 M        Lan := rootfolder.Internal.Tools.AOLlanguage;+ X6 i5 j2 I9 q
        if current = @.Destination -- else return9 x% @* ^! ^$ e# M; d
        then
$ a' a$ ~4 d1 j! L1 k/ H                @.Destination := void;
# S1 Q- j3 T1 o) ]+ U9 K  O                if @.occupied then
6 \& L9 N0 K$ x) b1 u) ~4 L8 g' O                        part := @.cont;" I) A* ]' c0 N1 D
                        @.transpOrder := void;
4 u% C  W( P6 B4 }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# O" r8 H: e' M8 B: p6 h) z
                                @,root.eventcontroller.simTime);) O, L& Y9 A+ p
                        @.HasOrder := false;6 F" Y  \( L$ P6 V) b, I$ }# L
                        @.DrivingHome := true;
$ q6 \- P( y) Z- H! l0 N                        rgManager.tryToStartTransOrder;8 j% {+ {. `0 ?# f/ Q
                        if @.Destination = void
/ i6 g$ P, P" ]  ?1 p                        then -- no transport order for vehicle @
8 _+ }7 s1 C+ O& l$ l0 G                                @.Destination :=
4 g6 P+ d+ ]$ n  B4 t7 B                                rgManager.nearestFreeStation(@,track.~);
' S& p9 k7 L( i: _6 u! |                                newDirection(@);   
& ~. u) K* c. ]' C' B" y$ l6 X7 c3 {                                if @.Destination /= void then- Q* a( I! _* q$ ]7 V$ i, v, m  N7 {
                                        @.Destination.NumReservation :=: l) c$ d" Z' T9 [
                                        @.Destination.NumReservation + 1;
' p2 u# _* ^+ F                                end;
7 s8 e. _3 y$ e                                @.CurrIcon := "drivingHome";
$ s: N& E8 ^  a* E" y* l: \                                @.DrivingHome := true;1 Z$ i- c4 ?( q2 N3 Q2 L3 o
                        end;
! E+ e1 D, u& q3 y- ]                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 q' w, f# p: x; c+ S0 @                        part := @.transpOrder;
5 n! W" Z( A$ u% |                        part.move(@);-- load part. x, {! r" |/ z: m  w
                        @.CurrIcon := "load";5 f" B* p& s" Q) C
                        GlobalDistObj := part.globDestination;! a$ P6 F6 B" P- {4 K
                        assignLObj := rgmanager.rgAssignL;
9 t7 j0 K( M  j9 {8 c5 r$ c5 A                        row := assignLObj.getRowNo(GlobalDistObj);4 L( {0 X2 g, J' c" R  O: K' P
                        if Row = -1 then -- since 70/ U& g( l- t. ?" Y" E
                                if lan=1 then; A  E2 X1 _) w
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 X& `8 H; ]" A! S$ v/ M
                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 g5 d$ f" \4 b  n* d2 S
                                else. E! A' a& y! }3 u
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 p5 k4 _1 O# ?3 Q; y) L                                                to_str("in docking station: \"",?.~.name,"\""));                                6 l2 {! [! g) h6 |3 q
                                end;
' c$ M& \5 l# X0 ^* s                        else9 g! u+ D7 T; p; ]
                                @.Destination := assignLObj[1,row];
4 h6 Z0 l( m* T3 i4 f                        end;                       
' u3 t2 H( w( G% d' ^9 l& J* n                        newDirection(@);
/ ?/ F4 a  c, ]4 ~                        @.HasOrder := true;( l% l% j  b) x9 d3 O
                end;" T' M! X6 R4 C: C. N/ Z
        end;
# _1 j9 K! ^$ n+ \3 Q9 }. F  W" Dend;        -- of the method
; d) H# Q/ L. p" z$ Z7 q9 Q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 d) D5 B# }0 c) B

. B" X# g1 J- b+ u) X" e这是AGV_putin中arrive的method。* Z/ h. u% V, j+ U- k' f

2 ~7 c3 z& F- S/ Z3 O! V当到达物料速度越高时,这个报警更多,
' s- l# X% H1 g4 _/ ^- h可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, I3 {0 k+ P! A/ n" j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 N$ y( i1 ~2 w; S" \: E/ Z6 f- y6 g9 T
另外一个小建议,就是move,所有的move都可以这样
6 {) [1 V  c/ s3 a7 L. Pif not move() then debug end
2 Q+ u' i9 Y; o+ Z. S这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 C2 U, b/ b3 a" w) Splant simulation中的free libraries有AGV模板,
/ e. X- k" x. Q5 Z; q* o里面也有案例。
4 `) J7 O* o% n8 P' T5 c4 U我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! ?: P4 D! H, s0 I5 |8 a

& A* Z( X7 q' j$ V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   N7 Y, f, d% y/ E$ r$ N8 ^: `6 S

5 Y9 M- V+ j6 {2 ?& R" W6 t2 A那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % B2 N4 x2 {& T7 z! Y: w: F
这是AGV_putin中arrive的method。7 l) D% M, z! R  E! K- |. c4 q( G

* b) M8 a4 Y& p4 i' i  i' }当到达物料速度越高时,这个报警更多,
: D8 C" h3 o% d+ J. o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 16:00 , Processed in 0.017931 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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