设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3690|回复: 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'% q- V$ D# {& X' C5 Y7 \* S3 k
*/9 M' Y5 |# U; _7 o( Z8 ^+ y, v
is" M; s% B  y' K; I+ o
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 |/ z  E% ]$ a) r8 k/ U5 M$ P7 E. K) Sdo. z9 h9 I  i4 i2 K4 C
        Lan := rootfolder.Internal.Tools.AOLlanguage;. d. i$ v, M+ ?
        if current = @.Destination -- else return
' L/ T6 g0 c7 U        then& P- L. y' W; a1 R  I. J
                @.Destination := void;
6 D# z: H$ h3 X: X6 Z                if @.occupied then% ?7 w: X  l1 b% A3 N5 m% a% o
                        part := @.cont;
; W2 }- K! k2 W                        @.transpOrder := void;
7 d7 \9 q' G* ~8 A" u3 l7 F3 C                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 |1 c- R/ H5 h0 Y! _, h' H                                @,root.eventcontroller.simTime);8 z) J( i4 h$ ?9 h3 Q
                        @.HasOrder := false;
7 M# ^" N8 t6 @9 \% z, l                        @.DrivingHome := true;
7 T6 F( t9 z* X. C3 h8 |                        rgManager.tryToStartTransOrder;
' q) I& a* K) x9 T                        if @.Destination = void/ T: g( Y, V# e- M$ n- D, w
                        then -- no transport order for vehicle @
. K3 s9 J# h# N% B! m9 {+ M                                @.Destination :=: {- O6 W! N5 X, F( ^
                                rgManager.nearestFreeStation(@,track.~);' K6 A: {* F9 R" ]& p6 k
                                newDirection(@);   
. [, X# L& w6 v5 V% F/ R1 M                                if @.Destination /= void then
1 v( i0 p8 n/ P/ x( I, J2 L% ?; _: \                                        @.Destination.NumReservation :=
1 q' a0 q: L5 J. O" Q                                        @.Destination.NumReservation + 1;
  q$ \+ n: Y' ?0 k                                end;
/ L2 u0 `* o  |' y3 P* x                                @.CurrIcon := "drivingHome";( Z" Y: n- ~( A5 W) E% h
                                @.DrivingHome := true;
$ f8 o& u2 a7 R* n7 e3 r0 j                        end;
' M6 x, g2 \0 v# k  E7 t                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& g: R( t2 q; k' k
                        part := @.transpOrder;
, |- @& M) g8 y8 N- ]: y+ d                        part.move(@);-- load part( P5 _& n4 o- d& ?; z- A
                        @.CurrIcon := "load";
) _8 M* ?  d/ W4 |# e; u                        GlobalDistObj := part.globDestination;
4 m4 e8 T! j4 a3 W1 m                        assignLObj := rgmanager.rgAssignL;; E/ y- H$ e' I+ @" O4 Y* a9 D* c
                        row := assignLObj.getRowNo(GlobalDistObj);# x9 }) b! V) [6 u% C# c
                        if Row = -1 then -- since 70
5 N' g  X# F, f+ `$ V  o                                if lan=1 then$ ^: \/ S& [  m
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 @) K( t0 w" `- y. u6 h; b) |- J* u
                                                to_str("in der Andockstation: \"",?.~.name,"\""));& P  o/ ~: X. |  @& z. D
                                else9 `2 d# M" u8 \0 r) O: Y/ P
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 v( Q; k. \: Y, T7 |2 ]                                                to_str("in docking station: \"",?.~.name,"\""));                               
* p+ o0 i( g$ T, @  T1 v8 h                                end;
8 ~1 H9 L3 B4 i2 W7 B( Z3 c; H% ~7 \                        else, [7 N% S0 [, `2 e+ y
                                @.Destination := assignLObj[1,row];8 R1 d3 w; z4 e! C0 x$ `
                        end;                        : s, k* m5 `' p! f! V+ {$ Y
                        newDirection(@);! T+ q# `: `" c5 O
                        @.HasOrder := true;
+ H- U) Q- v, u2 x9 E7 c1 Q                end;( A3 D! i' n- q% R# F
        end;& n( j4 p  ?" k
end;        -- of the method
6 h2 j' q$ V2 r. w) m) \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 F: p( m  r. F# z2 b. R

0 O; W7 u8 L& a2 ]' k! X, T( p, x这是AGV_putin中arrive的method。
5 Q- e% X4 V* S1 v! N- ~2 F: y9 }* [8 e; j
当到达物料速度越高时,这个报警更多,) n; f7 E! h. ^! Y; ~
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 p5 W% k2 Z/ c7 G* Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  n* f9 W& ~7 c! \1 J( o  D

6 O- I, z: D! r; ~3 z另外一个小建议,就是move,所有的move都可以这样
3 M( F; t* B4 N/ yif not move() then debug end, N/ U5 B0 p' o6 L
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 g/ z0 Y  ?3 r& S+ g
plant simulation中的free libraries有AGV模板,
1 w; |3 M% O6 V里面也有案例。
/ o( ^" k2 L8 q) z$ Y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, W' D& d( B: q# e) Q* O6 ~
: {5 b5 G  `1 a. ?; c; p; `5 n我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! l% G" D1 M$ f% n3 d
) g& M9 S7 N- o; d5 X; ]
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : W% Y' R( U* \
这是AGV_putin中arrive的method。
/ M& ]. j0 q* W! T% X5 W
/ f. s) p9 \$ e当到达物料速度越高时,这个报警更多,

5 \" B/ h$ N* O( Y) V另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 19:31 , Processed in 0.015613 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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