设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9615|回复: 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'
' q) u, `, g+ j0 V/ p. `6 L7 m) T. b*/
$ c! ^, U& \7 Wis1 }6 K9 e/ h  q4 F
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ U9 e, o) g; y5 hdo$ n" b" R$ T# v, j8 v
        Lan := rootfolder.Internal.Tools.AOLlanguage;
7 Z' j( ^$ I* t  W. ^( K; E$ _: e, T        if current = @.Destination -- else return7 R- I( E5 e3 o) y* i! R
        then
7 D( Y; x, x' p. F                @.Destination := void;
. @! E" b2 I- u                if @.occupied then! ~- j7 j) l8 k/ u) V
                        part := @.cont;8 d, M3 c* z: e% |& W
                        @.transpOrder := void;. Q; o- `! X" a1 u$ ?& T/ h' ?$ S$ [
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ L# z% o) o8 g3 V1 @$ D
                                @,root.eventcontroller.simTime);
2 j! m# a  n* {                        @.HasOrder := false;& @4 I8 G* v8 F4 ]/ K
                        @.DrivingHome := true;$ m- ?% u& h4 ]. C
                        rgManager.tryToStartTransOrder;* b0 ^6 }. b9 e
                        if @.Destination = void2 Q3 z2 D+ i9 @" l" i- `6 \& V
                        then -- no transport order for vehicle @
+ x7 T* O7 w$ B                                @.Destination :=
" a) b5 b" _( L8 y+ i# ~                                rgManager.nearestFreeStation(@,track.~);
* p+ f! ?6 j& h  i" z. W                                newDirection(@);   
/ N& X: U! c8 ~2 @/ c$ y                                if @.Destination /= void then) \* Y' {1 y8 e; d2 e0 G
                                        @.Destination.NumReservation :=, c' k' R" g1 r" T$ Y7 ?. B
                                        @.Destination.NumReservation + 1;# N% Y3 b  a( C2 B+ q+ x* \" N
                                end;# ~/ ?8 u( R5 `3 D
                                @.CurrIcon := "drivingHome";" \) R+ e- F, V0 O5 Q" V
                                @.DrivingHome := true;7 Q2 E5 b% k0 [: b) ]
                        end;
; @0 g3 E  Z6 I6 j  z8 v                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 Q7 n: U7 }& C3 {
                        part := @.transpOrder;
  @4 z9 C( `+ o& ?9 o                        part.move(@);-- load part1 J+ ?( i% ?& C
                        @.CurrIcon := "load";6 ]% L2 f& c* l+ z9 n0 |5 Z
                        GlobalDistObj := part.globDestination;
  O" z9 u7 {  Y4 L1 P                        assignLObj := rgmanager.rgAssignL;
. R! Z0 F! p8 O1 \, C                        row := assignLObj.getRowNo(GlobalDistObj);
; T, ]. v& R  L' Y% k                        if Row = -1 then -- since 70
5 R2 f) V8 _! c( D                                if lan=1 then
9 f& d: a& @' `) ]8 {3 Y$ l                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) b; x, o0 q% A6 K  Z% J
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# \* ?; ]$ v5 A, D                                else
- f2 w8 I5 a: O9 r! Y% t4 z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  S  z4 J7 `1 N, K+ O
                                                to_str("in docking station: \"",?.~.name,"\""));                                : W2 d9 _9 @" R- b
                                end;
/ o( c5 y, o; S3 c9 v                        else- S  s9 |! w9 ~: T
                                @.Destination := assignLObj[1,row];
  [9 ?0 L# ?& `# P0 ]                        end;                        1 \" {) c: L: M% \% d2 R
                        newDirection(@);
0 M0 q' q: b- k: J: y- w                        @.HasOrder := true;! F( z: v) d; C" n  f" Z6 N2 ?
                end;! Z- l/ U4 ]/ S( i% a
        end;7 a9 n8 R# `4 |) r/ P
end;        -- of the method
* |% L: N( ]# Z) g" O' |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " h$ h' I+ B9 X4 \' _* T
" {6 I8 [4 P% w
这是AGV_putin中arrive的method。  s' t. O. T  K# k, v+ B* b

# d9 k' A" _  }0 R/ E/ q6 N当到达物料速度越高时,这个报警更多,& K1 q* U$ p9 u2 \) X2 u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: L1 y- j7 {7 C; G+ c. G* x程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 L1 C* ^6 k# G1 G3 i  j. {, Y

5 Y6 y4 Q" P  e" E6 {7 q另外一个小建议,就是move,所有的move都可以这样
& M# X. [9 \: G$ k8 |3 X* j2 Kif not move() then debug end
7 j# u* F! S/ o  k: g' z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 I4 N! j' R3 Z5 E! E' hplant simulation中的free libraries有AGV模板,5 V3 M4 W* M: F* d) {/ ]$ }
里面也有案例。* s- F1 R: W) ~5 t) R* M; s
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
2 o3 w2 A6 q; R' }
' t2 k& w" H, G, H5 A0 e我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 s* _/ t7 F; g+ f. h0 ?: A% D) T( N+ H! N9 @
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " ]3 N4 c4 M2 G/ v, C
这是AGV_putin中arrive的method。. u3 l7 n+ @4 y* F% A+ L

$ |' x4 n: |; i6 b- Z) K当到达物料速度越高时,这个报警更多,

7 b. j, s! g1 ?% m% ~: q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-11 21:15 , Processed in 0.033726 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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