设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7588|回复: 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'
  @4 J% R/ f" r*/2 M. C- v5 |+ ^! j. F6 w
is( u' K+ c7 F/ ~& m8 e" f" z7 J% X4 A
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- \+ |$ v. U- ~" S
do4 m, [7 e3 j/ n3 e: \  `% H: R$ U
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ k1 o; D1 a8 w. Z
        if current = @.Destination -- else return( }1 L8 i8 M3 D  Q  W
        then( Y% S- G9 |- A  K- B
                @.Destination := void;
. f# V& v& p; v! T+ |# Y# M0 ^                if @.occupied then& }) i0 h! c  ]/ C
                        part := @.cont;
0 e+ G2 H5 j5 e                        @.transpOrder := void;, z" t& ^" G9 S& S- ?$ v$ q' R. b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( W" ^# ?+ _2 S4 {/ P+ _                                @,root.eventcontroller.simTime);
  @  N8 l8 o" O5 e# ~                        @.HasOrder := false;
. c- d; R% Z* E: i. X1 r                        @.DrivingHome := true;9 t+ R0 S) @  o, ]+ D0 @% }+ d
                        rgManager.tryToStartTransOrder;
. p7 |$ @. y. D# N; t                        if @.Destination = void( g& L' h7 O4 v4 z
                        then -- no transport order for vehicle @* ~/ e, o: I( D- A9 [
                                @.Destination :=1 D! D* @6 Z. d7 J9 z/ ~& W
                                rgManager.nearestFreeStation(@,track.~);' _: h  F% H% _, N
                                newDirection(@);   " N" p/ b% V+ C& k
                                if @.Destination /= void then0 H) p) u6 M+ x$ ?1 x
                                        @.Destination.NumReservation :=
) J8 I! M8 R! x3 ~) p9 s' @7 b) F                                        @.Destination.NumReservation + 1;
- B- s5 }' t8 L# e: ~% K* D                                end;: z1 C. f; I. s$ S: ~9 Q! M
                                @.CurrIcon := "drivingHome";
" I; b  C7 v7 ^8 E                                @.DrivingHome := true;5 E9 w+ r+ g# F$ J$ n5 z. H+ l
                        end;% R+ u& @6 Y+ Z+ X
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' e( ~1 }' h- H) ?6 L$ s                        part := @.transpOrder;% n& b# P3 g' T4 E0 |+ `, s4 b
                        part.move(@);-- load part; \7 b& Z) Q/ E, t) u
                        @.CurrIcon := "load";
( `5 O' X$ b$ L: R6 ]$ C) c6 ^                        GlobalDistObj := part.globDestination;
( K, q! Y; K& ?  m                        assignLObj := rgmanager.rgAssignL;1 ^& f) @1 s0 F
                        row := assignLObj.getRowNo(GlobalDistObj);
1 g1 M8 `. v( T                        if Row = -1 then -- since 70& x- y" T. I: M, O  I
                                if lan=1 then7 V, x7 g$ Q" q* L
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 `$ `: T) V) f: A) Y  v$ N1 ~% K, J                                                to_str("in der Andockstation: \"",?.~.name,"\""));% \) `; g/ E) s8 G7 S  ~, Q# }3 k
                                else
/ P6 B2 Z- B1 c, J1 m: W                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 s# W# U1 i- w0 z! Z+ Z. i* q                                                to_str("in docking station: \"",?.~.name,"\""));                                / e" A8 \6 }5 |% @' \
                                end;5 {" x0 I9 G% v) f) n) R: J
                        else  N7 }- p# t' J* @  R- G" x# t
                                @.Destination := assignLObj[1,row];5 G' a+ Q  C; o# ~6 _7 q1 J/ e
                        end;                       
4 X; a' m0 A1 p                        newDirection(@);
) C4 S: i4 q  N0 u* s                        @.HasOrder := true;
* {  a) s3 {: O' ?/ u. m( C3 R$ q                end;
4 O9 {. f6 P+ |- F2 \0 h5 f3 ?        end;" \3 u* h% C$ X8 S1 F9 L% t/ F
end;        -- of the method
& g- F- ]$ a2 |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 E7 S/ ?$ `% M$ r% a* v
9 s/ R, H8 l1 E
这是AGV_putin中arrive的method。- }( R3 }% g5 k1 {1 o( {: m% {
1 g5 c* S& g' V+ y3 N! K) p  f
当到达物料速度越高时,这个报警更多,
4 F- Z8 a: j& w' W可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( R; J% ]! v1 d8 _9 g  e( M! E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ F9 t8 T# i, w: X# j
0 m5 I5 F7 e$ h+ d1 F8 t另外一个小建议,就是move,所有的move都可以这样* J, C8 z, a5 d4 o0 G
if not move() then debug end( K, z4 L% ~5 _) y, }% X9 i
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! O& F( F2 z9 a% t+ Dplant simulation中的free libraries有AGV模板,
% x6 E. R; N' o+ `7 O+ L, d2 B里面也有案例。3 H+ L- E/ J2 ]" M
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# L# L0 Z: C  {$ z0 t) s0 @+ h6 ]9 r( C7 n0 p- u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* N2 L  j3 u+ V- F" J: N. _
# B5 V- Y5 S9 P; L3 m2 O4 y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * M7 G& l; W$ P+ A- Y: [) W
这是AGV_putin中arrive的method。* f) H! s& }* m9 P5 J

/ e' q+ M! |- |$ k* J+ s当到达物料速度越高时,这个报警更多,

* T0 y8 ?4 b: F& k* ]另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-19 01:59 , Processed in 0.016531 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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