设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6459|回复: 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'
1 Z3 t: X, e1 S6 P* Z/ n*/! a# F1 X1 Z8 s' l$ ]0 s! V% ]
is
  Q) n# l1 ?7 H3 e; I9 f+ [9 F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* v% t- g" r0 t
do
; k' e1 R' z7 r& k5 l$ M8 W* e        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 O) ?1 D! f( ]3 m% x        if current = @.Destination -- else return) u  Q" Y! m! L6 [" U' t6 a
        then
  {' q2 {$ O, k) W                @.Destination := void;! @$ x6 \/ ^+ T8 F* A
                if @.occupied then8 k7 \) R* m$ ^* w+ A$ {& ~# ^* q
                        part := @.cont;
7 }1 X2 Y4 d. B6 d, g                        @.transpOrder := void;
% F5 P4 `) D% Q, M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 N! o1 ?, F% L% C  l  h
                                @,root.eventcontroller.simTime);
. q3 n& m* [# t, z7 G  H                        @.HasOrder := false;  S6 p9 S( q* y% ?8 F. y4 {2 J
                        @.DrivingHome := true;: D/ b  {6 r; z4 G
                        rgManager.tryToStartTransOrder;* V4 w- o' U( l! [% ?$ U: P& c
                        if @.Destination = void
2 I2 c  a( a2 o                        then -- no transport order for vehicle @& i6 r/ s4 R8 R
                                @.Destination :=; f/ d8 O/ Z  P) f/ O: N+ J
                                rgManager.nearestFreeStation(@,track.~);
# ]0 R0 W+ A1 {" K+ a8 q% i                                newDirection(@);   
4 c3 P/ \) H$ R4 \, w) z                                if @.Destination /= void then
( C3 ]7 Z: G. n6 m                                        @.Destination.NumReservation :=
) r% L3 [7 x5 a0 E8 E1 M0 K  s7 H- o/ E                                        @.Destination.NumReservation + 1;7 d5 X% o) b8 f' M8 E
                                end;
$ ^% y3 d5 {& `, t: U0 o: ^2 I                                @.CurrIcon := "drivingHome";
) c. y  D; E- F3 R( J; }. {% S                                @.DrivingHome := true;  i4 Y0 c/ s+ j- h' O
                        end;
) z4 v$ w! k$ t                else -- the vehicle @ is empty, both vehicle and part are in the same dock station, v2 N$ M' K' `, ?& w; G
                        part := @.transpOrder;
4 n( y  w  N9 W                        part.move(@);-- load part2 F/ E2 m6 ]( v3 ~
                        @.CurrIcon := "load";
/ L7 W6 t: Z# Z: ^' F                        GlobalDistObj := part.globDestination;
# g* T. z5 x; P7 Q* V* G1 J                        assignLObj := rgmanager.rgAssignL;
5 ~1 L! \  q+ A, p, h                        row := assignLObj.getRowNo(GlobalDistObj);& E+ h+ f- G* w; {7 Z
                        if Row = -1 then -- since 70
$ u3 {! H8 `( R+ L1 T                                if lan=1 then. _5 P( i/ F7 k; c8 J" K, O+ A
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: H( K; s' H5 z1 B+ R1 R( @                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 U5 e+ |; ^1 x; G" G' y. \* n" O                                else6 W/ O9 C% N( C; N) `6 Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 A: l1 M: ~+ _/ K* A: C: z. B9 Z
                                                to_str("in docking station: \"",?.~.name,"\""));                               
* _; g3 c: k! T                                end;5 @- ^$ D2 \+ G! I7 n3 X
                        else- \: j, R8 ~& W' W( e
                                @.Destination := assignLObj[1,row];
" R1 m7 G% a3 t8 R3 n                        end;                        0 C4 a2 q! U- w# y' \" Y- D* u2 E
                        newDirection(@);, ]5 P# w# q" j* Q( u4 C) b4 q: u2 J8 J
                        @.HasOrder := true;
% r7 ]% u8 E9 w/ _7 o% h) u  v                end;
1 u7 M! `' G) u7 m" R2 C        end;9 b; B4 H' i$ l* l
end;        -- of the method
$ X4 V- v1 E8 F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; e0 k4 b+ I4 U% N* ^
6 a, Z; S4 U2 E) K  [
这是AGV_putin中arrive的method。
- u$ q( B+ C" ?- q! I1 [- t6 T8 k5 C: e2 |+ r0 i$ c3 |& Y, [. D
当到达物料速度越高时,这个报警更多,8 h  J3 |; P+ L  s6 D2 i  f
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 |: u: N, K! d: H& s; m+ g
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( }  s4 d5 q6 {; h) ~# j6 }" W
; T8 S2 Q! b7 R/ Z$ @  f( P$ `; E另外一个小建议,就是move,所有的move都可以这样
8 E9 y4 I4 d/ G) h/ }if not move() then debug end
) h0 U3 m: ~7 }7 E0 N1 ~8 ?6 y5 ~这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" p' [$ D5 P. Y! aplant simulation中的free libraries有AGV模板,- F! ~( V4 ]# {
里面也有案例。6 q2 [  V+ v4 g" S' H/ o* f1 [' s
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' j# N. z% f$ H. B" c# H* n9 v# X
! H" N1 n( |8 f' P9 }* x# M5 J我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % U1 U+ c; a; Q' _  D8 T& x

4 b5 t  t* R0 N( R2 n- r# B% b4 @那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 c" l$ |0 e1 O1 F4 I% C0 J这是AGV_putin中arrive的method。
: V! L  d# _2 S/ G; q* u; T# x" S
当到达物料速度越高时,这个报警更多,

% R8 q! X" v/ ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-7 21:17 , Processed in 0.037185 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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