设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7577|回复: 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'* u3 z1 g6 p5 r; A3 C: F$ s' F
*/0 @! e" M2 P  H+ T; q
is
$ Z" \6 b4 ?& A5 J7 E3 m, ]        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- w  R# ^' F! w# q# c: pdo& ^( q, o1 j5 k4 J* j/ h( k
        Lan := rootfolder.Internal.Tools.AOLlanguage;/ E1 x. k3 C+ x* V, k4 \! c5 n
        if current = @.Destination -- else return* t" P1 C- B! y$ h1 ~7 z
        then# Q  K- F5 ]4 d. y- r3 }
                @.Destination := void;3 s7 X, ^* N( `1 n" S# v
                if @.occupied then
7 z+ X, d5 m/ J7 w; j6 j! ~- i; l                        part := @.cont;  R- ^- r* X; u2 S
                        @.transpOrder := void;
- E; K2 @. n  w/ g/ f                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* ?& c& ]8 v2 m) \# H                                @,root.eventcontroller.simTime);8 ^1 ~& [$ T& f! f
                        @.HasOrder := false;1 W( s% j$ q: j$ P1 s4 y; n; ]' O
                        @.DrivingHome := true;! P3 ?, O1 n" J5 c8 @) w4 t
                        rgManager.tryToStartTransOrder;) [7 ~, y2 u, q) W5 L
                        if @.Destination = void! ?  [1 q* q2 e7 R
                        then -- no transport order for vehicle @( O0 [" k2 w6 L, K
                                @.Destination :=
* [, W8 F5 h' u9 Y) l                                rgManager.nearestFreeStation(@,track.~);: l) l6 D, T4 o6 k% J4 e  F
                                newDirection(@);   
: k' n& W: n& C, N) y4 X/ ]' M( V                                if @.Destination /= void then! _0 ?7 M& [1 r: I7 K. A* E0 {
                                        @.Destination.NumReservation :=# }) }. R/ c' S6 |3 u( _
                                        @.Destination.NumReservation + 1;9 g. m' G7 p( `. m
                                end;
& P- H- G  e5 n                                @.CurrIcon := "drivingHome";
4 P5 E1 n6 P" |, @1 Y                                @.DrivingHome := true;
: L$ L0 N# L- K, w7 y& S$ c, @                        end;0 I$ p& _1 o# v0 Y9 _
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* @- G" E* v6 m* \0 C, _6 `                        part := @.transpOrder;9 S% j& U+ ], S1 V
                        part.move(@);-- load part' N8 `! P' i. @+ n: c
                        @.CurrIcon := "load";1 R- `. c- R" |# E9 l) i
                        GlobalDistObj := part.globDestination;
! t! `7 T8 v0 D                        assignLObj := rgmanager.rgAssignL;0 h& L! g* b, `3 w8 T3 l
                        row := assignLObj.getRowNo(GlobalDistObj);& d* W6 i9 G- K5 G
                        if Row = -1 then -- since 70/ d. C! j4 h- w3 v
                                if lan=1 then
2 A5 U- w/ @4 Y# S  ]  ?                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, c# b" A$ f4 b7 E2 L                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 F" E' W; ?6 f! y4 w6 y; r6 y
                                else
, k2 n9 ~6 m- x+ Y- N1 J6 \                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! y# E+ ]( e2 q% B                                                to_str("in docking station: \"",?.~.name,"\""));                                , z& G0 M7 k* y. u
                                end;4 M1 b6 }; A! i, w* a
                        else
( |% Q& r0 }( {& U                                @.Destination := assignLObj[1,row];9 W' k1 h6 ?( R5 s
                        end;                       
  r# h: R4 w- U& B; @                        newDirection(@);; V0 U% P3 F) _7 r5 ~0 G
                        @.HasOrder := true;
4 e! {' V  X' V+ c) A5 L% h                end;
# V( f  }$ B9 O. i: |& w        end;6 D0 F0 v1 @0 ~" }& b
end;        -- of the method" l- v6 b/ b, P7 v! |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 M6 A- d( ~4 S' U( h0 N6 R* h0 ^* X, w% C5 v" E# S9 a( Z4 ?
这是AGV_putin中arrive的method。
( i* E1 S' O/ O* K, q! x
. {% F" \1 @, z当到达物料速度越高时,这个报警更多,
( v! {2 A2 h. _% E可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 J- J1 ]# d  Q; w: S/ @; M# I程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* N; ~( y8 B4 u
0 G8 x8 B9 A" z; p0 J# P
另外一个小建议,就是move,所有的move都可以这样* R6 `3 V# T# K) K; J0 B1 i
if not move() then debug end6 P* ]5 X/ A2 `0 T9 F6 @8 G
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' z4 C! G) |: _( H" x; Y8 M  ?
plant simulation中的free libraries有AGV模板,
  j/ q- f& }$ y里面也有案例。
: w* k3 x; l  q$ {4 c我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ l4 I* R1 q3 T8 P/ H' u2 \
' V$ N; {5 ^* s# ?: ?4 O4 h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 ]  S  c( b% y# E  i
( N- K# e% n5 l
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . `% t6 j8 c( M) }: c
这是AGV_putin中arrive的method。
: |. c" i: n% G' l7 J1 m7 u3 R& h7 W  Y% v& T( A! h7 ^0 |6 b" {
当到达物料速度越高时,这个报警更多,

( P+ E3 i' A1 K$ f7 W: p另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-18 10:15 , Processed in 0.021987 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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