设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5653|回复: 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'+ P0 q, @, F$ `) }2 O
*/
' `3 h1 g: d: ?# his
9 }7 R! q9 \6 G; X& I/ r        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* m7 b# I/ H( r
do
9 b  |$ a: r3 P        Lan := rootfolder.Internal.Tools.AOLlanguage;- M5 Z5 o4 \* N2 C7 C. n
        if current = @.Destination -- else return
: ]! A, M4 T7 V0 j        then
( V( o& u9 U) S  T% s& {$ u/ l" r( L) R                @.Destination := void;" v9 F4 K: w+ w: v- Z0 i. b
                if @.occupied then
. b: s% X' t; k, Y                        part := @.cont;
" p; x8 @/ F2 J( p4 S3 W4 k                        @.transpOrder := void;/ L$ \/ b8 G* U& f( {2 A: X
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 J: Z9 ^0 U! R7 a
                                @,root.eventcontroller.simTime);' D# k5 }: ~8 h
                        @.HasOrder := false;' E% ~) @/ B0 P& g2 D! _
                        @.DrivingHome := true;
. r8 c8 J; h1 `% F- r: z                        rgManager.tryToStartTransOrder;' k) H% K2 f: U% ^5 Z+ b4 [" S
                        if @.Destination = void/ @1 B, ?1 A) R5 u3 j/ c% u
                        then -- no transport order for vehicle @- y& G! u# |5 r/ c7 Q" O- P, X
                                @.Destination :=
) J: R, K0 ^" F3 u; ?                                rgManager.nearestFreeStation(@,track.~);" c" ?5 f/ J3 I( ]
                                newDirection(@);   % a& [- ]) j# \( B8 t1 B7 p% f
                                if @.Destination /= void then
: n# l/ f) `6 ~* {/ T+ Y0 c                                        @.Destination.NumReservation :=! [8 J1 T1 _* t. T( s- i/ |6 {+ y
                                        @.Destination.NumReservation + 1;7 y; n2 e( f9 e" u7 }9 x( T& r$ G+ T
                                end;' R7 M, _, L, u$ E) h
                                @.CurrIcon := "drivingHome";
+ Z" R/ a7 h5 T/ l  J0 p                                @.DrivingHome := true;2 H+ K- Z2 E# ?0 h
                        end;
+ x: u. A( A2 h; O                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 _( D7 ]8 Y4 s7 Z. `                        part := @.transpOrder;# s) i6 Q# J! m* I3 x/ h
                        part.move(@);-- load part2 J3 D9 U( F" i9 S4 b. Y
                        @.CurrIcon := "load";
% [. H+ ~/ C2 p& `! [0 _% d                        GlobalDistObj := part.globDestination;
, u5 O* z5 |- O6 E5 p' J7 l                        assignLObj := rgmanager.rgAssignL;, W+ ]% Q/ u  R* s7 y8 f
                        row := assignLObj.getRowNo(GlobalDistObj);
( ~' p2 E0 I  W                        if Row = -1 then -- since 70
  \5 c# v6 r7 Y0 t                                if lan=1 then
2 H: Q+ B% g2 O) O) R5 k                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& B6 C* T9 H; I1 @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 o7 T4 ^" G8 |5 |' G( r) U
                                else  D! N2 M  b7 q1 t; R. e9 c( c
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 @, V3 U* t0 F3 [" v, c
                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ N# K0 y& T9 c" r2 h& ^- \8 j$ E                                end;5 i0 F3 j2 u1 k* b* `" o
                        else* Y2 p8 C& }5 f0 }/ f2 y- k
                                @.Destination := assignLObj[1,row];
  x$ A) [4 O3 K- @9 M2 a                        end;                        9 J, l( Y& Q, b, E3 B4 A, z
                        newDirection(@);
( O% w1 y9 s5 _& }  h                        @.HasOrder := true;" e- d$ q. {4 v  H# r# d1 Q
                end;
6 d. B2 ^0 Q0 j& D- ?        end;
; J  Q1 `- Y, `% `! u" xend;        -- of the method
3 D) C4 V9 K9 O$ C9 W+ P' `5 z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, J0 A! h* T) H6 o7 |' }9 `+ B. K1 u( b7 ]7 `) I) }7 v0 l$ @$ A: A* O  t
这是AGV_putin中arrive的method。) [/ W* L2 ?4 I" ]% q1 j

( ^: i) @2 z1 v/ F$ h. c6 _) ]当到达物料速度越高时,这个报警更多,7 P3 c2 i+ |& O4 ~" F$ b; E
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! N1 _$ o% ?$ u! v& X! l# \
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
. @% y+ E7 q) z& E! g" f' t6 Q3 D3 h) x
另外一个小建议,就是move,所有的move都可以这样
3 R* B9 l/ G1 Kif not move() then debug end: j) ^7 F& w7 |, t# C
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 J* b8 K) a% X4 Z  p
plant simulation中的free libraries有AGV模板,
7 ~2 ~" t8 H+ ?5 w里面也有案例。
9 A9 [7 a$ z2 [, ?. q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ U6 h3 E* X: N/ b5 d/ p# G( S; j3 h! j- G% F) ?
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* O& g  l6 V0 i. E) L4 e. i$ Z5 I" O5 V9 T
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! [7 l5 d/ }# _6 e9 ~; v; k% k0 f这是AGV_putin中arrive的method。
6 Y! U: U; P: ^  p8 H8 |( m# l' F# y2 {0 m
当到达物料速度越高时,这个报警更多,
+ d( N: o; W+ |9 m! x0 V
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-11 17:41 , Processed in 0.019544 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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