设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6617|回复: 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'
8 h* B  X$ R9 G5 L: S, r. n' D*/
, `* s; v, p3 F) v  b, @: s- B- Vis
9 Q6 r+ d3 k  R2 Y/ w        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; T. u) s4 i8 E; C8 N: zdo
4 {% E' P5 P) i7 O2 w        Lan := rootfolder.Internal.Tools.AOLlanguage;' j1 ^3 m$ _% [3 i
        if current = @.Destination -- else return% N# W! H3 q: |5 L4 Y
        then
, M- A# F9 i9 h5 s$ Y9 f                @.Destination := void;" z2 x/ v* i( |/ h/ X3 |
                if @.occupied then  Z: Y( a" r- ]8 R" X/ C! M3 A
                        part := @.cont;
3 g; e0 d7 B9 A  D: X, H4 o                        @.transpOrder := void;
$ s# E" Q1 y( Z2 Q1 l                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! l% D1 B- X/ l+ _: ?
                                @,root.eventcontroller.simTime);# ?2 m) Z/ [- [+ L6 |( i4 J5 G* C4 m
                        @.HasOrder := false;7 R$ J' D* ]2 l6 S: M
                        @.DrivingHome := true;& T: Q* E4 j: a. q6 K
                        rgManager.tryToStartTransOrder;6 P; u0 T/ t: _% s# |5 l
                        if @.Destination = void' J% M: @% @9 t9 \
                        then -- no transport order for vehicle @& o; U5 r6 r8 p: T: V
                                @.Destination :=; Y: y* m' K' C9 @0 B8 J
                                rgManager.nearestFreeStation(@,track.~);
* o! u8 Y- |: Q) l/ B                                newDirection(@);   
% a1 V4 F+ O: ?                                if @.Destination /= void then
; Q4 Y. C) Q- w6 W# m* F                                        @.Destination.NumReservation :=
+ O  E# L/ x+ v0 j  _7 ~/ }4 h                                        @.Destination.NumReservation + 1;
! C0 v2 U1 E, V: q6 b                                end;
5 m& t) ^1 _/ j0 M# N                                @.CurrIcon := "drivingHome";
# ~. j$ |8 i1 s+ ^9 m                                @.DrivingHome := true;/ v/ J" Z+ U' W! r" u' S9 t3 ]
                        end;
2 R7 C& ?- s7 c/ x                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  K" O* u% }* t; y8 P$ @
                        part := @.transpOrder;7 r* \" T1 {  f
                        part.move(@);-- load part! O; j4 y# f- y3 s' ~) J% m  _) i
                        @.CurrIcon := "load";
# x/ N* [$ Y1 }, l                        GlobalDistObj := part.globDestination;! W; I1 i" r( _+ h( M- S+ s5 S3 J% I
                        assignLObj := rgmanager.rgAssignL;
+ @# y/ o* i7 n, O, G( r6 `" h                        row := assignLObj.getRowNo(GlobalDistObj);
/ T, Z3 i5 E3 m' S' ?6 x# W                        if Row = -1 then -- since 708 v: C2 G) H- `, ^5 U
                                if lan=1 then
- U1 {" @3 F) L' {& F* X                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ n4 m+ \* T9 h& E* k, d, F                                                to_str("in der Andockstation: \"",?.~.name,"\""));# L- |% Q/ _7 Q, P" e6 X
                                else
4 \- a2 ?3 S! T) {/ k* s8 q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ m( p+ E0 s3 ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                . M- y! B% [4 I0 g- N: P2 D
                                end;
, T! O: u7 K+ U8 Q+ s+ p                        else
8 _1 C2 L* Z7 O6 }) n! U# Z: N# `                                @.Destination := assignLObj[1,row];
3 @1 m5 V' G4 n3 Q8 z9 _2 f                        end;                       
3 P; C% ~( N6 z; q                        newDirection(@);/ c, M- ]$ o& O
                        @.HasOrder := true;
, S# h7 [% |3 m8 S' n( e                end;
  ]+ U1 f+ B# T7 ]8 J5 \; x        end;2 z0 w( P+ |# ~9 H  k% q
end;        -- of the method
# e! b; j/ e  N8 X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , `* J" ]% w' y

& A# q8 p$ [; r' u8 y这是AGV_putin中arrive的method。
% ^! l! G/ h1 _# T4 `# i$ m& s5 `
当到达物料速度越高时,这个报警更多,6 S( k9 B5 I! J2 N4 }; n8 i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 B1 k, S. m0 s% N) ?程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; B2 ?! K1 x7 ~) H" \* D( n- o2 E/ i7 v, [- J
另外一个小建议,就是move,所有的move都可以这样% d; |9 W- l4 D+ z8 C5 B0 i3 N9 i# `
if not move() then debug end
% w; o% z( g0 v8 E  b. E/ R这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! r; G' h7 V8 E5 wplant simulation中的free libraries有AGV模板,
0 A% m" K9 X& C$ I+ q里面也有案例。6 p3 X, ^, G' M: J7 e- d! G
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& M* o& X4 [# P& U5 a/ m
: z) [# m  h5 \1 W我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 R7 M/ ?9 t$ R+ H: y7 D  ^8 H9 a6 ~% w+ |& B) W: P
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 F1 h. o0 _; q$ j4 L
这是AGV_putin中arrive的method。- V* N6 d. r$ Q" U5 c2 h- S

# U9 b* l2 b2 P. D7 L当到达物料速度越高时,这个报警更多,

& G- t  g8 ^+ n另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-16 13:57 , Processed in 0.020849 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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