设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8803|回复: 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'
9 w& N% s  Q( m  L' \/ y- p*/7 E2 R' j/ j# P
is
9 Q" v% ~" I* U: D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 C! v5 N( I. N. t  O+ m/ ]
do; c  c2 @9 r. r9 Q; v+ `3 ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;
( {1 |! D8 L/ w$ S3 s& ?+ x        if current = @.Destination -- else return
) ?2 j2 q- V" t/ j        then. |7 p- D# T' V0 `. A
                @.Destination := void;
! b. B- g$ j' c/ h' M5 O# [! z                if @.occupied then
' J0 G3 `, [6 A7 O8 k0 Z9 Q; e3 r                        part := @.cont;: G4 ?5 M9 V, E; I+ @' w  q' ~2 t; z
                        @.transpOrder := void;
0 C5 ?8 ^  t1 x! x$ B                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' k  x5 A0 ~( P5 v' D
                                @,root.eventcontroller.simTime);! d# u) [8 ^* `  R; i
                        @.HasOrder := false;
, o; a4 @' s- a; ^' W6 y                        @.DrivingHome := true;
( _  M( a# Y0 n% j/ T5 P                        rgManager.tryToStartTransOrder;. V& @% D% B8 y; n/ t
                        if @.Destination = void
3 q; b8 I: [. p                        then -- no transport order for vehicle @
: L' u/ p8 a# ~                                @.Destination :=' u: N" U: V! D( r
                                rgManager.nearestFreeStation(@,track.~);
1 [* v* m9 _* h. [+ \) d                                newDirection(@);   
7 g) c$ k, T& b3 z2 u% b' N                                if @.Destination /= void then+ R8 b, q* G! v+ `3 B( a' \
                                        @.Destination.NumReservation :=( o/ N' X/ v8 A  J* T
                                        @.Destination.NumReservation + 1;" I. B8 {9 t/ M+ M! ?
                                end;6 K; _" `: x& D: l+ E: n; a& h: E& W# g
                                @.CurrIcon := "drivingHome";- e% B( z5 }2 V3 M* ?; V3 Q+ U
                                @.DrivingHome := true;
5 M+ a  t& Z( Q7 }9 V5 ?1 z                        end;
( J8 O* R  R4 F! W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. @. T$ k% v2 [# s, v* C  Y1 o' G
                        part := @.transpOrder;# D$ n+ S$ r3 H+ E2 w
                        part.move(@);-- load part. D) Z5 I  c0 }% H% J
                        @.CurrIcon := "load";
* S3 |0 E: W! ^4 X. i4 H) f                        GlobalDistObj := part.globDestination;
$ V! @( e' F, m                        assignLObj := rgmanager.rgAssignL;
! t9 E7 h% F8 K+ s* }! O8 A) E                        row := assignLObj.getRowNo(GlobalDistObj);2 ?4 N+ V+ R/ c6 ]7 o& `+ V
                        if Row = -1 then -- since 70
8 J0 Y9 T; H3 D: `8 J; z                                if lan=1 then) h- v+ p# e7 g2 S" y& w2 A
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 y* j+ x) E8 c+ ]! y4 E
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ b; \1 l" e9 C3 _# d% }                                else
) x/ @/ G: b0 T1 m7 C. o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, ^& o( `6 t% O0 G0 ~
                                                to_str("in docking station: \"",?.~.name,"\""));                               
% z4 s6 w8 e& Z                                end;
4 {' |  U) V- C) x                        else, m" @  n3 J6 T( U* k# I
                                @.Destination := assignLObj[1,row];0 F! y! V# G* r2 F9 L( E0 x
                        end;                        3 L8 z* t( j/ z1 T$ S
                        newDirection(@);
& Q* a+ F2 @2 r0 w9 _( _                        @.HasOrder := true;
* ^, J1 U( N  E8 U* ?, t                end;6 y/ u) C6 D$ P& g: d* Z4 m
        end;
/ B4 A9 c4 s, e6 p- uend;        -- of the method
. @' J2 ^- {, b* z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / {' m, r8 Z, E/ e) n0 k; z' d

4 t& s+ l/ `7 \  ?  k+ l! h这是AGV_putin中arrive的method。5 M$ n- n' G7 `- K. r8 K

" s7 i! d$ j% e5 ]' ?当到达物料速度越高时,这个报警更多,
3 B& m! Y2 h) I/ L2 O* h+ S" y! Z可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 |. i5 i/ C. Y9 t$ }程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* l8 c$ H8 A9 p- S+ Y

0 d- }/ o. o  N另外一个小建议,就是move,所有的move都可以这样
& i/ z( k0 d( n! g+ B, W/ y  x( E, Bif not move() then debug end1 t: O5 e' h/ w* {. y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. T. H8 w; C6 [  ?9 J6 U
plant simulation中的free libraries有AGV模板,$ W. _- J, J6 b5 q0 B- H2 L3 B
里面也有案例。
4 P5 V- |1 X  T, x& \0 E1 \% n3 @我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 h6 u. V" o8 n/ m: [
' x5 c/ S7 j$ T$ W$ m我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, v! O& L9 e  L- e' A5 A
  |! U+ h6 G' z5 O0 k: p那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 ]- q0 m- L# U  m这是AGV_putin中arrive的method。
) s8 z9 v7 ?. E# _& v; X3 g3 j* \+ s: A6 D( G% M6 `1 L) B3 V
当到达物料速度越高时,这个报警更多,

% j% v+ ^9 J2 y" S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-27 03:48 , Processed in 0.018122 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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