设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5541|回复: 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'$ ?/ c. w/ l; {8 E$ q8 v! j  R- Z
*/% n, Q" R8 v1 }) s8 s
is
1 l! X+ G: G, e: c        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. f% J* f8 }' A6 \do" M  i7 W6 A4 _; u' A; z
        Lan := rootfolder.Internal.Tools.AOLlanguage;
- F" l! w- k( q        if current = @.Destination -- else return
6 [; w4 V# ]6 Z$ v% R        then
8 [  M  V6 m, `2 L9 u                @.Destination := void;
/ n( \& N) h5 o8 X                if @.occupied then7 ~; n3 s3 v1 W8 Q1 I
                        part := @.cont;1 `. T, X, g  V* w! {# B
                        @.transpOrder := void;
( M8 g2 I. F- {8 c- U4 Y8 p7 C( i                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ ?6 y2 E" Z# Q
                                @,root.eventcontroller.simTime);
4 P9 m' k* O2 D. }5 @2 v* x; R                        @.HasOrder := false;
4 m5 `+ I% {1 _' t: y) n% T                        @.DrivingHome := true;
) L/ j1 S$ ^. h% `1 U, J                        rgManager.tryToStartTransOrder;
4 m' [5 H! O+ z                        if @.Destination = void
" e' u) o/ V& w# z( C5 ?; R. e/ T                        then -- no transport order for vehicle @+ g! {3 h! S- D3 v
                                @.Destination :=" h' a; v" r7 i+ j' t3 N( s
                                rgManager.nearestFreeStation(@,track.~);* n2 I& t9 y) i( L7 }, U9 h
                                newDirection(@);   - s4 T& P6 q% n
                                if @.Destination /= void then
# @& `4 K. i1 E                                        @.Destination.NumReservation :=
6 Q- M7 w0 m+ M# U( x/ }- b/ R" O                                        @.Destination.NumReservation + 1;
4 k9 t( R/ e7 V                                end;) P, `% V  X, ~$ u& @8 B( S
                                @.CurrIcon := "drivingHome";; {/ W' k. l" q* K! F
                                @.DrivingHome := true;
+ F' T+ @: Y5 N5 ^                        end;
; T- Q6 J- L8 u8 E0 E; ~+ k9 M9 N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ c9 M& K, ?& _+ J                        part := @.transpOrder;) \/ n+ j& M, q& V' o: V
                        part.move(@);-- load part% z( F8 D! m2 P1 `+ Y5 T' |* I
                        @.CurrIcon := "load";
! R. B0 G3 d; t( x4 j! R; I                        GlobalDistObj := part.globDestination;
$ h3 R2 v9 X7 O! s! S                        assignLObj := rgmanager.rgAssignL;, D6 x- d) t1 d& q! c0 }0 `
                        row := assignLObj.getRowNo(GlobalDistObj);9 N- w# E% b* J0 {: i
                        if Row = -1 then -- since 70' C- ?4 z: `. G8 _8 `. y
                                if lan=1 then
) R: Q" v# c% S6 u; W6 @                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* T/ t7 \! g1 S, c3 ]5 j                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% F8 o8 |) J, m                                else
& C- n$ k  _" s, v* P# p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% h/ B; N- U& `; w# U0 P! s
                                                to_str("in docking station: \"",?.~.name,"\""));                                4 G3 \! F; A6 A) N! e8 z& T: _
                                end;
9 h. w! m$ M; S' A! a                        else
. n9 ~: C5 r1 G, h0 A4 L                                @.Destination := assignLObj[1,row];
( |: d" i1 ]" {( z" h                        end;                        6 R. ~8 o$ I, J; [( R
                        newDirection(@);; ?; v) q7 c9 N/ e
                        @.HasOrder := true;, F9 P* K/ Q+ m- }* o
                end;
5 k/ f6 \2 Y/ x0 v7 c( R7 |& k        end;; a6 T3 `- V& w9 O
end;        -- of the method
$ S9 t7 j. X5 K' ~! {5 W* f: |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) Q! [) [2 b& F* t7 M8 U. o
% \- d/ Z% c. ^( Q3 @7 V这是AGV_putin中arrive的method。; ~( R4 x; w* q9 j* L3 ~7 N5 n

& q0 a0 x$ m3 I2 E7 d. |; K* u当到达物料速度越高时,这个报警更多,$ B, e# `: K$ r% l" _4 ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 ~+ N3 F3 C5 h9 Q: V' |
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( ~" c/ Y' }) p& J% \

8 p# Z3 G# C4 p6 p. Z8 H另外一个小建议,就是move,所有的move都可以这样
8 h( i; V9 g) L; Gif not move() then debug end0 M) c3 v) W. [; H( Z+ ?! }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ @- a! @& O1 Q) n0 `
plant simulation中的free libraries有AGV模板,
+ j2 l: d5 P4 m" S里面也有案例。1 c) j% l: l7 \  E1 _+ _
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
: @& m- Z, T% C% K/ o: l
( r7 @) \* p* V1 P3 {# E7 h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 4 G3 R; p9 Z0 n( r# K# |( |6 B! s

% k4 ^1 r2 |4 _6 a( [$ q/ x/ l5 D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( t; m+ x4 y( @2 a* ~
这是AGV_putin中arrive的method。' y& R3 d& k4 @) \
7 L: ^1 Y6 I; ]; l  H: {" O3 y
当到达物料速度越高时,这个报警更多,

$ q! \/ \* v. a' D! ~' y. z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-3 19:05 , Processed in 0.021642 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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