设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9092|回复: 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 Y7 F1 D3 M, i5 ]) u- c*/7 k( r7 r8 b8 K. [+ c; ~6 e' p
is6 y0 ?  N6 e7 [
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: `5 }5 b: _* Vdo8 w5 I8 F6 y# G" I! s
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 \$ i1 f* v; j2 Z7 j6 |
        if current = @.Destination -- else return
8 @+ u3 y! N4 J; E        then
% m4 w, u. L, f9 b5 L9 p3 L                @.Destination := void;/ B& |8 y8 v  w* O6 J( T: X& P; q
                if @.occupied then$ V4 H0 M* D  y& q$ [
                        part := @.cont;
. t) S# @5 I, M! t2 \5 m                        @.transpOrder := void;$ ~6 I* i* T2 g( f0 t% Y$ G
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  z: G( R* z$ P0 @
                                @,root.eventcontroller.simTime);
0 `# K7 x0 W/ W+ z$ ~4 f6 R+ W                        @.HasOrder := false;
) b* X- \' [4 _9 V' X& ^                        @.DrivingHome := true;7 _; @3 s' m; a2 q4 H$ d( {7 }+ x
                        rgManager.tryToStartTransOrder;& k& R; |  {) n+ d4 @3 i- Z
                        if @.Destination = void7 d- E/ `7 _& s8 B
                        then -- no transport order for vehicle @, _) L& L+ V. Z1 u8 L0 D0 ?' v1 {
                                @.Destination :=9 v+ m/ j& O8 T/ d
                                rgManager.nearestFreeStation(@,track.~);
2 [, y7 G4 o. a                                newDirection(@);   
9 C* l# M4 @$ r0 N8 ~6 e) Z! J                                if @.Destination /= void then
5 t  {2 t" W, [6 `+ }: X                                        @.Destination.NumReservation :=
  d& H/ l) |( l                                        @.Destination.NumReservation + 1;% |7 V1 q2 q3 g9 W9 ^( k
                                end;7 M. R4 T9 I# s+ E- a+ I& O
                                @.CurrIcon := "drivingHome";
+ J+ M$ e+ k% G) I0 ?+ l                                @.DrivingHome := true;8 \1 U( N2 n! z; X# N6 f
                        end;
- F& [" ^. Q( L1 _9 P2 O3 D9 q& v                else -- the vehicle @ is empty, both vehicle and part are in the same dock station, U. B# c4 O0 S4 ]+ `* D
                        part := @.transpOrder;/ f/ }! @; L# G* x5 }& R' R* G
                        part.move(@);-- load part
& q* W& Y) Z8 ?$ y6 h* m7 f: n; T; ~                        @.CurrIcon := "load";& t7 i) J. A2 K1 V8 C
                        GlobalDistObj := part.globDestination;8 N* R* E! u! k; i6 D' {
                        assignLObj := rgmanager.rgAssignL;' F! W: g& b7 ?4 u
                        row := assignLObj.getRowNo(GlobalDistObj);* k- @. [( G0 z$ P
                        if Row = -1 then -- since 70
  F9 R0 u, a; [                                if lan=1 then
" P$ E( p7 _# ?- X/ M# e1 F9 T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ M) z5 }! L7 O: W* P4 i3 o* O
                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 R0 `7 d  w2 m8 x% M, }9 j
                                else
; i- A6 f- n8 [# ?* @                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' P* V! ~0 P. R! g' ^
                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 y4 `! J" T" N+ U5 d: y0 U                                end;
0 H* x! Q5 o$ q0 i                        else
/ v4 f4 U) J5 |8 j2 A9 _                                @.Destination := assignLObj[1,row];
: n% Z8 m0 x9 Z8 X* ?                        end;                        0 K) U. ?8 {! H* ^+ x- H3 T
                        newDirection(@);* l  C1 C' [. e6 `( P4 Q
                        @.HasOrder := true;  [9 w) M# t, e; n2 l
                end;1 ~0 O( V; u5 x  f" U1 A
        end;+ B5 b" _( H8 R5 ^9 ~8 X; h' D, X
end;        -- of the method
7 ?; ]/ M; d4 r' O- U- Q- n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  r& v$ X2 P* Y2 l  D4 |* \. ?6 G. P2 _2 R
这是AGV_putin中arrive的method。) v4 u, I. Z2 Q; q$ Q

& _* Z; F: P" `当到达物料速度越高时,这个报警更多,! k* |3 F/ e' d9 r0 @7 D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ b: o' q1 n9 ?( ?程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 H( O4 g3 ]3 U- [! T! r! [' x/ N0 E4 ]5 y" \& A! F, J; W
另外一个小建议,就是move,所有的move都可以这样
4 `# q/ H" @" Z$ r* R5 |if not move() then debug end, o- g& A, I& `% L! l$ D7 H
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. N2 Z5 N( I8 z) @) Xplant simulation中的free libraries有AGV模板,
$ k) w) V( O% W- P7 [: C. v里面也有案例。
' F8 S4 Z. Y- y# |+ u6 p8 X( a我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 N# c/ l! E* H, B0 i' `2 g6 Y
0 s, F7 q% [1 y5 q6 c我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   q. O9 L7 ^, i- S6 ~1 o% u
9 x8 q. u% t9 J$ A' v; p) C2 K
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ o3 a' r2 v8 r% y1 d这是AGV_putin中arrive的method。2 y: f6 d, m6 k# P* f4 |
# {6 X3 y- P- p9 Q
当到达物料速度越高时,这个报警更多,

. ?' a( ]' @* R5 l7 r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-13 07:25 , Processed in 0.019075 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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