设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9758|回复: 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'# J& M; Y4 v, C
*/
9 |$ Q0 S* H/ wis) T# I& W6 v* c: `1 V
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 S, b! e. k# y
do3 F9 [. e1 z' G* t( @  S
        Lan := rootfolder.Internal.Tools.AOLlanguage;( J% N- h9 r, ]- ~7 b
        if current = @.Destination -- else return
( W' |$ G5 v& U/ i7 r8 s. y6 j        then
  G% ]! x. H; g% {" p5 {1 {" U2 h; P                @.Destination := void;& t* H1 o1 v" L! N
                if @.occupied then
5 y2 x  R4 {- c6 _' E" ~                        part := @.cont;. S' l; i& z4 U" B: t( S
                        @.transpOrder := void;
7 M& G% k+ s' W  a  w* ?# e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* N" \4 Y& c- n
                                @,root.eventcontroller.simTime);
3 U- J# E+ S7 ]# _2 a                        @.HasOrder := false;
$ x$ E2 @0 f! ?0 x                        @.DrivingHome := true;
& q8 S4 Y7 b7 H, c/ n& R                        rgManager.tryToStartTransOrder;
( h9 ?7 p! u4 Q2 q, u                        if @.Destination = void
( ~! ^% o& v7 K* Z& {                        then -- no transport order for vehicle @% r$ B/ J2 K0 n! b! c: ?7 x6 `
                                @.Destination :=& p% D9 _7 r5 a' a- I
                                rgManager.nearestFreeStation(@,track.~);
- m) v4 ~) p* ?                                newDirection(@);   
( i: L7 X% S$ d) [) H                                if @.Destination /= void then3 n& l7 W) p3 ~$ d5 i  D# i- q
                                        @.Destination.NumReservation :=# L7 A5 K( U7 p1 C& V
                                        @.Destination.NumReservation + 1;& r4 {: i" E  [. e0 s5 ~- e
                                end;3 m8 \* X( C. O4 w! ]' d5 _
                                @.CurrIcon := "drivingHome";. c# R$ @& W$ D. N2 @! P$ o/ [
                                @.DrivingHome := true;# w# G6 @; s# S$ [) m& c
                        end;
) G  }" ^& H* D0 d4 L7 l' X, c6 i( b                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' o$ G. u1 \, m) c                        part := @.transpOrder;
" Q2 D9 u$ U, X# H8 B+ I% _                        part.move(@);-- load part+ i8 h7 l0 T6 u7 l
                        @.CurrIcon := "load";( Q* J$ C3 a. d; p8 ^0 f* ]9 b
                        GlobalDistObj := part.globDestination;3 X- O" n  ^$ @6 K
                        assignLObj := rgmanager.rgAssignL;# R' ~3 \; e/ |* c9 N% i1 L
                        row := assignLObj.getRowNo(GlobalDistObj);
& T- u/ u1 x' p8 p                        if Row = -1 then -- since 70& }0 R  g6 h: v
                                if lan=1 then
/ X9 {/ A6 K$ S% X, u" ?                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 Y( i6 \' t- h; O0 K& d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));, k$ _0 O/ ]& Z$ w) G' v: s
                                else1 ~8 _7 @! z1 o1 X: F0 Q: G5 }
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ l: S: h! }8 B# E# C, K
                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 s9 D$ |! v! h* C" Q                                end;
+ v9 Y3 b9 b. i9 A) C                        else
# a* A7 f: l; X4 x( {0 M5 `9 u                                @.Destination := assignLObj[1,row];5 g) i- h9 c4 ~# o: V: f! {$ |
                        end;                       
, h( U3 Y) q* Z                        newDirection(@);! u' [4 ~  X! l8 k
                        @.HasOrder := true;
0 B: a8 d+ k/ h                end;
! ]" O  m. a. ^2 R        end;2 W- {. H# e# d/ @/ T
end;        -- of the method, k5 {7 z5 ~. I7 y* [( x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( t" g0 g9 ^5 ^) K% f

- }# }  i' Y1 A; v这是AGV_putin中arrive的method。
4 }( v- ^4 L: c. _
3 O; b$ \, f  E0 G+ y' _当到达物料速度越高时,这个报警更多,8 L, [! G, l/ z; S4 X
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. V! k# _, K6 ?, D0 }( }. K& K
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ Y8 |& }6 a0 x5 T4 |$ N8 ]' i; v* y
3 Z- B9 Z8 H1 V' C另外一个小建议,就是move,所有的move都可以这样' O( ]* P8 A( d9 ^
if not move() then debug end! }" p- z$ r0 }& A5 a9 d
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# n2 x* W" Z) r% N2 n3 D- Xplant simulation中的free libraries有AGV模板,  G; \* p; |5 e3 H8 g$ N' u: ~) Y7 i
里面也有案例。* X& Z, M7 j' e! u2 e
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 J7 `2 T; ^% o  j- i- d
2 V9 t) k; m) I0 }我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( C4 S: U- b7 n$ C: }+ {. J0 q6 c
( Z3 f8 ]1 J8 J9 ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  m2 E% `2 {2 q' ^( j( _这是AGV_putin中arrive的method。
* \6 K7 \, {, K  ]" T; D7 R
. j& `5 p4 N" N6 r4 ^; ~当到达物料速度越高时,这个报警更多,
( h( A7 X% N9 u6 `! I" {
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-22 19:28 , Processed in 0.018189 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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