设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5536|回复: 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'
0 V1 x( Q9 |  ^+ R& Q" Y1 |3 s*/
( g8 l& K2 t5 T5 l$ y+ ois
& \9 Z" ^. R/ m9 {4 D7 I+ h" g( j        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) A& w7 S+ e/ x7 N/ h. Q# ]
do9 A/ r& T) m7 M! p) B
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ o0 D: u$ f5 ?2 Y
        if current = @.Destination -- else return
% q* L, x. U5 d, M8 Q7 n        then
7 G1 `0 X4 B6 T, g                @.Destination := void;; _1 z$ W9 I* {4 m% h7 r' E5 X
                if @.occupied then0 c0 y0 g9 x+ p, p) I- L7 G0 y
                        part := @.cont;9 w! y/ ^; z# }
                        @.transpOrder := void;
) w5 p) z1 {- ^                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 o: j, |. q. L                                @,root.eventcontroller.simTime);
8 w! X) K+ r& A% H3 E, V( f                        @.HasOrder := false;
; A. d% r# X1 ], n                        @.DrivingHome := true;
2 k# R* Z4 N+ k; I  Y% O2 p6 S                        rgManager.tryToStartTransOrder;
" p* x$ O( w' v! `0 w; w0 o6 u                        if @.Destination = void
1 h# h0 w) z$ G6 G1 s9 g9 s                        then -- no transport order for vehicle @+ {( N* V) ^' V4 K  S6 S
                                @.Destination :=: s+ U+ `6 D) B4 x
                                rgManager.nearestFreeStation(@,track.~);  X- W4 ~( I6 j- a/ [
                                newDirection(@);   - a5 W$ A5 H& w, ~+ z9 Q6 h3 C
                                if @.Destination /= void then( S8 n0 H$ S/ A/ g  s4 f1 X6 s
                                        @.Destination.NumReservation :=
7 L  [8 t' ]9 m8 @& n& X! |                                        @.Destination.NumReservation + 1;) `( E5 B6 C! G9 x4 h9 U- l( B7 k
                                end;
" G2 r  h5 p  u8 \( x                                @.CurrIcon := "drivingHome";
# }9 s7 \9 D8 p; R                                @.DrivingHome := true;6 ?# w# x; D- g9 Y' }
                        end;0 `7 m! @5 J% p$ T% y, S2 w2 \( W
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 j- R- i# q" H. k" {' P& Q+ n
                        part := @.transpOrder;& k9 C4 i& E7 g/ X( S6 E
                        part.move(@);-- load part" ^, s* E* s- u$ r* T. h$ _
                        @.CurrIcon := "load";1 ~: Y" g" H7 y8 A8 I  a2 e3 x9 D
                        GlobalDistObj := part.globDestination;7 K# Z9 T! U0 z! V, A, e* Z! `
                        assignLObj := rgmanager.rgAssignL;
2 |+ x! A2 y& E- R  R* ?                        row := assignLObj.getRowNo(GlobalDistObj);6 [! \3 ?) j% ^$ ]2 }3 J2 D8 ~' {( `
                        if Row = -1 then -- since 703 z: g6 Z9 h. G# v# j' d. E' y
                                if lan=1 then* x- Y: ~0 Y/ q4 r) e: ~8 O: n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- m3 t9 v7 g+ g6 }0 r3 L0 u4 [& z6 m                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  ?  |" S% d0 r, b4 g! h                                else
9 k; h( k! q2 V3 J& K/ O0 z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),% `* ?* v5 W! z
                                                to_str("in docking station: \"",?.~.name,"\""));                               
) c1 h, }) s4 @# }                                end;
- n3 h  N. X+ G2 K$ M; W, o                        else
. m  L3 b8 P0 w: E9 c- N                                @.Destination := assignLObj[1,row];  C7 R( ^/ V3 d' B& J6 F
                        end;                        3 B. f3 B( M7 Y- y+ ?
                        newDirection(@);
! k' g3 i! c6 i+ w8 N4 j                        @.HasOrder := true;
- m9 H7 p0 m7 ?                end;
; X4 Z4 A7 j) a! A+ c4 Q        end;
" V" s; u0 T! W/ b9 I* @9 Lend;        -- of the method% }* P/ K9 c5 X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 P9 z  r: h+ }: z- l* g- u

5 n- T' ?. I! @1 i, }( [; T这是AGV_putin中arrive的method。9 i7 c% T) V' B% A4 _- C

. o$ p" C! F. c当到达物料速度越高时,这个报警更多,
: o5 l5 Y0 e! M3 l8 Q# J可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 c5 ]2 m/ t. Q3 g& h# V程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 @3 \1 \6 w- S- g! z/ D2 b& M

! E, @) e7 X$ w: V! M另外一个小建议,就是move,所有的move都可以这样% ], x: b- e% [3 \% a
if not move() then debug end7 F; v6 r8 a8 B8 R, z/ `
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# C- {6 Y9 ?4 i) I0 g/ b. U
plant simulation中的free libraries有AGV模板,
- u& E$ A" |3 E' i里面也有案例。
; f- e6 Y, I7 i我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( p. \3 `% X! O6 a9 g
/ j, U: b) m/ h0 T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( B( A- ?$ g: r  t$ |. ^3 N- s) }) ~  v4 o
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, q  q9 c8 o  W9 O, N( y这是AGV_putin中arrive的method。
' O/ F! c7 ?& E' A% D
2 t5 z; R% V2 B! O  B; [当到达物料速度越高时,这个报警更多,
+ O7 r* b7 w4 ^. }  b% D
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-2 20:29 , Processed in 0.023943 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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