设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8444|回复: 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: H6 _6 I0 ~# R$ _8 ?*/" T& l' ?% P8 o& s
is
7 i* d8 _; L% o0 l1 l8 R. o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 K" O' S; x% q, ~do+ v, l3 f) n" p# W2 f) L4 a1 J, {- C
        Lan := rootfolder.Internal.Tools.AOLlanguage;. f* A# Q, q. G6 s* W
        if current = @.Destination -- else return! T! E: V$ p) A5 G( O8 c. O- y
        then/ x0 S: t6 A; r2 H
                @.Destination := void;7 B3 d$ o( I; l* L2 S: ]1 Q) Q9 T
                if @.occupied then
9 f& Z, g0 e+ T* N2 G                        part := @.cont;9 e) j1 q+ o( L) l+ M: U1 M
                        @.transpOrder := void;. i$ s- k9 @; x, L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! v/ O" B! N0 T+ l
                                @,root.eventcontroller.simTime);* s, ^/ F4 P, @+ I4 r4 u
                        @.HasOrder := false;
* S* F' ]2 ]" v0 D7 L' J                        @.DrivingHome := true;0 y; Y) B8 ^! S5 S
                        rgManager.tryToStartTransOrder;
/ s* y* X( w2 L( a* t: S  I# {7 }                        if @.Destination = void# d+ z6 Z4 y) r; E
                        then -- no transport order for vehicle @) h+ q+ Z0 t; ~- z- J5 S2 V8 O
                                @.Destination :=- u0 v3 c/ G7 V+ K1 Z! W; `1 t
                                rgManager.nearestFreeStation(@,track.~);
! Q9 D# v/ h2 O                                newDirection(@);   % X0 s7 K+ [& [0 D2 S
                                if @.Destination /= void then
) y; ?- d  u7 q2 A; `* N5 y% Y/ Q. b  ?                                        @.Destination.NumReservation :=$ n$ ~6 R- ]5 W7 I
                                        @.Destination.NumReservation + 1;3 \: P$ E7 `: Z5 K. w
                                end;- F6 e0 S7 C) Q# i
                                @.CurrIcon := "drivingHome";/ g& t/ O( @0 ^" h
                                @.DrivingHome := true;$ c' h$ K/ h# v5 e; V
                        end;3 L3 p- E( A$ N% M- [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ J- x" J! s7 ?: m. K3 {
                        part := @.transpOrder;6 I" D1 m4 K) i
                        part.move(@);-- load part
. z. ]/ ^$ t& w" w- S' T3 X0 \                        @.CurrIcon := "load";4 C; V4 d8 I+ |( {
                        GlobalDistObj := part.globDestination;
6 y" w& G+ u5 c2 m) a7 C                        assignLObj := rgmanager.rgAssignL;
0 C3 t8 l9 }; J                        row := assignLObj.getRowNo(GlobalDistObj);
* {, P; s: v! H$ C: F7 {8 ]                        if Row = -1 then -- since 70
0 S+ V' f8 w, t6 [, A- l                                if lan=1 then
' \! b" @+ |, A5 @0 S% z2 X                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* O/ D! ~, w) C8 l+ ~- e& q, s                                                to_str("in der Andockstation: \"",?.~.name,"\""));# b9 q4 U" z- }6 K9 b* a0 a
                                else
- B9 E/ V, H/ C/ g% f2 B6 ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 E/ I6 b2 b5 p% g! n% ^                                                to_str("in docking station: \"",?.~.name,"\""));                               
  N% ]5 n/ a5 f; c                                end;5 `$ K' x: ^% r; G6 C' w$ r
                        else/ C  r: X* r; I
                                @.Destination := assignLObj[1,row];
7 ~* Y. D* n1 V" ^# ^( Z( i                        end;                       
3 v3 I! j" ^2 T% W                        newDirection(@);
- d4 |" o- Y! ?. V4 D2 I, g% ^                        @.HasOrder := true;
% D6 U, C; @; ?! M' `                end;8 a2 B5 w6 E  H! L1 Q6 `
        end;
* X: E6 \% ^- k) K7 _% a, A# S7 W% _end;        -- of the method
6 K0 x7 L; f) N5 i# t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 n, e4 E( [' h9 P

  A% v, Z9 z$ ^. x这是AGV_putin中arrive的method。& u0 z8 s6 ~5 E+ _& O$ Z/ L4 f
4 y8 j) S0 n: `1 p# q! b
当到达物料速度越高时,这个报警更多,
- F& b& t2 C. w5 u! G5 ?可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。- Z. V) G8 P5 I  u( L4 y& K! _5 g+ g
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 j$ [8 ]/ W; j2 a) s* e% w8 }- W  T) V. J* D
另外一个小建议,就是move,所有的move都可以这样# C' O2 @$ V. J+ f5 c* I( H0 Y
if not move() then debug end+ N# U& [6 {! F' H' v" M
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* L, k  n. L$ T" L% N! y8 a/ h3 L
plant simulation中的free libraries有AGV模板,
6 Z4 R! W; K  K; O; S里面也有案例。
8 ]! G7 G  p; E' z2 [我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% s. y- l1 _- j. l: u

, W! j/ t6 O4 U4 h/ w我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ E3 G7 {6 M/ `8 p# t$ y' B2 T0 Q2 P  e) j2 u( f. G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ t# w2 }' z6 N0 ~3 V这是AGV_putin中arrive的method。3 t0 C* {9 }7 o3 @8 }6 j

$ F4 u& i  f6 g/ {4 U# ?当到达物料速度越高时,这个报警更多,

) ?1 O! e" n' n' B! }4 T; z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-4 08:56 , Processed in 0.019149 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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