设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6169|回复: 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'
: h" a. v; w9 L*/1 Y1 m$ [" {' A9 P) [) o; }, `
is7 P! A4 M* {/ D6 c& O
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 l" Q; o2 x& F) R2 `% n2 [/ Ido
# C) x) m" d; A4 e        Lan := rootfolder.Internal.Tools.AOLlanguage;- }0 W  d  L- @/ K1 T' a5 M; o/ t
        if current = @.Destination -- else return
' _2 h4 a" e# \' y        then* c* d; n$ {! a$ i5 F" Q
                @.Destination := void;5 P# J+ }* c  y  {( P! L* g* ^
                if @.occupied then
1 g% v1 E# Y6 U                        part := @.cont;+ G6 o3 {! v7 o% y- o3 a
                        @.transpOrder := void;) b2 ~& w" W. y! O. X& [* P9 D. r. \
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# y3 @) i: P$ S2 Z4 [
                                @,root.eventcontroller.simTime);% ?# v; |2 v8 Y4 t9 p" _" f
                        @.HasOrder := false;/ m2 r4 g, B6 x5 L: I
                        @.DrivingHome := true;
* j4 u' @- a6 \3 C3 m% K- m/ s' L                        rgManager.tryToStartTransOrder;
2 e5 _$ t0 j% a) O. b# X" v1 i                        if @.Destination = void+ q0 O& h8 D: {8 X
                        then -- no transport order for vehicle @. f" p  J, q2 I* P$ K% V5 |
                                @.Destination :=
& d) g' y( i% E+ G7 p. i                                rgManager.nearestFreeStation(@,track.~);
8 I' b; i1 q6 E/ }* E$ R$ H& a                                newDirection(@);   % P8 z4 g( B4 Z: t3 L
                                if @.Destination /= void then
  V; \% S% }1 e5 X2 ?/ Y& N                                        @.Destination.NumReservation :=
! d0 U8 j7 [) b! t  r# K                                        @.Destination.NumReservation + 1;
' F( ]2 o3 _7 _% K3 w8 U8 J                                end;
- f3 |! u! |6 a. B  y% y* l                                @.CurrIcon := "drivingHome";4 x5 j, A  [% j* c% @
                                @.DrivingHome := true;
$ k5 |4 e  g' Y                        end;4 e9 _! k! L2 U$ E  J
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 I3 [! i' c& b# T0 x
                        part := @.transpOrder;
# Y% b" }8 c8 b                        part.move(@);-- load part+ t! [- J; w" }; ^8 D1 N$ ^% z# O
                        @.CurrIcon := "load";/ C; U1 `+ u* G1 z8 M" ^
                        GlobalDistObj := part.globDestination;
( m4 b% F: e3 T9 M                        assignLObj := rgmanager.rgAssignL;
4 I0 l+ z7 v) q' w/ t) T                        row := assignLObj.getRowNo(GlobalDistObj);8 ?- s; x7 t8 \8 i* L3 |) n6 c
                        if Row = -1 then -- since 70
1 A% ^' F2 D4 J0 o* t! @$ ?                                if lan=1 then  U5 D8 e" p& X* i- G
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% a/ i  e' b7 P  F; P1 J) c                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' B6 H7 I. K! n! {' {+ Z% ^                                else+ Q$ |! N+ h  |# p
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( W4 I6 v; B2 f( i& y# u7 W1 `                                                to_str("in docking station: \"",?.~.name,"\""));                                0 p/ a% P4 W4 B" z3 E2 T
                                end;
7 h  T1 x4 C# \  M* F' @" M                        else4 \: C+ L$ h/ X% m# ^2 X( i
                                @.Destination := assignLObj[1,row];
' ]4 {4 Y/ v/ n5 h+ h% O1 q. f# P                        end;                        # S, _% U) H) u, U3 L6 q
                        newDirection(@);
+ Y: S7 R2 ]( l5 y                        @.HasOrder := true;: ?4 ^# s- G  l- d( @
                end;
* E9 q# C* N! U1 \& M% _! ^        end;( @8 k" m: K9 g2 E* m8 s* v
end;        -- of the method9 ?8 n. W8 x/ Q* r: ~( @" _* A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . y2 A- P( u6 V) y2 Q

) m, F0 ^1 F2 w这是AGV_putin中arrive的method。
- I2 ?. Y8 f( Q6 J. S9 A  x; W. e4 I& e- ]' E+ q! A
当到达物料速度越高时,这个报警更多,
4 N$ z1 E5 `( n- m  U8 _, J! ^可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- d1 y  d- }2 S% l, F7 D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" n7 ^: t. R; o
/ Z( k' m3 a" H; _* X
另外一个小建议,就是move,所有的move都可以这样
+ A5 Z/ `, Z; X' P) b6 ^if not move() then debug end
, b! B0 {4 m  d" _/ C% Y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ f2 m. o3 x/ Q) F7 U* \plant simulation中的free libraries有AGV模板,8 b  n3 K: W) H1 d4 h2 }
里面也有案例。2 c. H8 X& f- V: u
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& [2 W  S0 \7 z9 b3 }

! ~  W- p9 P5 g+ ?9 P我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 e5 E* _# M, ^1 [& ~" }
  O$ X5 T3 N! `, Z5 T
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 @. N" s$ ~) ?7 g" T7 N这是AGV_putin中arrive的method。
; q1 W) o1 P$ K9 \. H+ ?: W0 _: t0 s0 E$ S
当到达物料速度越高时,这个报警更多,
0 H; ?. t. N) c5 S3 ]
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-22 13:21 , Processed in 0.016763 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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