设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8862|回复: 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'
) R9 j2 q' I1 m' D, a*/
) H3 h* m/ i! d: ?is
; J  ~/ I6 m+ j; [        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ `4 N; V8 `1 S! q! |' D
do9 u  s- e* z, o# |  s0 z0 H& C
        Lan := rootfolder.Internal.Tools.AOLlanguage;
, ?% q1 b3 L, \. a        if current = @.Destination -- else return
! \$ d8 o/ c6 R' J' t        then
. N9 G9 W  b9 m, a, |/ X                @.Destination := void;0 N; [4 k; Q! n
                if @.occupied then: }; O& H( x$ i' U- y
                        part := @.cont;
6 q& ~8 [  a% s* T/ t4 m                        @.transpOrder := void;
6 B5 s5 a, X* h                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, P) K+ o4 Q7 V                                @,root.eventcontroller.simTime);% ?4 O! ?( s* L' q; i1 ?3 K
                        @.HasOrder := false;
% a: C" n1 h8 [9 ^2 C0 R                        @.DrivingHome := true;$ C7 p! d3 a0 H
                        rgManager.tryToStartTransOrder;
- E, A( r' G6 f! p" Z                        if @.Destination = void
( S) [& j# y; \$ Z1 w6 t  s                        then -- no transport order for vehicle @
6 K2 H% H: R4 Y) K0 G1 v                                @.Destination :=
+ ^" X2 i4 _" e7 W7 l                                rgManager.nearestFreeStation(@,track.~);. W7 c* d" P% _" ^4 Z5 f" c# P
                                newDirection(@);   + }: \% B1 ]; j1 z
                                if @.Destination /= void then
- s3 x% A' }0 x/ T3 z8 r! q                                        @.Destination.NumReservation :=- S! R4 R& R) ]5 m0 t! g
                                        @.Destination.NumReservation + 1;- |. O" C; }! i: Q$ z9 o3 p8 f& @
                                end;2 O2 _% O9 f1 f7 u2 v
                                @.CurrIcon := "drivingHome";/ h: V' x6 G2 t# O! k
                                @.DrivingHome := true;; n$ b. ^5 H7 g) d' x
                        end;
9 l6 D/ i( r& y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& D8 a5 [- h/ H$ @. j/ n" n                        part := @.transpOrder;* y$ u8 e. o- ~* J
                        part.move(@);-- load part9 h0 c3 `0 |! o% X" e* T* q
                        @.CurrIcon := "load";
7 W5 `3 D: V! h$ S* Y- A                        GlobalDistObj := part.globDestination;
# n/ g7 g  K- X, x. {$ @                        assignLObj := rgmanager.rgAssignL;
; q: Q5 C: B. u1 O2 S( c7 T                        row := assignLObj.getRowNo(GlobalDistObj);, D& f" d' w, D* e
                        if Row = -1 then -- since 70# s. C, S+ H0 u
                                if lan=1 then6 N$ C; b: a% m! Q$ c
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 ?) Q  {. Q5 L0 V  V; N$ ~8 l8 I                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 U/ N6 w& ]8 r# U. K
                                else) X8 ~# U' d# r& C. e7 n
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; s7 l( W% a2 t* h                                                to_str("in docking station: \"",?.~.name,"\""));                               
) I! g* ]/ P  ~                                end;& ~1 h: ?  ~% [
                        else
* T1 z3 q: u* z/ ?1 R* P                                @.Destination := assignLObj[1,row];
* X% t3 G' @9 b, F; y  c/ a                        end;                        . [. N( T7 J7 z0 p0 C5 r
                        newDirection(@);
$ A3 d9 B+ w6 d% }& n                        @.HasOrder := true;# I" v* u: T/ o6 T
                end;8 e4 ~- @& `" {) V: I/ {5 P
        end;( b: S+ W" e1 I  K+ R* U
end;        -- of the method
$ V( ]" c9 T1 \3 C  d- d. R' A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . [9 B; \5 O  T' F! R  l: }1 }

: o# Z+ h* g& H8 y5 t8 P. w; y3 @这是AGV_putin中arrive的method。
1 o  [7 b, Z( }- [2 K7 P0 k, Q
; k( K6 V5 n% X+ w9 b当到达物料速度越高时,这个报警更多,! J! N8 J+ N/ c# ?
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) q7 ]. f( Y9 I  b3 g; i9 Q! F
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! S5 ?/ I( m7 |: i8 ^7 j7 V. m; V

2 l5 R& ]$ H" S$ k5 w9 R% z$ J另外一个小建议,就是move,所有的move都可以这样
+ D& Q; ~, t& l$ Lif not move() then debug end
+ }2 g4 g/ M! T$ m4 ?4 j9 w" e, j% L这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 `; p7 t/ C% R. Splant simulation中的free libraries有AGV模板,
: t$ n2 n9 W+ g; l9 K里面也有案例。8 g2 O; I5 }7 N. J
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* @1 {& F4 w5 W( `. I1 @1 m
: `- F: w$ w/ |3 r# ^我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# I" `1 ^: R8 w1 S! s# z, K
" e+ B! e! m+ x8 r+ {5 e0 L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + [0 i0 j  H0 l' I+ S$ }' K
这是AGV_putin中arrive的method。4 O" c4 z) m1 I0 T
0 x+ w6 l) ]; ]5 ]) E# a
当到达物料速度越高时,这个报警更多,
0 f2 |& P8 f' r  E- t
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-30 21:32 , Processed in 0.015448 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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