设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9485|回复: 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'
: K0 v: O2 J* |' ~: I( |! g*/2 o- ~; s( n' {5 x- L" ~8 H
is
1 ^  z# G, h2 ~% U1 h/ Z1 [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& {8 D: F! @% P. W" `" J" ]' B7 vdo4 F3 `0 C1 N+ Y
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ x- Y+ u  ]4 N6 K- W
        if current = @.Destination -- else return2 g6 w4 p8 B5 _1 r. I/ q
        then
* B# ]* \* K% s, {' y% p                @.Destination := void;8 [8 O+ G9 H0 t. h
                if @.occupied then4 i6 r) b' C- g
                        part := @.cont;
. g6 y) K$ `, A! {9 v8 k" _: w0 p                        @.transpOrder := void;) V; U, X: }5 n! H( o
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ C6 y! v: J6 h+ D
                                @,root.eventcontroller.simTime);2 U2 D4 a3 H8 i) I# H
                        @.HasOrder := false;7 `# e+ B! U, S# T
                        @.DrivingHome := true;3 Z/ ^5 C% E/ |  l% b9 m$ u3 B
                        rgManager.tryToStartTransOrder;
# Y7 @- e7 I3 @3 P5 W6 d                        if @.Destination = void
' T! b- R# I" A$ p                        then -- no transport order for vehicle @4 C- P4 \: ~' [; k  T
                                @.Destination :=9 O! _) ~$ T; c% n1 k6 R
                                rgManager.nearestFreeStation(@,track.~);: X" P8 ^2 p/ _' m7 N- z/ M0 w; P
                                newDirection(@);   0 r: w3 u& [7 g% [; y- `, M) e" C
                                if @.Destination /= void then  k/ [7 H5 f, ?5 u5 y* `3 b' V
                                        @.Destination.NumReservation :=4 Y) {" s+ R8 O! Z
                                        @.Destination.NumReservation + 1;' P+ d  \' l+ z! |2 o
                                end;
& S8 s* {/ D: t' \' }0 R) L                                @.CurrIcon := "drivingHome";1 M  a1 x% V# I5 \1 ^
                                @.DrivingHome := true;( H: t, R6 `. `$ E' k  o+ w/ [. v
                        end;
; r- v, D7 L3 \' |# S                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! t+ a% n) |; d( i3 h
                        part := @.transpOrder;( z* z0 i  c1 T" b7 D
                        part.move(@);-- load part
! f7 ^  C3 l) R0 T- s$ m                        @.CurrIcon := "load";6 g+ z1 K0 g- |  G( ]. }
                        GlobalDistObj := part.globDestination;& C! A' C2 o& x! m2 u  B& q
                        assignLObj := rgmanager.rgAssignL;
% e% \9 t4 _; p# H" j. b                        row := assignLObj.getRowNo(GlobalDistObj);
- c5 O' B. X+ V. o0 X                        if Row = -1 then -- since 70
1 i& @" z( q. h! q                                if lan=1 then
! Y2 H: R; I$ c$ X: \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. T* R. }& n3 c7 S# H9 E                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ L$ C% j% u3 b7 e                                else
6 e- X; Q% I! d& |: V7 R& o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) l' n: W' r- Q) Y+ b- i: ]
                                                to_str("in docking station: \"",?.~.name,"\""));                                - e5 t. D* B+ i/ k3 _: ?
                                end;5 R. W' u, L$ R
                        else
( s( p1 V$ z/ {0 w$ I' D0 f                                @.Destination := assignLObj[1,row];
, u9 A0 C! J5 |( B. [# T' {* t2 w                        end;                       
1 u) C" ?: v7 B3 Z2 P                        newDirection(@);) m! V  o( n: n5 J8 e( O9 a  S
                        @.HasOrder := true;3 {' ~! K4 V0 j% `% E7 r% ?2 Z4 h
                end;( c4 N& Y( U4 d" X/ T7 G# S9 S& u
        end;  k  e0 T) c5 Y. S5 K5 v
end;        -- of the method
( ^" `* e! a$ i2 j) [+ x* M, ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! A- Y0 Y- z5 f1 ?4 z

1 b6 A1 r2 M/ u* W这是AGV_putin中arrive的method。
( D. i4 f% H6 a5 w/ f6 a
. y8 O) _) Y' u当到达物料速度越高时,这个报警更多,
% M- \! T. e5 m& Y6 \3 \( i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  `- Y6 d* C; o+ z' A5 K( d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" K! k9 \8 k& ~6 I) j' t4 d8 ?$ b
9 f/ p1 b# {1 w3 k
另外一个小建议,就是move,所有的move都可以这样
4 _. B% a* M7 G8 F( rif not move() then debug end0 v2 y5 U) D/ _7 L, r5 `$ H
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ p: ]" O9 a! p1 g- _' }" H2 v
plant simulation中的free libraries有AGV模板,3 l1 P' j' Q' u) c1 q
里面也有案例。) r! }. Z& H4 w6 k: {- t( |6 O8 z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。+ Q9 Y4 ?* M7 o  W7 y! |) T( d
8 W, }) g6 o1 j+ B# q9 D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , z2 U( f: C6 X5 C; F+ V( ^: }% p
! s( f. G. l3 d) @7 L! g. u* W
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 h4 {" S$ F9 X1 l0 o- x/ D
这是AGV_putin中arrive的method。
! Z# d; K$ q9 s7 \/ e, C7 Y' e1 o' y  a% w* t  G/ [
当到达物料速度越高时,这个报警更多,
8 t- ~+ i: C1 b7 g' T5 w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-3 18:18 , Processed in 0.016584 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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