设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10307|回复: 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'
' w, F! ~% T2 v* J% M0 C/ z' J9 A8 U*/
/ x8 d/ i" Z  ?% T" o) W/ p, Jis
/ j4 Z5 a" I1 M) n% A9 F        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) E, ?4 q. m5 zdo. s. y8 \6 _) r9 y7 e0 _3 D  ^- e3 {) K
        Lan := rootfolder.Internal.Tools.AOLlanguage;* T8 w7 b& h! x
        if current = @.Destination -- else return, }7 e/ m' M' ^: |/ I) J0 h8 l
        then9 @- X. A+ D& X9 E5 }* d
                @.Destination := void;
& I9 T# E+ Z. i                if @.occupied then
1 W6 \  w9 C% o- g& i                        part := @.cont;! v9 v/ J+ R& u0 |7 ]
                        @.transpOrder := void;
+ _& Q6 y9 K* Z9 I; G+ I6 u                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ u" m/ ^+ F+ a0 D$ x                                @,root.eventcontroller.simTime);7 g' O9 Q; d( B% ^
                        @.HasOrder := false;' E8 ~3 o; J: ~
                        @.DrivingHome := true;  H( J  Q. S- x8 ~: o, |2 V
                        rgManager.tryToStartTransOrder;
' A& u& V- ^  a1 r                        if @.Destination = void6 o7 e- k- [! k6 l- X1 `# _. [+ Q
                        then -- no transport order for vehicle @3 H  C* P2 d2 ^, Z' w+ D
                                @.Destination :=; L3 m& u8 f( P
                                rgManager.nearestFreeStation(@,track.~);
6 c1 L+ \: R) t5 R5 ]4 T4 P$ s                                newDirection(@);   
, e; S1 n' ]- s  w9 \8 E+ e4 ]                                if @.Destination /= void then9 @5 n: c9 s; [/ A7 d
                                        @.Destination.NumReservation :=
) s+ ?0 N6 o/ W7 E0 E4 J0 C                                        @.Destination.NumReservation + 1;$ }' A9 x3 f  i
                                end;
, \* R" a% d. j/ G8 o                                @.CurrIcon := "drivingHome";
* o9 ]( N! p4 q! q2 E/ h+ d                                @.DrivingHome := true;& _; J7 I% @& O) N$ H7 V& O
                        end;
' |: R" u* d$ u. x& x  E2 U                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ F  u* w6 z( Z
                        part := @.transpOrder;! z6 B. E, J0 I  F4 V$ t9 B3 U# h
                        part.move(@);-- load part
) b- T8 M; [3 ~  T% a                        @.CurrIcon := "load";: O1 [0 g( [9 `; E# \9 w( q1 \
                        GlobalDistObj := part.globDestination;
, ]- l9 F' ]) ?1 K  q                        assignLObj := rgmanager.rgAssignL;
' Y8 M/ a; k4 [0 L/ i                        row := assignLObj.getRowNo(GlobalDistObj);
/ W5 L+ t2 Q; y/ a5 a" c! n6 c                        if Row = -1 then -- since 707 Q# Z/ P: K: v- s+ R
                                if lan=1 then( p6 T$ `( Q: ]. G0 }; q2 n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ T6 i7 x0 L/ @/ ?0 v                                                to_str("in der Andockstation: \"",?.~.name,"\""));. j! N. ], R1 s7 N9 B8 G
                                else) k$ g, i+ Q! O9 ?
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 j. H" F% X% g6 G                                                to_str("in docking station: \"",?.~.name,"\""));                               
! g; a) s9 N* _6 M                                end;9 M2 A: m) y0 v8 J, s2 }' d
                        else& r1 F# ?1 o0 l2 G
                                @.Destination := assignLObj[1,row];
( |( Y/ B2 ~0 R" t                        end;                       
9 s" O5 ^6 k+ q) m" I7 k/ i: W                        newDirection(@);
/ Z5 H0 q0 B* B7 i" T                        @.HasOrder := true;
, N. [2 l4 B& C0 x                end;% N% a, E& [8 n
        end;
2 s) ], v! [! i3 T( i9 Eend;        -- of the method
0 i' S: P& [" j) \/ J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   }* s4 w' R4 D' r6 C: F

0 D; d  f% g# p2 k4 ]3 F9 C6 T这是AGV_putin中arrive的method。
' l# ]+ v% M5 _% Y6 {1 v( K  m; ^9 C0 c9 A4 U2 \; T. H
当到达物料速度越高时,这个报警更多,- g% w# f: B/ T. X# W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ r6 S4 P3 I3 k& N/ R- \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
: }+ s5 n7 \7 `6 L! w! n5 v
1 Q* U* i3 a/ P, o另外一个小建议,就是move,所有的move都可以这样* R: S6 q5 ?& J& X. X
if not move() then debug end
. E5 ?) D$ D# X/ {. {' r* g这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( Y# ^# J3 N2 @$ n* z
plant simulation中的free libraries有AGV模板,- M2 p7 J8 ^, M3 t5 |9 d0 M, u
里面也有案例。' ^9 D, @/ J8 e% T0 z' I0 y- }* k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ ^) ?3 C) c3 }' {

) B* t) o- [0 d& q9 G$ @我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 l2 B% w$ n% \2 t6 v7 O1 R; J  l
, O: _2 `- m" o& P
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
, x: f. @* @$ S这是AGV_putin中arrive的method。, M: p# O" ^4 D  m2 ~- K
+ m$ F/ T$ N; l& k' Y, J
当到达物料速度越高时,这个报警更多,
! w6 V$ k3 e! C: S2 x. v1 p6 G* b( G
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-26 06:51 , Processed in 0.018709 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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