设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5479|回复: 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/ v6 w8 O9 c4 S5 Y( U/ P0 b
*/
7 |- l+ {: X7 Jis
0 `4 a0 F9 T$ X+ }/ v; e5 C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% \- H$ Y! l, xdo
1 B* P' Q, S) g) x        Lan := rootfolder.Internal.Tools.AOLlanguage;& v) N* a9 q7 p' `
        if current = @.Destination -- else return2 N* k7 }1 r8 ~
        then
& l: U, c  E# f/ s                @.Destination := void;
1 f* I, Y, b2 }& s) F4 g9 `' ~+ M                if @.occupied then
( u% }' P: b/ g2 o7 @8 @                        part := @.cont;
+ y; u: J; h. _' B6 b3 B8 \                        @.transpOrder := void;
- Z+ i/ T: M1 o; k                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 @' q% B/ j- b% Q, E                                @,root.eventcontroller.simTime);* U- O4 V) i- J- A$ J
                        @.HasOrder := false;2 F, x! q) [0 p0 ]* V; W& v
                        @.DrivingHome := true;
9 {- T% y4 |( {: M; q5 a  B                        rgManager.tryToStartTransOrder;! ~1 ?' p, o' S
                        if @.Destination = void/ ~) d, y( S( l9 J
                        then -- no transport order for vehicle @; w  o" V  [+ D1 w0 v
                                @.Destination :=  ~' Z% Q5 x. _
                                rgManager.nearestFreeStation(@,track.~);
: U1 i3 u' z2 V1 T                                newDirection(@);   
1 w9 g/ g! y. h( L7 j                                if @.Destination /= void then, D2 s- B/ `$ u8 i
                                        @.Destination.NumReservation :=. g! _* O4 P) g2 F' c7 }- P, t
                                        @.Destination.NumReservation + 1;
: u" C% W2 L( w8 @  X( O. Z7 f                                end;
/ w+ @6 Y8 w2 r. d+ {4 u0 ~                                @.CurrIcon := "drivingHome";
3 K, u4 K0 h9 `" [                                @.DrivingHome := true;6 t/ d; A* t! c+ J2 D$ \6 M* J
                        end;& j  U  m; [7 ?4 N# U: h+ L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 t5 V0 K3 _7 w                        part := @.transpOrder;( |5 D9 y7 Q( P+ |2 K
                        part.move(@);-- load part
0 w; S# I. q+ j5 [6 K( u                        @.CurrIcon := "load";# O0 _* C3 a( `  o" s- W, s7 b
                        GlobalDistObj := part.globDestination;
# P; o5 F& M' ]                        assignLObj := rgmanager.rgAssignL;# T/ T6 e5 ^' g4 ^2 {
                        row := assignLObj.getRowNo(GlobalDistObj);; z. t9 {" [8 f8 l+ O
                        if Row = -1 then -- since 70. S+ M7 F( t+ L1 o& H& I
                                if lan=1 then
3 R- O0 p. K0 ^1 i. [: p* ^                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 S9 s' e: q: S' f1 p
                                                to_str("in der Andockstation: \"",?.~.name,"\""));% j$ [+ v0 f: T$ f9 d, Y6 x
                                else
/ P9 ~. s' J5 r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( q9 }" k- r+ k0 K& ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                , X) l) A# j' r# @" @( G; D) @
                                end;3 |+ [- C, Q) @+ [0 ^
                        else
  D' I6 ?5 E/ z                                @.Destination := assignLObj[1,row];5 G9 {  V4 g& C. B6 y/ H
                        end;                       
& `: }) I1 e5 j) K0 T                        newDirection(@);
/ Q  I% q& B0 h                        @.HasOrder := true;
$ q6 D* i: i. e4 s5 s5 V/ C1 V                end;: \; h: q7 A/ {& z( s+ P
        end;* T6 t% ?0 V6 [1 |, i
end;        -- of the method& H: q$ u; e7 b4 v" }0 q# z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 W) f; l, {# `7 F

" r; `3 d* ]1 T这是AGV_putin中arrive的method。2 R2 B! ?" n& g! ~$ ~

0 u. X: p4 k, g8 R6 ]5 h5 u& j当到达物料速度越高时,这个报警更多,
/ ~& A+ y2 d( S1 F' o% B0 u) Q可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ G( _! I3 J2 T) r6 G1 V* I8 X9 O( X
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; U6 o& T8 G% N3 R+ D6 E4 A" i
( y# X4 r8 ]& u* K: l- c另外一个小建议,就是move,所有的move都可以这样; s, y) U, B" R  Y  x+ J
if not move() then debug end# P! r& M2 R; X3 F
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 L; e$ V. _3 d  N
plant simulation中的free libraries有AGV模板,
& t& L- l/ X' ]8 i里面也有案例。: H0 c0 P0 i+ ]# L$ E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* p$ V5 E5 Z+ x* F! j& U/ d+ C: T8 ~7 g, m( f
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' b# [: k: v# }, y. N
" ?0 Z7 v) P8 V% a2 C) ]% N% d; E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - A* q; ]' g( c4 O1 j6 R
这是AGV_putin中arrive的method。
2 v( O# q! i; A0 U1 j" A" r9 B; {& R3 @' R( X0 L) e6 ]
当到达物料速度越高时,这个报警更多,

. b2 A) m3 h, x& u7 w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-26 10:59 , Processed in 0.016336 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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