设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8766|回复: 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'
6 y( P* C6 D4 u4 `3 n*/
" U, u4 i, f3 X7 _is
' Y0 k7 E$ v6 l9 [: \9 T& W        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 u8 @8 Q1 a& j2 @8 y: w
do* g, R* z. K. ?0 ^3 G! x# x
        Lan := rootfolder.Internal.Tools.AOLlanguage;: q. t6 i# \8 y/ n  T, O5 g
        if current = @.Destination -- else return
. W9 y5 Y1 A; G1 m  K$ P1 k        then; ~8 T2 a& l; y4 i% J& t) Q9 h4 _& w
                @.Destination := void;
3 G% }8 C# |2 }7 K, l* W- U$ {1 J4 x- q                if @.occupied then
8 Q2 ]0 Z; x* U* B                        part := @.cont;6 {# Q# ^4 s/ R  Z8 A3 e& U; a
                        @.transpOrder := void;' F# n. K6 D* Z# C+ [7 _
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. B& A/ v) `$ T) |( A
                                @,root.eventcontroller.simTime);: W4 l$ v7 O* c; ?, G
                        @.HasOrder := false;
4 w2 w# Y0 M* @* M* ]                        @.DrivingHome := true;
/ m9 P' F( r9 M$ Y( e2 W/ {                        rgManager.tryToStartTransOrder;+ Q0 \4 R+ b  G1 D7 C
                        if @.Destination = void. U( e1 f/ h+ y2 q; o. d1 J
                        then -- no transport order for vehicle @# R, ~& Z5 \, i( I1 P5 U( _* v( B1 z
                                @.Destination :=
6 [; Y; w6 z% x                                rgManager.nearestFreeStation(@,track.~);
5 _( E9 _; S' m( e$ f                                newDirection(@);   ) d" w/ Y. K* M7 ]: F
                                if @.Destination /= void then
6 s- y: W- P' [3 B) L) q  n7 D7 _' G                                        @.Destination.NumReservation :=
, d8 u4 R. b; T4 L+ S9 F. X$ R                                        @.Destination.NumReservation + 1;; j/ _( e  d- B2 _8 K
                                end;
) x' ~2 {$ X, q8 m8 p! A# ]5 D                                @.CurrIcon := "drivingHome";. g' E' m  s: D
                                @.DrivingHome := true;
9 V: o0 X0 ~& O6 C$ K+ l5 r                        end;
& A. `# {; i3 h5 {3 G' I6 y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. w. X. z/ ?% e+ l; k3 k
                        part := @.transpOrder;
6 m3 [* }! X: A4 P+ Y                        part.move(@);-- load part8 y* B: ?6 Q* \7 h8 t: X2 K, Q
                        @.CurrIcon := "load";7 G; [* n6 d# s6 S6 w
                        GlobalDistObj := part.globDestination;
; H6 A( A" ?* ^% S$ [* q$ _9 p                        assignLObj := rgmanager.rgAssignL;
3 @- }& y$ l6 q7 U                        row := assignLObj.getRowNo(GlobalDistObj);; L* f/ v. P, n& u  ?6 s; X
                        if Row = -1 then -- since 70
8 M1 n5 O& P$ H7 D# g( j+ ~                                if lan=1 then6 c" t" D" q$ K5 I9 {7 |, L
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  X3 t9 j( l) h) A! ]" V                                                to_str("in der Andockstation: \"",?.~.name,"\""));, d! O, n7 }  ?; {$ W% [
                                else
! f4 v4 i2 H6 X1 H! S' k, V8 J                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 ?, m1 S, I! A) S' c8 J* @' I" F' A                                                to_str("in docking station: \"",?.~.name,"\""));                               
. `* P7 d- f7 X$ F, ~5 Z9 G                                end;' q+ a+ D+ k: l+ o
                        else* x/ K. Z6 Z$ V; q9 v" K
                                @.Destination := assignLObj[1,row];
+ k  y7 y# u0 d* l# D, A                        end;                       
( d: m9 D# }8 i, Q: Y" c$ q                        newDirection(@);
9 o1 y5 L" B1 r0 y( t4 a" t                        @.HasOrder := true;
9 o& u3 g7 G9 m1 {5 s                end;
& C/ H  O" U* c6 L# m7 l- z        end;
1 {* z; z  q; \; A! [/ jend;        -- of the method! K7 p/ v7 e: e+ N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # x$ T( u* b& ]. @. Y  m6 ]/ M

* f& G$ B# k1 p7 }1 u. {: `7 Q3 f& q这是AGV_putin中arrive的method。
0 I. J6 M4 @6 r4 Y) v
2 k& m2 o; ?+ N' r7 Y) }1 `4 E: Z当到达物料速度越高时,这个报警更多,
- |. @3 ?7 Z7 @可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. ?4 M3 U/ D. N, ?
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 F$ p6 p0 _% D; C% d) R1 W* B

4 ]# ^" Q. g6 v# `; E) w另外一个小建议,就是move,所有的move都可以这样, D6 @. i- P1 D8 g
if not move() then debug end+ P$ M( x. U" A* T
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 H4 e$ O& J2 f- r# x
plant simulation中的free libraries有AGV模板,4 s- H: d5 E2 o6 F. {. o
里面也有案例。
6 ~) r" B5 w; H( M7 N% C; Z: `我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. a# Q2 t6 _6 D

, ]- ~5 W, p$ ]7 G  f我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, {$ K; D+ s' t7 ?; }# c3 }
1 V& v; [. X: v8 L- Q3 {那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 A0 L# V3 ]( j0 q/ ^0 {这是AGV_putin中arrive的method。1 [+ p) w. d/ J
" G8 K+ h2 b  ~; n
当到达物料速度越高时,这个报警更多,

! v  @% C& E' r7 q' ?. O- k, w- _  U另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-25 07:34 , Processed in 0.016328 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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