设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10086|回复: 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'+ b, P! ?! T1 I( m# m3 j6 e
*/
, K5 l) Z" T0 n6 Y$ k9 N7 Z; ?is5 x+ t5 k: j/ {
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 H# x9 l6 p% D' C/ v3 W
do+ q9 S. `% K3 T9 V4 j  a) i+ F( k
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 H1 i, `/ _: Z2 k2 [        if current = @.Destination -- else return
7 W$ C6 X- V0 ?/ c        then
. X& y+ u2 R8 t3 R( k9 x% [# r  {' G                @.Destination := void;& Q7 T1 i+ n- F- d. _$ N
                if @.occupied then
2 H8 i# d4 Y* a0 `; n7 l7 X                        part := @.cont;/ C  l) \3 t) ?( f6 z7 A: d2 \1 S
                        @.transpOrder := void;
' H1 U" c2 G: h- G# S' j0 E" n                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 `- o* T3 [& R* @' }3 K& w
                                @,root.eventcontroller.simTime);& W1 x! }: f2 m: `' Q% f' v. ~9 q2 f3 I4 h
                        @.HasOrder := false;
$ t$ R6 ^; C& \1 q, H# }, A                        @.DrivingHome := true;
& F6 W; b- K# R2 Q" w- W                        rgManager.tryToStartTransOrder;) K" b- p; M" N* h' ~3 D6 V
                        if @.Destination = void, o: {0 Q, A4 O4 w" G* `, G! ~% b
                        then -- no transport order for vehicle @
5 @( b8 d2 O, u6 |* _: R' p                                @.Destination :=) I- }4 m9 D+ A* s
                                rgManager.nearestFreeStation(@,track.~);
, ~" y. e# z' r' [* X$ B                                newDirection(@);   . i/ A% U- L3 [
                                if @.Destination /= void then
$ p7 H/ z1 H& f) b                                        @.Destination.NumReservation :=$ D7 p: V$ e1 r
                                        @.Destination.NumReservation + 1;
1 h; E" s, M% e3 k' z0 h  s                                end;
1 }" Z. j' I1 }4 B  @$ t* L                                @.CurrIcon := "drivingHome";
; `9 _/ s  W4 `! Y                                @.DrivingHome := true;
# d" s6 N+ i+ d% z( \$ e                        end;" B+ l7 m7 x! Q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 N+ G$ m/ k8 b7 R; H                        part := @.transpOrder;
1 c  O/ D" h, S                        part.move(@);-- load part
% X; n7 U& _$ M" ?                        @.CurrIcon := "load";
; R5 f8 s' j% g* W/ v0 r: `) G+ @                        GlobalDistObj := part.globDestination;% U4 v( u' Y; q" M
                        assignLObj := rgmanager.rgAssignL;
2 ~' ~9 K: a6 ^7 U0 j" ]                        row := assignLObj.getRowNo(GlobalDistObj);  D' h6 B* o8 \# k) z
                        if Row = -1 then -- since 70% }0 V# w1 G5 u9 q0 M$ k
                                if lan=1 then( T9 g& x9 n* N4 V
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 ]  K; K- l5 t8 I8 C
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  J% ?% s- \! k5 o% B                                else
. Q. r3 O% f3 L$ w+ e: U  x                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),0 W( v( _" N2 {4 \6 ~8 f! T% J
                                                to_str("in docking station: \"",?.~.name,"\""));                               
- e/ ?9 \* ~) m" f  U: o  S                                end;! \9 n- t3 |, E% M! s3 l
                        else6 ~& |' N% b9 ?) o. B! D% `; m
                                @.Destination := assignLObj[1,row];  j3 s6 q) T9 Q/ _& Q# g, c# m
                        end;                        * l6 \$ B' Z# i+ Y, r* t( Z& w" o4 R
                        newDirection(@);
& S! ?: m2 |4 M4 ~. P- b$ |# O% c0 q                        @.HasOrder := true;
4 a1 R& P; R5 ?; J4 y. `; D                end;
4 `1 P' R1 y! h' n        end;) b1 u+ _, A4 V+ o. }
end;        -- of the method) ^5 e( _0 p5 E  Q$ R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 # k6 o' W( F) b8 I3 }5 k) v

2 z7 m2 b# n( N/ ^8 k这是AGV_putin中arrive的method。* K- g+ E5 x" h& C( ?

5 x, T2 k/ y  g9 O0 P/ _7 c当到达物料速度越高时,这个报警更多,  W/ t( n7 k$ ~1 C' L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 r3 @& n! c' t  ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 o' m5 b5 g/ x, K6 d+ U+ X
9 C4 z' g' @9 _& X另外一个小建议,就是move,所有的move都可以这样* K( N) Z4 u. X& A; Y7 _7 f) v) ^
if not move() then debug end% ?" ?0 }# I5 S2 y, p$ V
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! f+ W6 k5 z: a: D/ |- V- l
plant simulation中的free libraries有AGV模板," P0 k$ M7 O+ D
里面也有案例。
/ O6 h  A( j; L" G6 E- E我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* e: p  ]7 R& l& D6 B4 g: Y% e' U2 U! q* }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& t# I$ u" z" U
% f. [. H1 T4 I; q6 L1 _) O2 z( _那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 F+ Z1 v6 |  P/ x. T6 }9 @: J
这是AGV_putin中arrive的method。1 t; Y3 P( F" z' a( d  U, ?  |/ B

, J& S- T& ^3 X# }: [, x当到达物料速度越高时,这个报警更多,
9 j# z  H& y5 G
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-12 10:17 , Processed in 0.015544 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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