设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5909|回复: 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'
( v5 u# M, y2 a3 `*/- R$ I- |& s( L' Y# o
is# c7 O+ z! U: v: ?; E
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 i$ M! k! s7 b* C& ido8 q/ A; `9 ~& |3 A% i2 f$ H
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 e$ T; S+ e& E! P) P7 O        if current = @.Destination -- else return% n( t3 ?/ S0 R2 E
        then
3 P. t( `1 O: R. b( _9 L8 w, {                @.Destination := void;( `0 D* g2 d1 i" x
                if @.occupied then9 O6 u9 C9 \8 x  H) ^
                        part := @.cont;7 U* [) l: ^% n5 H
                        @.transpOrder := void;2 u" q/ t1 ?6 l8 O
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," R3 `; r6 B6 U/ S3 d
                                @,root.eventcontroller.simTime);
5 |: r9 W. K5 K' V2 {                        @.HasOrder := false;) u+ ^- K/ h; P  S2 ?$ ?
                        @.DrivingHome := true;
# p/ Z3 y) _+ x0 Z) D                        rgManager.tryToStartTransOrder;' v1 ^; j# c( R* |/ `; l* S6 g
                        if @.Destination = void
+ t5 G( u# O0 T' J- ]0 }                        then -- no transport order for vehicle @
' U( k. z+ v2 b2 G                                @.Destination :=
2 z' e% F5 A1 r1 n) q                                rgManager.nearestFreeStation(@,track.~);
: f. S7 y/ v( J                                newDirection(@);   
. d3 N7 I: `* X: p                                if @.Destination /= void then" M& U) Z! B% {  _5 q- x0 e: R" S. r% L
                                        @.Destination.NumReservation :=
4 w+ H1 u- g, P, A0 J                                        @.Destination.NumReservation + 1;! s% C, k/ y2 Z, e
                                end;0 C' N' t6 l; O
                                @.CurrIcon := "drivingHome";! ]- N; o( a# Z' a+ U# c
                                @.DrivingHome := true;
# w# O  F6 }3 K5 v/ D                        end;# h  }: Y& G! r* _. t
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ [% s: G" \+ p0 N% X" o( z7 e6 E                        part := @.transpOrder;
3 D2 z2 C6 K% z/ N* w; {                        part.move(@);-- load part! ]! M+ o- Q3 g1 j
                        @.CurrIcon := "load";( \. C( q: N; h+ _7 Z9 n
                        GlobalDistObj := part.globDestination;# }2 _! x  P% X: f
                        assignLObj := rgmanager.rgAssignL;
/ L+ [6 O" N, o5 Q9 s                        row := assignLObj.getRowNo(GlobalDistObj);
# S. G1 u4 B* J' J. T* a                        if Row = -1 then -- since 70/ R* E! m% Z/ j+ A
                                if lan=1 then
/ ^8 I" w1 H/ X7 L                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 O% m8 t- _" E9 W* a8 ~
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* t* B& D% [. r4 G                                else
5 X8 `7 Z  q. a1 {& z8 [0 @( }                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. E" Y) z8 X4 f  ]( `- R$ k
                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 `/ `" l4 K' H# d# v3 m                                end;; s2 R% e2 K7 Y# C# S
                        else
% w+ C7 ?9 e/ z# v3 Z8 K  h0 D9 l                                @.Destination := assignLObj[1,row];
4 C' J/ ?+ D; `/ F7 H% U                        end;                       
( {% Y8 l1 r) g                        newDirection(@);  S5 s" I4 g/ W
                        @.HasOrder := true;  w3 I9 U/ x  P+ c3 G4 Y
                end;
  f7 R3 k0 M9 {        end;
/ S  d, M/ V$ ]" w$ v9 zend;        -- of the method: ]# j; q6 S3 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 i6 I4 p. t( l7 a4 M+ F& y9 s

  ?0 A2 N  {+ m* U: w3 s这是AGV_putin中arrive的method。
) R2 h- p: E* F5 I8 x$ T! T) f. L. O6 L& @0 I  l" L& q' m
当到达物料速度越高时,这个报警更多,8 j* a* `# Y- [' `5 ~
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  k6 q' q. Z7 A: {  v7 f- Q' K
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! k# |$ a7 u- Y1 G9 r9 ?8 }. O9 w
+ u* X" f. ]1 Q/ C6 x: T/ F* D: M另外一个小建议,就是move,所有的move都可以这样5 U% m, _, ?7 u& p6 Z6 \: d
if not move() then debug end
' \1 _1 B2 F7 E. {  w) {7 X这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 N8 ?. F1 W0 y0 L9 ?: _9 s! \
plant simulation中的free libraries有AGV模板,% V( Q. y- m% @" b
里面也有案例。& k8 Q' j7 ~% n* H! w
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 @+ @6 w& \: b  d9 `8 n3 `% Y7 y4 r' E: u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % V$ n1 i. }$ t: U1 t
2 ~5 |7 F( x* g$ ?1 k/ h% D
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! D% X( v1 A2 s& N4 w# Z4 C" K这是AGV_putin中arrive的method。
1 _# G  G$ P0 I3 Z' O# r; v: D: I1 C' o/ n: t* B/ [0 t
当到达物料速度越高时,这个报警更多,

# j1 C) M4 H0 g2 v另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-1 09:27 , Processed in 0.017898 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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