设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8663|回复: 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 n/ B& I: Q. U( A; E  F! {& N*/2 D7 }* d1 ~, X' R3 u- v+ x
is
  j& U  W6 R* ^8 g0 M9 r8 ]        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 L: w& d- y7 H5 J4 z1 M4 ]8 Ado0 z" m' B0 c; ?$ ?5 x' i  M8 l; o
        Lan := rootfolder.Internal.Tools.AOLlanguage;" k; P5 X# f1 Y% ]# l% ]% f
        if current = @.Destination -- else return
5 D  l/ s+ t  L% y, @0 w2 x        then% ^5 R$ e: `- J" s; w
                @.Destination := void;
; \& I) F; m  O) {, h  _                if @.occupied then; J  v7 ^) E* q0 l( W( L, l% G. s
                        part := @.cont;
  |; o6 j& l3 l                        @.transpOrder := void;
) o% b/ J$ j; ?' e2 p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, C) n, V% Y, g7 R" h                                @,root.eventcontroller.simTime);2 ?, J" r1 l  }6 \
                        @.HasOrder := false;
2 I8 T& m% |; g                        @.DrivingHome := true;
" J! ~% b0 B7 T  j; F                        rgManager.tryToStartTransOrder;( n$ L# k  y5 \  Y8 a
                        if @.Destination = void
- M! ^+ q( H. |1 d- `9 G' L                        then -- no transport order for vehicle @0 S& h9 E! ]. E
                                @.Destination :=
7 P2 f4 u6 k- T* I                                rgManager.nearestFreeStation(@,track.~);4 R1 p2 `/ c6 V& K9 ?/ u
                                newDirection(@);   , M5 j$ z3 ~+ ~$ B6 Y
                                if @.Destination /= void then: |/ O$ B7 c( m: g2 W- s
                                        @.Destination.NumReservation :=0 a# C1 p( Q  Q
                                        @.Destination.NumReservation + 1;; c0 G  Y) c, r/ T+ V: ]$ }
                                end;
, ?# ?  f7 w+ H- \1 l                                @.CurrIcon := "drivingHome";( s- a1 _4 s. W1 c
                                @.DrivingHome := true;+ B2 A- V. D6 T$ [: q7 _
                        end;1 S& r2 B! C4 }8 e; i' P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 |' d+ S( r2 L) P" ^
                        part := @.transpOrder;
7 L4 j$ b! r, t  f: K* D                        part.move(@);-- load part* h* Y% \+ G" R- Y4 X7 X7 k
                        @.CurrIcon := "load";
' r% M" I/ ^: ]: g/ v: J' F+ ?4 I2 K                        GlobalDistObj := part.globDestination;
1 \& L; |$ h4 x                        assignLObj := rgmanager.rgAssignL;# Q  ?4 ]! N1 x1 e+ [! U
                        row := assignLObj.getRowNo(GlobalDistObj);
' g2 G6 x0 a2 n                        if Row = -1 then -- since 70- c0 D3 p" M9 G
                                if lan=1 then% i/ c# S: W  O
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- H' t% |9 k8 L; ~                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 b" x: s" L! }& G& ]- h2 i                                else+ c* Z, F* Z/ ?( F! T, J) r; [
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) j9 l9 K/ M/ f! K7 V                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 z! C/ ~$ |! r                                end;
" T. \2 d; @# S$ E3 i8 Q& _                        else* f4 Y2 r0 ~4 `6 p/ ?# f4 a
                                @.Destination := assignLObj[1,row];
0 F+ {; A# r0 Y8 A                        end;                        0 q1 z) j$ H) X3 v4 L% k
                        newDirection(@);( N) Q7 S, N# l& Q' t  V2 p
                        @.HasOrder := true;0 e3 Y& X- a# S
                end;
9 K9 Z% C: K( I% a' j- k0 z- S* V* W        end;$ v9 ?( D7 d- ~8 G
end;        -- of the method3 q. m& T6 U/ U5 X  {. e" i
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & t/ v+ J# f& g5 l

3 }( e, T$ ^5 y/ O5 z这是AGV_putin中arrive的method。
/ \) g( L) ~9 M9 m9 ?6 p# V- }+ n4 b" J6 i2 q6 W, ]( [1 Y. ^
当到达物料速度越高时,这个报警更多,
. X7 v9 S) l) B5 @& z6 C4 g可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 j" w6 {. [" @( \5 I' D/ I. S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 Q. w; D# K: |0 o8 N

) A: L7 ?( f4 U9 S) K0 T另外一个小建议,就是move,所有的move都可以这样8 L# N% K5 E; ]) a# K
if not move() then debug end' U6 l$ }, e6 G& u% \) Y" U$ {$ C( ]
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ y8 A: j. v; O/ I/ E5 \$ S
plant simulation中的free libraries有AGV模板,9 \2 q5 t! W2 |1 ]" M
里面也有案例。
, o$ E. p$ p/ Q7 w我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& D) ~% S' f) v* S! `2 y9 k4 H5 ]. _9 h( \
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + X* [5 l5 _" |% Y0 y. `* ^, s

2 G% ?* k7 J% _( `9 g5 m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 ]& t/ I* S1 c. ]( r; W, C; h' m
这是AGV_putin中arrive的method。% @5 e: s3 x- ^# U5 Y, L1 E$ i+ U
0 b  t, c4 e  s& T5 g+ i! N
当到达物料速度越高时,这个报警更多,
! x8 X7 g1 {6 L) }# A; H
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 17:48 , Processed in 0.019489 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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