设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6441|回复: 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'
- v% p" _& r0 u9 i*// G" y( ]  j& Z# T
is
% i7 d6 f& f. s; G  Z. e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: p% a3 I8 l  Y' udo% m* E5 k  c! H; L& Z3 B" g
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! X& T/ e4 x5 C+ _2 E$ l# t* C1 G2 m        if current = @.Destination -- else return2 }; G, }' k  P. A, C, L: b. ^+ W. y$ R
        then9 L, ?0 s& p0 E; X2 r7 ~0 A4 }
                @.Destination := void;. x  ?0 r0 M4 x8 s0 w5 h1 e; d
                if @.occupied then4 E2 o5 g7 {/ ~' v) @% Y3 v
                        part := @.cont;
. U! r7 x" s) F  \                        @.transpOrder := void;1 e* s7 _# i$ b; ~1 _2 o% }
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! A. {! X$ F" V$ z! P5 v: s" C" y                                @,root.eventcontroller.simTime);
% N' H) m# L9 n4 _                        @.HasOrder := false;
% v/ C. v  O5 h0 Q+ @9 I3 I+ k                        @.DrivingHome := true;
6 d0 P/ G) X, j) F                        rgManager.tryToStartTransOrder;
: `) ?/ H5 Q- S" c* P) T! h                        if @.Destination = void; h5 ]7 l1 u2 _$ x  q) P
                        then -- no transport order for vehicle @; L7 ?; a8 b; [6 h
                                @.Destination :=7 k8 H: q( l1 G7 `' h) e# K3 P
                                rgManager.nearestFreeStation(@,track.~);. o1 s* a8 y# g6 p/ M+ ~
                                newDirection(@);   5 o; N2 \7 b& `
                                if @.Destination /= void then
* e  Y5 Y; ]: d) W3 W                                        @.Destination.NumReservation :=; f# J  O' L+ p  H) |
                                        @.Destination.NumReservation + 1;% p! P  f8 n/ b* `# E" `
                                end;. I) K% I5 b& \; {1 @+ U
                                @.CurrIcon := "drivingHome";0 y' o& f+ w2 b5 R" C
                                @.DrivingHome := true;6 h- N  B( |1 r! e
                        end;! V: ]/ F% J  \/ G2 J
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ Y/ ]/ }( M3 m
                        part := @.transpOrder;9 I% d2 f2 A: Y1 \
                        part.move(@);-- load part" o6 O1 ^$ p" X% w# X  X9 g
                        @.CurrIcon := "load";
" _5 @2 n& f5 s7 T! K9 M" N; e                        GlobalDistObj := part.globDestination;0 A# Z; F# k0 I
                        assignLObj := rgmanager.rgAssignL;' l+ K7 k5 ^! s: i# P& u& K
                        row := assignLObj.getRowNo(GlobalDistObj);& d% z1 v7 n& ~
                        if Row = -1 then -- since 70
! i. y+ ^0 R9 Z                                if lan=1 then
2 k- ]' @* C2 B; j0 x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! b( X& v2 _# a, v* {                                                to_str("in der Andockstation: \"",?.~.name,"\""));; U! r" x/ o' C6 k9 R% Y
                                else. F9 o# g. m6 e! y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 i0 k  y2 W: E  W
                                                to_str("in docking station: \"",?.~.name,"\""));                                ; D: P; i7 [/ S$ k
                                end;
; s" I3 V- U* t6 A$ o6 I4 ~+ Q7 }2 ?8 [                        else9 y" M% n. {+ y  _  E
                                @.Destination := assignLObj[1,row];' i# l+ t  G: f4 m; Y- ^
                        end;                        ( Q" N5 E0 x  N0 Y+ ~# S
                        newDirection(@);9 m, o+ x- R, W4 g2 G
                        @.HasOrder := true;
1 y+ @9 x! g  u( c) n                end;
  a$ l  k6 ~$ b6 S5 b  S        end;' ?! b) v" e* h7 [5 l3 A! }: q/ C
end;        -- of the method  I. Y5 O( Q7 t( ^" Q# a- t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 m6 |5 J6 ~: T0 Z. x3 X: [0 [

3 M# X2 I, x+ h这是AGV_putin中arrive的method。
$ n$ Y5 \# Y- n& n6 r! ?% V+ k
0 E/ n( H5 @8 m: g0 j9 H当到达物料速度越高时,这个报警更多,: k) Q& w; ]3 j) N) k
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 q$ ]7 f- Y( T程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* `! G  d: x. q  L! w" r5 U+ j4 x; a2 h' E% ?# _; j' A# p
另外一个小建议,就是move,所有的move都可以这样
# ?. s" o8 V6 `" n* v) S* rif not move() then debug end4 _% r+ n/ l# Y( `& `" P: z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ _7 j( p; w: B. {, }' z% U
plant simulation中的free libraries有AGV模板,
! f& J1 S: i* F6 n里面也有案例。( m2 O) D7 H. y3 @$ i3 o  d
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 T( a1 H: }8 [9 z. T' t, F0 o

7 a1 d( c! {6 g( z  k) R! q8 z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- S& W$ K2 ~6 o
6 q% B, Q" n  L/ N) t那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 g3 K8 Q+ l: t& h/ n4 y这是AGV_putin中arrive的method。$ C! T: g% C0 B
2 N* @2 I5 z) G! S' {+ c9 r
当到达物料速度越高时,这个报警更多,
  [( [3 S- H# k# W* O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-6 23:22 , Processed in 0.018749 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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