设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5584|回复: 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'- R; N& p4 s8 u5 M6 r
*/9 u$ w! m, b+ @' g& a
is" P. h) E; f: _9 I+ _( N2 F; K
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# U# G  w0 l% q; ^2 C! k7 G
do7 h6 s( M3 K! \% [. j' v
        Lan := rootfolder.Internal.Tools.AOLlanguage;9 w! @, D, O" Q1 @. a5 N. m
        if current = @.Destination -- else return9 ^: R; ]+ t3 O  e0 U
        then
) d4 \9 X! v" M+ ^  t4 G8 g8 u; q                @.Destination := void;3 ]- n4 }% S+ u1 ~9 s
                if @.occupied then
0 f4 A* H5 p5 f  [7 U+ h8 z) \                        part := @.cont;2 Y, a7 u+ p+ O6 d0 e# t3 o
                        @.transpOrder := void;; P+ K* J4 q' [- [9 g. _7 B
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% G/ \& J! h+ _
                                @,root.eventcontroller.simTime);! S. A6 u0 A$ \; n  ^" u9 c  W
                        @.HasOrder := false;. G. e" r7 g; \( S' Y" M8 V
                        @.DrivingHome := true;
. m  }9 [7 c: H7 X" z; v+ Q                        rgManager.tryToStartTransOrder;8 h7 m" @, ~5 u7 A. M
                        if @.Destination = void" q: ^* n% y+ Z1 Z
                        then -- no transport order for vehicle @1 e- ?- i; i( q8 z6 j
                                @.Destination :=
) O$ X0 T" ~6 h" L& j' n" |+ G                                rgManager.nearestFreeStation(@,track.~);
  M+ _: R" G4 }6 ^; t! n                                newDirection(@);   $ c  Q: r, e9 X/ p8 q! y
                                if @.Destination /= void then* \+ C; D- |5 l8 j
                                        @.Destination.NumReservation :=# T3 @8 r- \. O+ v% l: x$ ^
                                        @.Destination.NumReservation + 1;$ x( b* p% l* p' p$ C
                                end;% w4 ]+ |; y1 Y: Y  U- s. v
                                @.CurrIcon := "drivingHome";
) G- @& x, i# B- F8 K7 o# k                                @.DrivingHome := true;( ], Y# v4 u% R; o" f$ `
                        end;1 v  C+ \+ r% E6 ]% p* Y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 f& j9 x0 W0 ~' M' s( V4 d* O                        part := @.transpOrder;  N( X4 g. T5 q- w+ d/ _( Q
                        part.move(@);-- load part8 f; D0 k0 A) q* X4 B
                        @.CurrIcon := "load";
1 a8 _0 T: C; ~$ V# {! O* o                        GlobalDistObj := part.globDestination;
2 V4 \) l# z5 I* @2 V                        assignLObj := rgmanager.rgAssignL;
; s( M7 A- X/ b& P% x" {8 Q4 w  S5 p                        row := assignLObj.getRowNo(GlobalDistObj);/ r5 i' r9 X0 w+ x/ x2 W; U7 T
                        if Row = -1 then -- since 70: e* ?, b. p5 j- E8 e/ s! t
                                if lan=1 then
* |* R. |: h, m% h0 J8 b                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 p# D1 P5 X( V                                                to_str("in der Andockstation: \"",?.~.name,"\""));" v: E( w' \$ q
                                else/ x8 f; Q( T2 L' R6 ?, J+ k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: ?1 p# r5 R; u9 G" }
                                                to_str("in docking station: \"",?.~.name,"\""));                               
" @# X8 Q8 S8 P                                end;
$ o* k, f2 F' q, _" X                        else
5 C0 Y  C+ W( p8 k! H                                @.Destination := assignLObj[1,row];( Z4 E6 s7 h: m$ K0 X; ~' i  A
                        end;                        ; s4 }' {; H' t2 Y; e
                        newDirection(@);
5 e! i9 h% s8 @4 M; h                        @.HasOrder := true;
8 a8 r/ C/ T& @* Q5 J. F8 |: f3 u                end;
+ b" T' h3 u7 M5 n  l, }        end;/ Z6 y* ~9 |! I3 T( v) N
end;        -- of the method. \9 a/ U3 l; h0 H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
. u# ^3 L0 ^* B: i9 A. v+ v$ S! h7 y2 N: x  B/ ^+ Y) b+ c3 B
这是AGV_putin中arrive的method。/ B+ s8 R' W0 `( [) o' D# l

& I& u% m: i$ C4 p当到达物料速度越高时,这个报警更多,
! j8 I: O9 r- i5 |' H0 r  U2 g6 T可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  P8 s" o* a" Z6 |: O2 y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' Q! c% I, D  P2 {4 J

# G# c( J: y2 _9 i* Q8 ~: z另外一个小建议,就是move,所有的move都可以这样
8 P( b" q+ D; ^1 T+ l2 pif not move() then debug end
- Z9 o# [& l; ]- v3 P这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( s' c. D" U" J9 jplant simulation中的free libraries有AGV模板,
  M; O5 ?) u5 n里面也有案例。
0 w, K3 ]8 Q; v" s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# l- N) R4 C# e2 _2 j/ G& s
( H, }( ~0 [# [% d" g5 l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- U9 Z# J8 _0 o! `" O8 t0 k9 U" h1 P% k: r9 G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 {# p0 |  h/ \3 }. j: I: c, r. N/ C这是AGV_putin中arrive的method。- Z) Q* r; I" [

6 {! |- Z) H" e0 x当到达物料速度越高时,这个报警更多,
5 E. g$ @' N0 ~  R% t, A: g  Y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-7 07:03 , Processed in 0.019211 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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