设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4905|回复: 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'
2 J2 D% T; ~) e8 V' o*/
; L) ], g/ o; {: N3 T- nis7 {" _8 X2 M; U* {* a0 C, U; V
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 t& L7 `3 }( C5 M( Vdo
  B  g2 K5 h! S        Lan := rootfolder.Internal.Tools.AOLlanguage;" @9 m1 S+ Y+ B
        if current = @.Destination -- else return& \& P, k3 s4 [. j% Q6 Z) Z4 w" N, J
        then
5 V* j7 b( b* n* s" y. ?' k                @.Destination := void;  v1 E' a0 y, K2 C. K5 |; H' [! E
                if @.occupied then
5 e1 h* N" N# s5 L) e                        part := @.cont;
" V+ `3 K1 t" }0 _                        @.transpOrder := void;
9 ?  A8 ^# i, t- v9 z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 N$ r) U6 S9 M& r: S
                                @,root.eventcontroller.simTime);
  @) Z8 m- m. [                        @.HasOrder := false;
2 u: ?) g4 x& D2 |+ T" h6 S                        @.DrivingHome := true;: j2 |8 _) h, J: S/ d, V: \5 ~
                        rgManager.tryToStartTransOrder;
) p* E. ?2 [8 C1 u! R, ]: o                        if @.Destination = void
2 g6 E- _9 B1 I% X; G0 u3 a  r0 g2 W                        then -- no transport order for vehicle @
+ G( o8 t1 o- q; r                                @.Destination :=" }$ A0 [% i4 t/ l3 Y
                                rgManager.nearestFreeStation(@,track.~);5 ~) T6 h& k  O7 r- S2 u
                                newDirection(@);   5 V# Z- v. o, j* H" ?) t$ a
                                if @.Destination /= void then' w8 u0 R; j5 D4 \2 q0 n# I. N
                                        @.Destination.NumReservation :=
7 Y& _; `0 @5 N                                        @.Destination.NumReservation + 1;% f) ^1 F; S' Q
                                end;
, i2 P1 a4 B8 {, x9 K# x                                @.CurrIcon := "drivingHome";
* D8 W* f. m! H3 |$ ~" a2 z$ L+ Q2 {                                @.DrivingHome := true;) _6 M: k  P) L# G1 n! `: {9 o
                        end;! G- e5 G1 ?& i/ q' L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 ?8 ~( L! ?( D: c5 x2 I' l3 T                        part := @.transpOrder;3 ?3 B& j7 I/ q. \% G5 g
                        part.move(@);-- load part
# o: A9 G' x3 z  G  x" T                        @.CurrIcon := "load";" D' j- f) d1 ~+ m, _9 x, _
                        GlobalDistObj := part.globDestination;
& ~4 o9 s. T, N! M7 I                        assignLObj := rgmanager.rgAssignL;
6 \6 `% m; ]4 H8 o! a1 w; ~, z& n                        row := assignLObj.getRowNo(GlobalDistObj);& D3 k  h8 b7 \, \
                        if Row = -1 then -- since 705 l% Q. Z2 B% c" E
                                if lan=1 then
) j& j. w4 C5 f                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& z6 Z' t! p' o# ]7 l& Q! T- g2 @5 Q                                                to_str("in der Andockstation: \"",?.~.name,"\""));( }# |6 Q- L' E6 P& v) V
                                else6 e# [; }. ]! w" j* a! @0 k" S
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! G3 D7 o. b' ]! I3 q% g                                                to_str("in docking station: \"",?.~.name,"\""));                               
( w3 v" ?  S# A$ D5 K' t! g                                end;
& Q8 w  K/ W; _2 R; A                        else6 R  a6 t# o9 p
                                @.Destination := assignLObj[1,row];
2 T: [7 R$ q8 q2 U% T                        end;                        2 S2 f, {# k2 M  r
                        newDirection(@);) J9 v3 R# Q+ M( F/ k$ P3 T3 w
                        @.HasOrder := true;) G5 Y- K) `% E+ c
                end;0 l2 O! {& ^. `! K2 m
        end;* G/ x1 [  ]/ `, n% A9 d7 g% t) m
end;        -- of the method! i! M2 `! c  L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 D3 A5 M: h2 i  z$ y4 Z8 V
$ |8 d# a5 M, @5 C/ d3 [
这是AGV_putin中arrive的method。; n+ O& g" t4 T( Y7 O

# z' g* b1 R/ h6 n当到达物料速度越高时,这个报警更多,2 D  z1 U  T/ v! T+ S# |/ q& I% C6 n
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 C1 G9 n# ?; y8 y8 ^程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?9 G/ |/ \" ?+ ^4 R; Z" A- s
* }* R  |+ m4 f2 l4 X% H
另外一个小建议,就是move,所有的move都可以这样; \6 B9 ~9 p& E/ j2 m
if not move() then debug end
- K, L0 K7 k. E$ ~" K这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 T# d7 h  s: B; l' L. G
plant simulation中的free libraries有AGV模板,
$ i3 p6 e; b" C1 {2 q' e里面也有案例。
! a6 k9 L/ l. \, X0 B, B2 |我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 U( Z' L4 t: I# q
9 _" z- {" c2 @9 Y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" Z: R' Q1 @* D/ ]' U/ R- d8 a# m1 B0 t1 w
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + x% x& y; i  L# w4 x# `8 n  ^
这是AGV_putin中arrive的method。' F- w7 _5 U: _  _; x# n
7 [2 Q3 p" ?0 ]4 _5 y! z% l, `2 L
当到达物料速度越高时,这个报警更多,

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

本版积分规则

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

GMT+8, 2025-9-10 21:40 , Processed in 0.016896 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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