设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9745|回复: 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'
. l& U5 I( ]# {% `*/
5 {! r& C/ y, W) xis
2 D' x. K' q1 \0 ]" a4 M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* o% D, q3 {2 D7 d0 P3 q: }  N/ B
do) n4 j- ~3 U7 u: ]. m# a7 E  c
        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 J" y" W5 n1 |( c( x5 E! C9 C        if current = @.Destination -- else return
% Y6 P7 }0 q" o9 }8 t4 R9 {        then& i  D6 L1 L: Q0 ~4 n. G
                @.Destination := void;
) K0 x! F: F3 n% m                if @.occupied then) O; T) {1 `+ l8 \
                        part := @.cont;* J0 p) \6 w: C8 g1 [7 d
                        @.transpOrder := void;
5 }2 P  v% f  ~9 _9 D                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 r; K( o" Y( {; c
                                @,root.eventcontroller.simTime);
- h2 ?/ D" t0 B; v5 [. N5 Z, |                        @.HasOrder := false;
* G/ ^% w. `/ z                        @.DrivingHome := true;
3 q  \) d7 l8 ~                        rgManager.tryToStartTransOrder;: o9 b) a. T1 d* ~, h
                        if @.Destination = void
, e8 d* X4 e/ z$ P                        then -- no transport order for vehicle @
7 L# @9 d: u: A" `5 A7 t5 t  _                                @.Destination :=0 n( X; D2 i. Q" }3 k  p
                                rgManager.nearestFreeStation(@,track.~);
4 K& p& q; R4 I/ d" {                                newDirection(@);   5 g5 N, H, s! F& }+ J
                                if @.Destination /= void then
' d2 |3 i% u$ v" s7 Z' Z0 Y7 V  @                                        @.Destination.NumReservation :=& q" o6 `0 n1 v" e6 w# a/ I
                                        @.Destination.NumReservation + 1;
  e7 B7 K- Z& i2 P                                end;
2 r' V) S4 e$ w% M1 _                                @.CurrIcon := "drivingHome";. M* v3 t# f/ e: `) _+ L& t
                                @.DrivingHome := true;
( Y7 D) q7 [4 _3 y( t( P: C                        end;$ l) r+ B" g- R6 C
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; G: ]6 c- P# \/ Q                        part := @.transpOrder;
% n6 C- M2 _8 D% Q5 l- A                        part.move(@);-- load part
8 y( P  t% K: U. W# z# z                        @.CurrIcon := "load";
" U: q9 k9 z' P3 z% v4 v                        GlobalDistObj := part.globDestination;
/ ?! n2 ^- ]( q8 X                        assignLObj := rgmanager.rgAssignL;
* j: p" g4 N: r. v( W                        row := assignLObj.getRowNo(GlobalDistObj);
; V* e1 D& y. H: B4 X6 v                        if Row = -1 then -- since 70, F5 W% a5 @9 I! c: y
                                if lan=1 then2 b$ z* p0 ?0 r6 R. g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! b' L: O! J4 w# R  l
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 j# g! l! h$ ^+ E                                else7 I" X5 c$ o" v
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 D, j" V) R: x1 @5 r$ z& d4 h
                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 D$ J5 s" v1 L                                end;
( K# F) ?+ Y/ f# V                        else* S- h7 e" f; t4 ]) ^# o( t& C8 H
                                @.Destination := assignLObj[1,row];% a+ t% A, ^$ H2 m! T+ x
                        end;                        8 O) q4 `2 c7 l* K
                        newDirection(@);- H  `6 a* p# M' r/ s5 t$ I
                        @.HasOrder := true;
# S( ^' J6 A  @) y+ @7 |                end;* ?* o, B) C- C( [  J
        end;5 j- D$ w! R$ \$ a- {$ U
end;        -- of the method
+ Z9 d/ w+ l9 E
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , l7 \  s( |; Z) v6 {4 L% }9 k
" w: _( K& ^1 K9 s1 P
这是AGV_putin中arrive的method。
0 q* Y5 q; K, p% g2 I0 k+ Q! Z0 c/ a) w
当到达物料速度越高时,这个报警更多,* z0 U  ?( u. i8 ?& Q$ n7 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 N2 A6 }7 O& d2 Q- D' H程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# M9 k2 X0 x: T) c" a$ B  @5 O

2 _! F" O( x6 x, U/ L2 q! W( J$ Q7 G) h另外一个小建议,就是move,所有的move都可以这样; Y8 J0 z7 j$ C7 r
if not move() then debug end
6 {; z( q# H$ M$ t2 Q* }这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 }: K* b9 ?" V+ i9 l- M* Uplant simulation中的free libraries有AGV模板,: G8 w8 o: O/ L, R  m" y
里面也有案例。
% c# m$ ]( f  M  s$ x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 V. q5 j, _/ c/ {" W/ I6 f. `* _4 J1 R9 W! ^, n9 M! I$ ?
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 K+ v% b  P0 }- B6 N( I! T! g) Y" R$ k: O
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : _3 t6 t" |$ ~! @0 q' ]( G" c& w
这是AGV_putin中arrive的method。) u; E/ D- R8 a; n0 }  a$ ~

: m9 U9 r% f9 Z当到达物料速度越高时,这个报警更多,

+ [, f4 r  S# A( P: _  t5 N另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-21 19:14 , Processed in 0.020623 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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