设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8618|回复: 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'
3 X* I8 o/ O* R1 b; t*/
- ~( [; ~, I# V7 ^) E! Mis
' M, l! s; t8 m  m. U% N- T) z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 I( n6 \  l* C, F( ^) l( zdo" X- o6 N, o0 T; L# Y8 Y  E
        Lan := rootfolder.Internal.Tools.AOLlanguage;) y) I7 R- V+ Z
        if current = @.Destination -- else return
) `& c/ C$ A* E" r/ W        then, C- f  M& v2 G8 T3 U) O/ P
                @.Destination := void;/ u# w# S0 O7 F0 w) |
                if @.occupied then! u! K# L/ D" P
                        part := @.cont;& u' @( m7 y9 b' D' L1 m. w) G: h
                        @.transpOrder := void;& P* a$ i( p- m# `% \/ d
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 I9 }. D+ U: S; x6 S! A
                                @,root.eventcontroller.simTime);
, B) f; d' E' F1 Y4 r! {0 ?0 F                        @.HasOrder := false;0 i/ v5 t. f' j1 s1 k
                        @.DrivingHome := true;
# v& `0 J- Y- U                        rgManager.tryToStartTransOrder;
6 |! B2 A  k2 z' Q0 Z  |                        if @.Destination = void
0 K" v5 l* s! c" a: F. Y: @                        then -- no transport order for vehicle @" P% C& F% h( M, R/ h: T  p
                                @.Destination :=9 X" Y* f. L( m5 O* t* h
                                rgManager.nearestFreeStation(@,track.~);6 N  T" x8 i0 u& h. t0 T: X& F
                                newDirection(@);   
9 m( S- _. W5 M# M8 [                                if @.Destination /= void then& f/ Q/ ~7 X% T, q( f
                                        @.Destination.NumReservation :=
1 m1 x* D& i; D% a                                        @.Destination.NumReservation + 1;+ l3 s- p/ ?4 F, K0 N3 A
                                end;  _6 s9 K2 G; ]7 s
                                @.CurrIcon := "drivingHome";  E; `5 P& l( y0 u0 f
                                @.DrivingHome := true;
$ ^$ }- ?; d# k& ]1 n* x                        end;
! I7 t6 w/ p! V4 X) S- [" ~                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 M' q. S+ \4 m* b& n" p, J- t
                        part := @.transpOrder;5 Z9 Q9 t4 F- F5 P; N6 X
                        part.move(@);-- load part9 O6 O& S) b& ^$ D; |
                        @.CurrIcon := "load";
4 Z; p! ]4 Y* \4 ~                        GlobalDistObj := part.globDestination;' e; D+ B) v0 C4 e3 p  {4 R& d( Z
                        assignLObj := rgmanager.rgAssignL;# d2 N0 x) d- U' u
                        row := assignLObj.getRowNo(GlobalDistObj);8 Z' H9 z2 `" D- T4 `& m+ f
                        if Row = -1 then -- since 708 s! f. @% Y3 N+ N4 P6 d, t4 u
                                if lan=1 then& O- s& c7 Z3 b7 Z8 `, @. ?
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ N9 H2 Z$ p4 K# s, z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# w- L2 g; e$ R, J( H% A                                else
- Z! N% y! N( Q# i6 ~                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 i* Q$ X& ]" O
                                                to_str("in docking station: \"",?.~.name,"\""));                                3 h# D: [% s0 r, f+ m$ _6 ^* K
                                end;
; x7 P- q3 L, U                        else7 H0 r5 P% c  b' q* y. H& }
                                @.Destination := assignLObj[1,row];
' J# t9 C4 Y2 z! }                        end;                       
6 L2 _3 ?; u6 g9 E# T                        newDirection(@);
5 \* p0 F' ?; b1 Y& l4 ^- e% z                        @.HasOrder := true;
; s* j/ q9 c4 F' Z, |( Y3 c                end;
# t. S4 P4 O3 i1 \7 r3 y) H        end;
) U6 L7 n8 V' Y1 f- }end;        -- of the method! K  p) r. u8 e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 1 q4 t6 M, @  h2 l; i- |
3 M# e. U  c+ y' ^; g9 H: `
这是AGV_putin中arrive的method。
$ p: v& Y, D5 ?- i6 _
, `; [2 A. _& q. r8 U# {, u当到达物料速度越高时,这个报警更多,, `- P- e* F  E7 t2 x
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& w2 Q: j0 C- x2 a程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 v3 T% c8 ^6 t; [

, f$ r7 i- [  b# D! ?- P" c. s7 T: d% k另外一个小建议,就是move,所有的move都可以这样
2 [. K# s$ d3 c$ C8 l6 yif not move() then debug end
0 u9 k( }; y+ D  D/ y/ j这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 d* Q, S0 b/ l1 e7 |! T: Tplant simulation中的free libraries有AGV模板,
3 }# _' s2 p* F  |/ Z里面也有案例。
+ `! b. \+ X* L; a我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 F9 _/ g1 K3 G) J
) `" H9 d4 K* Y) Y/ Q/ U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: T+ M& J9 a, L2 C( F( V0 V0 r, {1 y; \3 R6 K$ {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 E6 J. X$ Z5 }; y这是AGV_putin中arrive的method。
' S4 y, E( O. }8 V) G' a7 A4 p* [
当到达物料速度越高时,这个报警更多,
: B9 i# b5 {6 H' v/ ~
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-16 02:12 , Processed in 0.016758 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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