设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9385|回复: 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'
; ?0 K6 t, ?) R" \*/: {, t# |2 T2 [# p+ B" S5 g/ w
is* A1 f0 @0 a; l" R3 a
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 G' O% R' |9 E% H9 p/ ndo. C6 `6 p9 l# `& E
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: e% ^' o' Y# f7 t' F        if current = @.Destination -- else return4 D# F- G3 A5 O9 K% T' a
        then9 w! i1 C$ u# I) x7 s1 f9 x& Z
                @.Destination := void;
! H/ X. G' U( Y6 J' g                if @.occupied then. o( A/ f: D* J% @
                        part := @.cont;( g$ y+ M* J; f! g* U
                        @.transpOrder := void;  H. ^6 h9 C) H8 W4 v- j/ v/ |
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
- k. R: s+ |" s                                @,root.eventcontroller.simTime);
( E- t) u: y9 M0 k4 p# E                        @.HasOrder := false;! C* u; U! P8 P# Y0 M1 s( p
                        @.DrivingHome := true;( c4 _  A  Z. Q/ A
                        rgManager.tryToStartTransOrder;
: S; k$ N  x+ y9 Z* Z. C                        if @.Destination = void
$ z+ L  c( M/ K$ u                        then -- no transport order for vehicle @( W/ P. R# D1 R* [
                                @.Destination :=, P( e& v1 _  P9 A
                                rgManager.nearestFreeStation(@,track.~);4 r# @- `4 m6 W/ ^
                                newDirection(@);   
  ^, N/ C# s$ u6 v; |                                if @.Destination /= void then- H- n" Z8 L7 G) S4 M
                                        @.Destination.NumReservation :=
" U- F) c# _6 t1 [3 g  k# M                                        @.Destination.NumReservation + 1;+ I; L8 f& T2 }' S' f
                                end;, M' d& d+ Y" _
                                @.CurrIcon := "drivingHome";- c2 f0 z; z! C2 ?4 P/ e  b$ E( L
                                @.DrivingHome := true;$ e% i6 f! }2 x1 E1 Z6 X
                        end;
. u, K: N2 B  `, m  H                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- r0 R  w: ^/ f) @  U, {+ r- y
                        part := @.transpOrder;
! r! S3 r+ J5 s. W# O                        part.move(@);-- load part7 x2 f9 S$ f0 F  N: j# D9 B+ O
                        @.CurrIcon := "load";
; R+ I' p" [1 J2 o( w# M  X                        GlobalDistObj := part.globDestination;
+ Y2 r# ?1 f$ i( e! |                        assignLObj := rgmanager.rgAssignL;( w* v! q8 W7 ?/ |9 e( ?
                        row := assignLObj.getRowNo(GlobalDistObj);
2 V) H% b3 I: m! K) U: e                        if Row = -1 then -- since 70
7 h3 \$ s* w* X0 J+ D; Q                                if lan=1 then
& A1 S' r, U. K                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" \  s: s; w- H) R                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 i( {6 x5 ~' W" n' s7 Z
                                else
5 F' M8 r4 J2 u) u+ Q: v                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ h5 j* u) z4 F# }. |' d1 P
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( h. c, `, N; S# T. h  b! X                                end;5 g' j+ q1 E4 \. x& ]
                        else7 k8 x0 X/ Q& q# e
                                @.Destination := assignLObj[1,row];3 X" l0 V& s, I. z4 u" M
                        end;                        9 e2 C1 E# j* ], J) m( W9 E
                        newDirection(@);6 T1 i5 m6 y9 g  l( Z3 l2 |/ X
                        @.HasOrder := true;
: r$ Y' T2 U  [6 U$ m5 @6 c, T+ |                end;5 j6 ~/ ^* Z4 {* {  C/ B
        end;
" M' J4 N) P3 P% `# nend;        -- of the method3 ~5 T& _; s' `% j( g" [7 N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : u9 z- r. a7 D, U, {
  Y1 {/ ?! @5 N  t
这是AGV_putin中arrive的method。
* r! b& F) h2 ]/ K8 i% n  w  P+ {
( t5 R$ _% u6 A- u6 d! k9 a当到达物料速度越高时,这个报警更多,) x1 A# M: k0 Q3 e. Y- L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 b; M1 W6 I- R! L  A/ E2 n1 }- d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" R0 a  S7 e0 v7 ^- M* @& E9 ^1 C# W
  z0 u7 Z# i1 m  `. {* G3 P
另外一个小建议,就是move,所有的move都可以这样4 u  o- ^, P+ j$ }
if not move() then debug end
* V3 y, a( B* i' P- _这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ E. O* V( {3 O# E9 {* yplant simulation中的free libraries有AGV模板,( Z( g% p8 c1 ~; d0 y% z
里面也有案例。; {+ Z* v/ m) ]0 B: G5 h
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 y# B& \6 k7 a/ m) @9 ]3 V0 f

/ V5 ]6 l# c8 K) R, h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( R" _$ U* a) ~  p, l2 Q
5 O  ~  M) H* V2 T. n那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; l3 w! n5 a9 Y  v' Q. X: i* z这是AGV_putin中arrive的method。$ Y' q/ J9 I: `1 E% A$ L5 Q
- ]1 v$ ~3 _, I
当到达物料速度越高时,这个报警更多,
' b- M, a7 d* G3 i, ^& o2 {  O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-29 12:39 , Processed in 0.020185 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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