设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8025|回复: 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'$ P' i1 V! r8 E! ?* g* q1 s
*/* S" N; ]; o1 D4 [$ V
is
3 @+ {& o4 u1 E( f2 J9 f8 X, m$ o5 [' q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 x  L& X- T, X) |: B9 g' l
do
; i9 n+ w  O- G) A        Lan := rootfolder.Internal.Tools.AOLlanguage;4 Y+ v3 w4 U4 v( L
        if current = @.Destination -- else return
, o6 Q0 d' w; N1 Z4 ?        then
* U* q, @2 t) X8 ?5 w: J                @.Destination := void;
1 n. \1 t! ^, d7 n; J) s                if @.occupied then
# v: j8 q2 g% d# e$ I, P* _# `  E  C                        part := @.cont;" F; G. ?$ n0 y; A+ d, L
                        @.transpOrder := void;
0 ^) _, E, L; _4 e, t# D+ e1 U                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 L( E% u7 E- U2 ]! b+ b                                @,root.eventcontroller.simTime);
% F2 A6 d' f3 b& W3 H3 y. t                        @.HasOrder := false;1 m; @( k" g2 M, @" {! T
                        @.DrivingHome := true;" n* e% z$ E. b0 Q1 z
                        rgManager.tryToStartTransOrder;
7 w3 w. L; i. K+ `: N3 G                        if @.Destination = void; D1 V5 D  p- [
                        then -- no transport order for vehicle @
1 X, k; ]9 g( _$ Q                                @.Destination :=9 S2 r0 \! S; d7 w* ?  h
                                rgManager.nearestFreeStation(@,track.~);
% u/ l5 K0 \" F( ^                                newDirection(@);   
; U# G0 N3 y0 x' M. c0 |1 F) N/ g2 M$ t. M                                if @.Destination /= void then
5 m, `! e5 s% Z' w4 I0 z) j1 Y: {                                        @.Destination.NumReservation :=. w0 L* _$ I# f) Y2 V. X; H2 F
                                        @.Destination.NumReservation + 1;
2 O! f2 y9 X5 K3 ]4 R; Y, w! ~2 V; R7 f                                end;" b9 d7 s/ j0 c  a, b# r* j/ ^& s5 ]; }
                                @.CurrIcon := "drivingHome";% Q+ V5 E) F* a
                                @.DrivingHome := true;
+ _4 B+ w  e: K9 ?6 V                        end;
+ ~; H5 L$ ?1 @, Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 C5 ~! d; D& B1 u                        part := @.transpOrder;
0 n2 q, L8 S% d# L                        part.move(@);-- load part
0 m- h/ R' Q! s) H) C                        @.CurrIcon := "load";6 J" c6 ]* x' g: R" ?* K
                        GlobalDistObj := part.globDestination;7 c1 n" S# z$ E3 Z" N! y
                        assignLObj := rgmanager.rgAssignL;
2 f  g9 X6 r, w6 z7 _                        row := assignLObj.getRowNo(GlobalDistObj);4 ]' }# X; K9 ?$ D$ B3 N$ ?
                        if Row = -1 then -- since 70% X. u: l" q8 X4 j& z
                                if lan=1 then4 z4 e2 m$ j0 b1 Q7 g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. I7 c6 U: |% ?/ N                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% H4 a5 f/ t- m6 d1 {                                else$ h% B7 t  f" w& M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# `$ T3 C; g3 `- e- e4 R) p
                                                to_str("in docking station: \"",?.~.name,"\""));                                : l: n4 X% e  }$ P8 Q
                                end;% @% x/ r; q  F7 R7 Y/ M( `; [
                        else
3 H/ K( ^9 q- k- O, H2 J                                @.Destination := assignLObj[1,row];
. m+ C$ ^; G- I2 U                        end;                        4 z  E0 }( c9 Z; e
                        newDirection(@);
; t3 P. S7 d* V" [) h9 K                        @.HasOrder := true;' Q! l) C; C. ?9 D/ b
                end;
- Y3 `, h# [8 c/ }8 t        end;
; }' M0 K3 V9 n; `. fend;        -- of the method. O: V- o) j; Y* ]: v3 Y* w% C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 P# L& l: t/ T. R

6 e8 J9 m9 D' U2 @% K% f+ v这是AGV_putin中arrive的method。
" Z! [5 F* L6 w- B! m3 S6 E& k' ]3 \# }1 U9 H- T) L, S9 b
当到达物料速度越高时,这个报警更多,
" Z$ u" T' {; Z7 @可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 b) m$ ~2 c1 k5 U# s( L  T7 G8 f程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. r# _* R% F4 X4 x* G( @( p+ D
* Z: W  y4 A* z! b* I: [
另外一个小建议,就是move,所有的move都可以这样
: }+ d* G- }) G; n7 U8 p8 }if not move() then debug end
5 F. h: k7 Z2 Z9 o0 I; j9 h# G这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* w5 w6 f/ J" |* L( I/ F( x- h
plant simulation中的free libraries有AGV模板,/ B. E$ x% R! t" g1 }3 F6 X
里面也有案例。
) M3 s8 @- [7 Q) s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 a  A: \; o- Q7 Z' p* F# H) V
- K% ?1 j( b" P0 H: r2 _4 L3 z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   E4 p1 Y" u6 V: t8 a

. e3 k3 C' ^! K! H% ?+ Z+ T! z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 D3 ^7 t  b& c这是AGV_putin中arrive的method。
; f) s4 i1 F* b+ Z# {; ^* p
1 x: t( z! h/ A" K7 J' P当到达物料速度越高时,这个报警更多,

7 J8 E9 k9 o9 b/ f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-11 08:36 , Processed in 0.021522 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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