设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9020|回复: 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 L" ?$ u5 l( D# ?  p7 j*/- N# B, C# I/ I1 |, [; {" M, P
is
6 p, h. p# |; T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 J+ M$ ^7 _+ wdo
$ X/ k# W  z$ a- \3 k        Lan := rootfolder.Internal.Tools.AOLlanguage;; C5 J, Z/ B. W2 ]8 E8 {, K, Y
        if current = @.Destination -- else return- x: p5 }& A( U) \5 \8 [
        then
3 \+ u5 W. ^( [5 t3 u9 m                @.Destination := void;$ f$ d2 q! E' E- s! O* Q9 ?
                if @.occupied then2 J9 U; t, a/ ]& K
                        part := @.cont;
5 M6 H% f# G3 t8 p                        @.transpOrder := void;+ r$ h- ?( e+ c: ^
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 X* u9 c* t0 U' T/ z- B. ]2 S: ?2 E
                                @,root.eventcontroller.simTime);
% a' g$ h1 v. K  O                        @.HasOrder := false;- D  v# n) O7 c
                        @.DrivingHome := true;+ P8 j; t# i1 k+ [7 k) D8 k+ Z
                        rgManager.tryToStartTransOrder;6 d, t( _4 z' j! R  ~4 e' e7 `
                        if @.Destination = void! d' \+ b4 F: E+ p+ j' ?
                        then -- no transport order for vehicle @  f& A. q4 C7 X; B6 a5 S2 }- t  Q; Y
                                @.Destination :=
* `4 ^5 N( S, J7 \& e                                rgManager.nearestFreeStation(@,track.~);
; C) C+ S8 F8 Z& P3 P+ E                                newDirection(@);   . Y. b3 o# m. g+ t
                                if @.Destination /= void then
( `: P9 D# ]$ b/ L: U0 O                                        @.Destination.NumReservation :=
2 O5 P' {, }$ z) p0 Y* m: a8 {                                        @.Destination.NumReservation + 1;
' q6 W7 M* o/ y* ^$ U2 Z, S0 ?/ V( \! R                                end;- W# K! M+ ~/ l4 u, ^/ v2 J
                                @.CurrIcon := "drivingHome";
4 Z- R- x. C# w* D                                @.DrivingHome := true;
% q) P" q8 K5 c  F; N: p                        end;
: `; Z& q* L# N8 Q( n8 q" O, {" `                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! J1 v( q& b' v' X9 N& K( v1 f1 I
                        part := @.transpOrder;- x& C2 i9 Y2 c' V, \. Z" S, z* O
                        part.move(@);-- load part7 H* d" A0 f8 p! W& p( y- T
                        @.CurrIcon := "load";
2 x$ ?1 |/ j2 {) V# h                        GlobalDistObj := part.globDestination;" X) u. i" G# X: l
                        assignLObj := rgmanager.rgAssignL;
6 M8 @8 r+ \( L. G7 G( j                        row := assignLObj.getRowNo(GlobalDistObj);: e1 W' {& Z" J+ {' ~
                        if Row = -1 then -- since 70
4 y1 h8 v$ X, k' [+ N# n1 p                                if lan=1 then( @; m; L1 q- j4 k
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* ~! P4 E/ L  b- f) h
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ p" Z/ C, `# y8 E                                else
' s3 l8 `7 i: _: r# B9 q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( |6 h( A6 c* F
                                                to_str("in docking station: \"",?.~.name,"\""));                                * J" J' E6 s/ I, o3 q0 u1 F: u. `# y# \
                                end;' I# l7 {3 J. x: f9 s
                        else2 c; R5 y0 ]+ b+ x- P
                                @.Destination := assignLObj[1,row];8 m2 a1 b6 Z# n* F% J: [8 u! T. C) X
                        end;                       
: x1 k2 u. C/ `. Q8 G& k0 ]" i                        newDirection(@);7 L% ?$ G0 i! p  n, L6 M: t- _- v
                        @.HasOrder := true;4 J: A# d. V0 t! x8 |7 @
                end;
. z. H7 H" J1 F% h" I+ u        end;) I- c: v+ E& G3 f% H/ e
end;        -- of the method
" L! C  N' H' f. j) ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  a0 ~, Y& o$ t' D) `# P4 t, S( i' v9 }$ U/ S8 h
这是AGV_putin中arrive的method。8 R' `8 F+ P) m7 Z0 w

) T1 }6 K! q& Y1 r当到达物料速度越高时,这个报警更多,
9 f/ U$ P3 [/ D7 B# z! \+ Y可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, M; }0 g* r: C0 J2 r8 d' T3 ]1 t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  r6 B; r. D3 `

8 k8 H; D6 F' [  G  ?另外一个小建议,就是move,所有的move都可以这样
/ Q# n! Z; _" H4 hif not move() then debug end; f7 l: f' r& o9 H% q- Z/ V
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 K) I7 o' h3 M, p3 C6 l' @" J+ Xplant simulation中的free libraries有AGV模板,
% L- C3 O7 ~  B" L4 c& Z里面也有案例。
& b  {' r# D& |! Z. X我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. }; j1 x& c* |7 f. z

- }, i5 v7 R8 n3 x1 u8 f- ~3 m. e$ G我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ \5 r; j2 k# O0 m5 a* a3 n
* [3 w* o  S! B" f  A+ {8 X
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + E- _9 ^9 u4 @+ f
这是AGV_putin中arrive的method。
5 o0 {- x' G( n5 H' _0 E. {# [; G0 Z
& D4 m: n5 y! c6 H7 D8 N当到达物料速度越高时,这个报警更多,

+ u6 F- w, b* J4 l另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-9 11:21 , Processed in 0.017058 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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