设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7583|回复: 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'
% T# i4 M- K6 S4 y; l*/
8 l7 H; f- c7 E( x5 |4 Iis
- T2 B/ R# A( u( ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ G9 R  {. n# O+ y4 Y3 S& y) V5 K
do; c+ f, x9 n. f# J) E( P" @" y
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 ~4 ~. W' P3 M. t# t) h
        if current = @.Destination -- else return
( M5 A) I$ F+ o! _. @. x        then
$ \0 I+ J  {& w$ b7 [" t                @.Destination := void;
( [4 {* m3 O6 M  A: ]" t                if @.occupied then- w+ E7 ?4 B  q& c
                        part := @.cont;; r8 X; J5 d. H, K( f' s
                        @.transpOrder := void;$ {& x! a" X. o. _2 Z( l7 o$ i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
0 D3 a* N$ D; y; X( o( E5 [                                @,root.eventcontroller.simTime);; I# f% I, b8 _% @1 s. Z
                        @.HasOrder := false;
3 v$ q. Q1 M+ Q! L- ?% v                        @.DrivingHome := true;
/ `  n7 T- C* M% I; H3 ~1 ^                        rgManager.tryToStartTransOrder;
2 G6 n# q: v  \                        if @.Destination = void
7 k5 {2 `# i9 k  O) m- X, _                        then -- no transport order for vehicle @
) t9 [8 z. O: ~8 ~3 U3 ~: E7 l                                @.Destination :=" ]+ {9 @$ |. Y1 f: g
                                rgManager.nearestFreeStation(@,track.~);' I. G% F/ o- q) B- u
                                newDirection(@);   1 t" o$ A0 K9 [5 a$ e+ E5 X0 a
                                if @.Destination /= void then) b) m/ ^6 |. z! R
                                        @.Destination.NumReservation :=
( G7 I7 [0 x; o: g6 i& e                                        @.Destination.NumReservation + 1;* N0 ]0 D; u( T" ^/ x. ]/ P/ k
                                end;
" s5 Z% ^. i! E& C& ~. n                                @.CurrIcon := "drivingHome";
. p0 m" j4 C6 E) ?: q9 j+ z# S, J                                @.DrivingHome := true;% S. G# {( }& T; p7 M$ i. p4 e
                        end;
+ c7 r5 |" v; V6 |7 h( v; p5 h( _                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: _+ H; l, d4 z                        part := @.transpOrder;
9 u3 F( T( H0 {) z; a) V7 E" B  l$ j6 B1 }                        part.move(@);-- load part$ {* P0 L4 x* \8 B( }+ m: I! E
                        @.CurrIcon := "load";
! L! w6 `7 X# ]0 r  b$ e( n- v                        GlobalDistObj := part.globDestination;
! a- N( j4 }0 G                        assignLObj := rgmanager.rgAssignL;
: H% z. z0 L) I) b! O( K                        row := assignLObj.getRowNo(GlobalDistObj);
, p2 k% [3 y) E3 ?2 F                        if Row = -1 then -- since 70) T/ ^% \3 m# P; b* l7 D
                                if lan=1 then0 `7 i0 `+ n$ X+ U# _) u; h, M
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& e& i* e- O! a7 }3 N, f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 d* \- j9 ^' L: f+ ]" R
                                else
' f! M7 d: W& d  G                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; d; h+ j/ Q0 K4 V                                                to_str("in docking station: \"",?.~.name,"\""));                                * b4 M5 R  ^2 M2 ?% X. t0 ]6 S
                                end;( N- J& {1 _) C: j+ Y0 k- K- J0 w! [
                        else
& p3 P# L$ Q* e$ r                                @.Destination := assignLObj[1,row];
* n$ c+ X  ^  @* F# I" D# V                        end;                       
7 h6 J) F; z9 H                        newDirection(@);
$ e/ Q" ^# r7 g7 }- v7 u                        @.HasOrder := true;3 |1 p( L( A  \2 V
                end;" G" s3 J6 m0 k/ ^4 [' @
        end;
% p/ R/ p2 h3 p2 ]2 q& X+ ?end;        -- of the method4 M! }! c5 ~2 W0 A2 r/ a& `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 A7 W; I  g3 K, g4 W

8 w8 P: E& f. F  x  D  F: e这是AGV_putin中arrive的method。
+ `+ B2 @, ~0 A/ d, m; t  _
6 n1 E, P9 H( g) H) q当到达物料速度越高时,这个报警更多,
  |) x& W* T0 r可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) k* i2 [: b/ q) S程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 m8 `% Z5 c* C; x* n0 R1 r0 d
; _$ u% q: H$ J) ?" Z$ B0 c, ]另外一个小建议,就是move,所有的move都可以这样4 Y- E3 O" f6 v' P. F' Z6 Y
if not move() then debug end
' K6 E% p- n+ ]# ?# x. P这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! g7 ?2 D$ j, C' d* n
plant simulation中的free libraries有AGV模板,
0 n7 h+ A( n" \2 q; u里面也有案例。
  y5 O, n/ }* j' ?" q7 Z3 P我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# J- }! h( d8 E. \& n+ s# Z3 i
8 D" V* o# Q3 f5 M# C) l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% q5 x0 h: g( H6 O# F  s
& R# r; D0 N( H6 h- C那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 x4 o* p. r3 G3 i这是AGV_putin中arrive的method。
8 ]& X# b+ m, b  i" q
; H9 x! l* d  Q6 y3 b. s- D当到达物料速度越高时,这个报警更多,

4 [3 z9 X2 Y6 j, L  z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-18 20:53 , Processed in 0.029016 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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