设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6562|回复: 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'
8 F2 N4 z; ~6 N1 c*/
2 f$ P9 y/ A& \9 [0 q7 gis
4 I7 ~- m! M6 m1 l/ A# y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' W' a3 U8 R' k! B+ h9 I
do$ t" N$ B# y4 h' B" [2 z6 j" U
        Lan := rootfolder.Internal.Tools.AOLlanguage;) K# {* v) z( V7 k
        if current = @.Destination -- else return
) c5 D; E) n# i% u        then, L2 {, I. \+ I9 S
                @.Destination := void;
6 l' V+ ?: h) e+ e                if @.occupied then. y+ t( Q# K3 b- R/ f& ?
                        part := @.cont;
% R* u) s6 f' c$ q* j( [                        @.transpOrder := void;
2 h3 y2 `/ p. N4 M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" G% v5 S8 m5 k* G$ R: W                                @,root.eventcontroller.simTime);- J! s# G9 e7 o9 Q
                        @.HasOrder := false;
% J+ \. z* s, u8 E- \" C                        @.DrivingHome := true;
! T' Z# g( h5 O- ?5 K                        rgManager.tryToStartTransOrder;
& H1 u2 Q3 M9 k! ~( _% k. B                        if @.Destination = void( \% s  r4 V3 T: T$ l  ^
                        then -- no transport order for vehicle @
* [% E6 G4 j( t                                @.Destination :=
* B5 x' _$ ?# r: k0 L                                rgManager.nearestFreeStation(@,track.~);/ s8 w7 k* U, p, K" l) I* i2 W
                                newDirection(@);   0 N. n3 ]' ^9 y: z2 a, ^/ C- l& v0 D
                                if @.Destination /= void then
3 T, I- \# v) d' o# n/ ]5 ]                                        @.Destination.NumReservation :=
& x7 f  v" g8 K9 I4 @                                        @.Destination.NumReservation + 1;- s' M8 j8 o2 x, ^
                                end;% Y+ j7 Q) L; o. \
                                @.CurrIcon := "drivingHome";
* v, H! q1 Y' |) m1 i, }                                @.DrivingHome := true;
' ^) V) {0 Y; `2 \4 a0 l                        end;, g$ r9 l, r2 \. D3 a# U, P1 P7 ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ ~7 W  u( D+ D( B8 l. U                        part := @.transpOrder;
0 K2 ]3 k* |' j' V" q                        part.move(@);-- load part, J( P7 H0 i- g( K' Z
                        @.CurrIcon := "load";
) u$ V9 y9 P7 ?8 P* l) ]                        GlobalDistObj := part.globDestination;: i9 @3 T: g$ h4 i
                        assignLObj := rgmanager.rgAssignL;
' P0 D" |. w0 Q/ V$ I2 U- j: H                        row := assignLObj.getRowNo(GlobalDistObj);" j' M9 M) K- V% d! v  d
                        if Row = -1 then -- since 70
8 [6 P" }% c& F; J; ^5 X$ ^+ m                                if lan=1 then
* t8 ^" i5 z1 w" i1 n7 |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 V& E% Q- m  A9 [) ~. e) K
                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 Z3 w4 h4 A) s( P* ?
                                else3 b  q8 _6 k6 x. K
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ y4 x, m7 {3 X/ ]7 n
                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 v2 q/ [4 p- x! J+ p( z                                end;
7 \& l' }! S" [9 y                        else$ J  a/ l2 _! H0 W' ^' s5 Z  v* p' M! Q
                                @.Destination := assignLObj[1,row];
$ I" `: U# }( A* J; ~                        end;                        ! u8 Z# J* i: z
                        newDirection(@);& H3 |% K/ t' C5 V) L4 x/ A8 m
                        @.HasOrder := true;" c' Z0 [) m$ e# c
                end;
& t8 V+ a7 Q3 ~% V& w  c2 Z        end;1 q% |" A! t$ s3 N- L
end;        -- of the method
" S( D& A0 {9 n& i6 s
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & @  K, C) ~/ U: ]- @8 Q
, ~! b9 k; F' D7 m0 d1 A8 U+ L3 g/ X
这是AGV_putin中arrive的method。! B# B- U0 u6 j- u  o# x

' U  W7 ?0 D$ r9 l3 g4 Z( q; I当到达物料速度越高时,这个报警更多,
  N0 g7 w0 Z( L- Q9 h, i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 m# r; ^- n4 S3 N5 g( F程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( v. S5 i! V& ]# _& U" \# E1 R
; B" G! G" c5 c& x) T另外一个小建议,就是move,所有的move都可以这样, w; J; N/ L; j! S6 _
if not move() then debug end6 a2 B( ?7 d' c4 |2 |! K
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! }# E, `) ~: p$ Q, k6 e6 V  A
plant simulation中的free libraries有AGV模板,
) W2 [6 r- @0 Q$ h2 V! ]3 u/ ^里面也有案例。' v( k  n, i3 R7 F9 ~6 |
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 D5 l8 A; R  h  W. a

# k8 s" B% v& E# q( [+ Z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 G1 s) ?0 {" F3 X
; f# x3 J* F1 p9 R+ H那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / f4 \$ y5 R2 X& \; R3 y% u9 ~4 N
这是AGV_putin中arrive的method。. e# M$ E+ z  |0 t0 [0 N
2 k3 J2 g4 z5 R& F' g0 Q( z
当到达物料速度越高时,这个报警更多,
) t! s! i/ b( G7 d' ], m$ A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-13 02:57 , Processed in 0.019040 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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