设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7593|回复: 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'/ d: V: G, H# W  C
*/9 z* Y/ ^5 W+ _3 T$ d3 D7 r2 |: @9 t
is
! l0 x; ?6 ?8 }/ Y4 M: j        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# v; e1 f: `0 o# x: H  F+ b5 udo) v3 `, _7 A) S; Q! s( L- V: D
        Lan := rootfolder.Internal.Tools.AOLlanguage;/ L; q" ^; i* \2 h
        if current = @.Destination -- else return+ v/ G0 K0 K2 B- p/ B
        then
3 q# x( p: }* i% \+ v/ ~1 d5 X                @.Destination := void;
: A6 P$ l) S9 x  P1 }                if @.occupied then
6 X; \* n: G9 \- b6 t& S/ i                        part := @.cont;
5 v4 T* H4 `, d1 ]- O                        @.transpOrder := void;
; C* ~: B: a! `2 S3 K( x  i                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  i2 s2 P7 W3 W* N) B                                @,root.eventcontroller.simTime);
: l* D" Q7 x0 V. c8 H( M                        @.HasOrder := false;0 [. d7 C0 D& V
                        @.DrivingHome := true;' e5 Y& y1 `. h) Q7 p+ ?
                        rgManager.tryToStartTransOrder;
) X1 P1 N4 ~6 t! j0 @1 d6 u                        if @.Destination = void
4 c4 ^) ~2 X. e! V                        then -- no transport order for vehicle @% _$ c" {! j7 w, R! w6 r. G
                                @.Destination :=7 v1 p4 \9 b; f* l- P
                                rgManager.nearestFreeStation(@,track.~);
/ [; j' r# {3 q5 T+ r3 F                                newDirection(@);   
, j; y1 n. _. h8 n0 ~" o9 i+ l                                if @.Destination /= void then
* G+ J; g4 J% B                                        @.Destination.NumReservation :=
/ E1 B  Z. W, H; H                                        @.Destination.NumReservation + 1;
" D5 v! @8 c/ N2 z1 x" Q, D                                end;
4 ~( ^; b1 U; c. a" s5 d                                @.CurrIcon := "drivingHome";* I8 Z) t- D0 p+ D& E
                                @.DrivingHome := true;7 Q1 h' T( g& g6 x" m! h% N
                        end;
3 A+ h' A7 _) @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& @  K( d4 Q( E# }
                        part := @.transpOrder;2 e9 q: J+ ^9 O8 J; c1 H2 Q
                        part.move(@);-- load part/ x/ H+ ^$ R0 e$ N& d
                        @.CurrIcon := "load";
5 @* b1 s1 Q' I3 I                        GlobalDistObj := part.globDestination;
2 d' Y6 l3 N1 ^5 g                        assignLObj := rgmanager.rgAssignL;
( l7 _1 C. j7 T: c. B5 v: F: P                        row := assignLObj.getRowNo(GlobalDistObj);
4 a/ x$ p( t" v# O* ~) d                        if Row = -1 then -- since 70
% Q/ H, r1 D& P2 x8 V, D                                if lan=1 then/ P9 u  _/ k# ?  ^, k0 {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),: x' y* L8 K2 z/ J8 h! r
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, D! Q2 v% k5 ?% y6 x( R2 }                                else4 C- ?: c: ?4 M1 ^4 C
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( Q1 E2 e; s/ `2 N2 \$ ]                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 U; A8 U# g5 y" x, Q                                end;; b  {. x3 H; q  h
                        else+ N& f1 y  Y0 y( i: L( {
                                @.Destination := assignLObj[1,row];
7 B; |; l+ q" v3 V4 v                        end;                        9 l3 j& `: D; a+ I
                        newDirection(@);
# P0 [/ b: B3 K                        @.HasOrder := true;
2 }& p' @& H4 _! l) \' p& k* [                end;
9 k& i# c8 Z5 \/ Z0 ?6 O$ W        end;7 v' S% W; n7 u  K
end;        -- of the method' f7 I! `8 ^. q" z4 e- ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 Y- K2 R& d* }8 \

# e! z0 K! t! E这是AGV_putin中arrive的method。
6 F8 [0 ~) p' n! b+ X+ j* F: f6 u1 u0 L4 k5 I5 Q
当到达物料速度越高时,这个报警更多,. ^/ b+ @# Q% ?
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 H- m4 c, j& Y- X3 F程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& k) W2 a1 U: n: z, D
# C" s6 X1 q9 P( u9 ]8 J9 ~" b另外一个小建议,就是move,所有的move都可以这样
) C- U) q# O" Z! r# t$ A; Nif not move() then debug end
! l7 i5 v" c4 a/ u这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. s. p6 P" W8 X% ^plant simulation中的free libraries有AGV模板,/ s: |2 Q$ J( o, u& d  i
里面也有案例。' ~5 @4 E3 f5 K! {& V5 @
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, l9 l  {: e. w7 R7 G, K8 {) T1 _
$ ?8 c6 I: d1 O4 h6 e: L0 I  W我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 M9 o: e' E* A$ ~4 o$ {

5 @: ^- q& w' ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ m! \( D8 ^0 C! X2 j. a这是AGV_putin中arrive的method。: Q! p- @+ ?( m7 d* {
- h( F4 b6 `1 x  @. P
当到达物料速度越高时,这个报警更多,
6 `" s7 s, ]4 A" t
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-19 09:03 , Processed in 0.023756 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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