设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7946|回复: 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'. {7 X9 |, r/ e& T, r* S
*/
) Y. H  L' r# ?- h7 z- D2 qis4 u6 [) {9 c' F9 u2 a/ S
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 G( n: {+ Y' |2 r8 h- odo" A  {8 x! J, t2 b
        Lan := rootfolder.Internal.Tools.AOLlanguage;" _9 n% ~# \8 Z) f- T5 @( A
        if current = @.Destination -- else return
- I5 p- F. G  P* w0 Z4 J* j        then( n1 ]4 a' D1 ?5 a( r% J
                @.Destination := void;
6 R# ^( p4 |6 y. W                if @.occupied then
! O4 l, l1 L$ U4 ?7 z                        part := @.cont;
4 S/ A6 Y  d: T$ c1 ]2 J                        @.transpOrder := void;4 p3 i. x# g! a0 w/ m4 D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 V; S7 N. d: N4 n! ]% J8 h0 I
                                @,root.eventcontroller.simTime);3 U; l0 `- p0 ^: w
                        @.HasOrder := false;
9 I0 K  d. \+ g! d1 ^                        @.DrivingHome := true;5 |6 S8 y3 E) V) o. ]4 d
                        rgManager.tryToStartTransOrder;
0 a( z4 U  f8 E                        if @.Destination = void
- M0 v+ X; Y" K& M) _4 B( G( G                        then -- no transport order for vehicle @0 e# m" r- a$ ^: |7 p+ T) E- i
                                @.Destination :=
& a, I( K& s9 a( y) I                                rgManager.nearestFreeStation(@,track.~);
$ M- y+ O/ F& G0 T                                newDirection(@);   
% l, y. a) e% B3 X/ \                                if @.Destination /= void then$ y' f9 q* G& b0 E" h9 W# u
                                        @.Destination.NumReservation :=$ L2 n# p0 K' T3 e4 |3 r" h
                                        @.Destination.NumReservation + 1;" f* w: C, N/ N1 ?9 j& j" u5 o
                                end;
* i8 Z4 U6 p( l1 ^, i# U" W9 p                                @.CurrIcon := "drivingHome";, Y' }7 a# u5 Z6 Z" ^* v' a
                                @.DrivingHome := true;
) m( I$ J5 Q: Z; r3 w  R' F                        end;1 d1 r1 c- C" N( h' e
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# o' J/ [# A1 T: J5 c* t% m                        part := @.transpOrder;
& Q3 y  x; f% F: `# u                        part.move(@);-- load part9 ~5 `7 C8 c# H5 j
                        @.CurrIcon := "load";
( O% Q3 R. b* D: K                        GlobalDistObj := part.globDestination;: k+ o! A5 H) ?- l
                        assignLObj := rgmanager.rgAssignL;
/ }* M1 I* I  d; n! i+ Y# n                        row := assignLObj.getRowNo(GlobalDistObj);
; A; B# d& R$ c! p; O% ?* r                        if Row = -1 then -- since 701 y& t1 v" |7 \9 h9 S
                                if lan=1 then
4 C, Y+ u% E/ C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 i% ^" ?8 a& a5 o( Y2 S5 N
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# q3 \9 G9 X! U$ j6 V* ?7 ^9 u                                else
0 J' G) \3 W" O! U* m  f* h                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( d! u: R7 J; p. f9 _/ p9 I& r! z: p                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ x4 B' y# w" G- r  B6 V                                end;
+ g( @3 L5 V; z3 E- M! X7 j                        else
: ~+ D! O, x; q0 R                                @.Destination := assignLObj[1,row];4 ]$ \: f- o# P' O% X
                        end;                        6 b" \( V5 v+ P) s! o$ k
                        newDirection(@);: A5 P" w. s( |1 |& ^9 p* \
                        @.HasOrder := true;5 a) L; Q! S; y+ G/ D+ d* C
                end;
. \/ J- P) {& K' S3 P6 R4 B        end;9 T' l5 s  K9 {" Y/ Z# Q) B
end;        -- of the method
% |/ {) R& Y5 u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: B" Q% P6 n- c$ j" o# V( u+ t$ l- L0 R# T; h/ }& _7 ]2 r
这是AGV_putin中arrive的method。
( {8 m2 t# v- a. v& e6 K  Z3 |
) f/ j* n9 ]* w4 d: A当到达物料速度越高时,这个报警更多,; }1 o# ]2 w4 l: J- ?2 I
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ v) ?- j# t+ s+ u6 ^  U程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" c6 c" J) |% |

9 m, {2 n$ X5 v" m9 \3 ?8 l另外一个小建议,就是move,所有的move都可以这样
0 H" M. D$ q! ?  Jif not move() then debug end' |5 ?' w3 W# ?" k' D8 }
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 c% `  l& L( {
plant simulation中的free libraries有AGV模板,# }/ z! p) K& m8 Y5 X, b
里面也有案例。- t8 @; C$ B0 n2 O& k0 p
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。) N/ J9 y  K$ I; T/ g( `
# ~' U3 V$ V6 ~) h) g, n( [9 v
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) F8 U6 A8 G! A; G- ^3 k( y
' H4 z' [$ I( \: e$ P( R) V那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 T; k& E. @" Y, ^3 ]这是AGV_putin中arrive的method。
1 D: i5 r0 m: [7 m4 l1 d! r5 Z- W4 q6 P( n2 u( i& o
当到达物料速度越高时,这个报警更多,
4 J4 V1 u5 }+ I" g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-6 22:51 , Processed in 0.019423 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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