设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9224|回复: 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 `- T/ [" X0 w! l6 m/ U*/
) F. I( t4 X. z6 o" R7 Lis  W' O' |0 G2 C4 V' k. U* }" {, d
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; ?' n# e# L0 u+ C% q6 }8 ~do
3 E. M3 z6 V2 Y1 B, g* ]& D        Lan := rootfolder.Internal.Tools.AOLlanguage;
  c8 [8 k. N8 _3 A        if current = @.Destination -- else return
! }7 k1 z: X4 R- ?        then5 u: g% R  V1 J% q3 h
                @.Destination := void;. z! A: W+ Z. ~5 s1 p) P7 a
                if @.occupied then
$ ]4 q1 Q" V7 Z" `8 q7 P# i4 c4 e                        part := @.cont;' e2 w9 D# K  G: }" r5 X! A
                        @.transpOrder := void;6 N  p# e$ ?- D  K2 t$ o
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* E3 D7 U0 q; r& V" E
                                @,root.eventcontroller.simTime);
( [( E* K) q& `; e' O/ B  I( g  |                        @.HasOrder := false;* ~) O$ b( W+ U! Z
                        @.DrivingHome := true;
. l. l- N) z2 x/ {, M# B" K' f                        rgManager.tryToStartTransOrder;
; ~# {5 f; X% q$ ^6 b; I0 ?                        if @.Destination = void7 |# V" E5 K. Z* _/ f1 F
                        then -- no transport order for vehicle @
. l- p8 T+ g+ V7 S6 K- N4 S                                @.Destination :=
% O( u3 Y+ K! u3 ^8 r" |0 ^( c$ N. H                                rgManager.nearestFreeStation(@,track.~);+ H; Z3 |5 ^/ D* a
                                newDirection(@);   
% N  U) Y2 [8 s+ ]; Y5 n                                if @.Destination /= void then% m5 j3 g  T/ B; S  x! w/ n* e
                                        @.Destination.NumReservation :=
' B5 `3 o" n7 \) p( g, }                                        @.Destination.NumReservation + 1;
3 R9 H  N5 z9 M& h; C                                end;1 |1 n* ^# b6 t* j- _0 W8 [1 H) {
                                @.CurrIcon := "drivingHome";
, k; q, X( `( f8 G; g                                @.DrivingHome := true;7 a( v" E# ~9 V- U
                        end;
: Q. v3 u0 f( L7 r( i                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 {7 x/ K# U. J' i3 a                        part := @.transpOrder;7 s; m, i; V& t- ~, y9 c. n/ {
                        part.move(@);-- load part
! V- `3 M; J: @# F( w4 y                        @.CurrIcon := "load";2 m: v- B9 r6 \5 w+ b2 X1 N6 X
                        GlobalDistObj := part.globDestination;5 s* t2 {, O, c* [. e7 Y+ f
                        assignLObj := rgmanager.rgAssignL;2 p% K  t" V8 W4 u
                        row := assignLObj.getRowNo(GlobalDistObj);. S- a, a) l( d
                        if Row = -1 then -- since 70" S) U3 m+ p% u$ q6 I% c6 m
                                if lan=1 then
3 A/ b: Z' k/ B, y: }                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 [" i% s- @# `- n7 k& u: m
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 T! I/ @6 M  Y                                else  o6 |+ ^' C# z6 s' h5 |" t
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* E+ q, B/ c4 y# ~# r- L& |
                                                to_str("in docking station: \"",?.~.name,"\""));                               
  ?& l% J4 c2 H5 O! E; F  n9 ~                                end;
# w* a/ Y: f8 L5 p                        else: S1 D5 q: G" J* t
                                @.Destination := assignLObj[1,row];
( e' s1 |3 K) P; {6 o; d' N' |                        end;                        0 H: Q5 y( ]4 C2 y
                        newDirection(@);" A/ a. E; g  ~! ^4 }4 b; o
                        @.HasOrder := true;
1 [, H* \# o2 @! F& A6 c- u                end;5 u6 z3 s- p( y$ _+ n, n
        end;
$ W; |" ?  }! send;        -- of the method
: u$ N" A/ c2 i! x& t7 ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ Z( d6 Y  D: X: i7 b3 s9 o- C+ {4 ?9 [; F( {& @4 U
这是AGV_putin中arrive的method。  o" P6 D' H' ?" B# j

8 C' Z; l5 W2 X7 Q当到达物料速度越高时,这个报警更多,5 ]% v+ h5 b: [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 u. r( ^  E5 g/ A2 R% D/ E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* s; W( _' f5 E! [  _6 Q) M
7 m6 K  p) f3 L) @另外一个小建议,就是move,所有的move都可以这样! u  b4 o0 u' g% |, C- H: o9 B3 C
if not move() then debug end" t6 _3 S( t7 x; H% P" T: E" U
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& x/ K! |  c! ?; b
plant simulation中的free libraries有AGV模板,
# v! p" S: i( p! G! \. k& Q7 c里面也有案例。/ c3 j' Q& G+ d3 p! \9 ?
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 G8 a9 W% c  Y9 H8 m
2 ]' d4 v3 G& I9 V/ @
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 X: Q) Y/ A. E, R+ N( @
( c. F7 q7 N$ ~+ m; q: B' i
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 p( C% o; G. y
这是AGV_putin中arrive的method。
4 ~) E  \* Z( n1 ?) O+ Z+ {: W8 R; x* k' x
当到达物料速度越高时,这个报警更多,
: i: l3 i' H0 @2 I$ J3 E, F
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-20 03:11 , Processed in 0.013614 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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