设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9634|回复: 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'( E2 s- K: N; D( _
*/: ~6 q/ ]( g6 J) M# A8 l
is2 v! z2 p6 t' {! c; J! k/ d7 B. l
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 E* `% ?. B0 }! x% edo
( e) k9 R$ K$ t        Lan := rootfolder.Internal.Tools.AOLlanguage;6 T* j7 i0 w6 x8 E/ [& F: P
        if current = @.Destination -- else return
9 D( ]2 X$ c% I( e6 v, @% }5 j        then
. b8 ~9 m" u7 X, A- o                @.Destination := void;
8 t: C, {8 T- T7 d6 F2 }                if @.occupied then+ o. p8 D* q. ]7 L9 ]
                        part := @.cont;) W$ V3 D& [. p1 W9 z! A
                        @.transpOrder := void;: U. X; h1 G7 I
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 ^, B# K, m/ h, O4 a
                                @,root.eventcontroller.simTime);" `6 l8 {) ^: V) `; c
                        @.HasOrder := false;
8 `6 h* R; K8 B  Y; b0 T                        @.DrivingHome := true;3 r$ r: r0 R9 o# H+ _4 a
                        rgManager.tryToStartTransOrder;& g3 l+ b* x! l
                        if @.Destination = void6 G7 j2 n! Z3 j( `& V( m9 n
                        then -- no transport order for vehicle @, N' \/ ~3 e+ k# F' ?. R' H& t
                                @.Destination :=
. ]- v" {8 S# i1 _2 G) F! r/ o( a                                rgManager.nearestFreeStation(@,track.~);
# C1 @. Q5 _; r% l6 Z                                newDirection(@);   - {3 G/ M3 a: u  M7 [# Y2 o
                                if @.Destination /= void then, \. C1 @6 H) w( i9 G. N! q% N. V* V
                                        @.Destination.NumReservation :=$ t8 C& P1 E6 S% {- ?' O9 G
                                        @.Destination.NumReservation + 1;
, A- G  P" Z  C% K                                end;3 I. R6 ], ]0 i0 I+ o- |
                                @.CurrIcon := "drivingHome";
& G, g# H1 M3 |" h9 e( N                                @.DrivingHome := true;
7 R+ v" R9 Q2 K4 W  T! \$ E- k                        end;  {2 y6 e6 `' o1 V0 Z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% o( D' V' F# B5 v                        part := @.transpOrder;
4 t  \& }6 Y' H6 i7 E. z                        part.move(@);-- load part
5 C' ]' Z6 ]8 x( g; b                        @.CurrIcon := "load";$ N4 Z" L' t. P/ \1 E
                        GlobalDistObj := part.globDestination;" U% Q/ d3 s) U
                        assignLObj := rgmanager.rgAssignL;2 {, e4 s3 M( H4 R1 k; b, S3 }
                        row := assignLObj.getRowNo(GlobalDistObj);
! T( [+ b& ^4 T+ c5 ~# L8 a1 O) F                        if Row = -1 then -- since 70
' G% s7 F! x% a3 _3 ~; r                                if lan=1 then3 I( I" [8 m8 k+ Z1 A
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 W. [: k# Z) _# A' F
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  O- h- D1 N' x  h+ W' ?                                else0 Z: u1 m7 r) G" l
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 s( y; i  J, u, Y. M                                                to_str("in docking station: \"",?.~.name,"\""));                                . H) F* I& B& J: v" }7 q6 Y
                                end;  I- y: J  f  Q. {  X6 f: B
                        else  E. ?( W0 x. G3 g
                                @.Destination := assignLObj[1,row];$ ]& ~3 Y7 Y' L( e4 ~/ u, J, T% [# b
                        end;                        # J. k# l$ Y: Y; C+ Q: a) J
                        newDirection(@);
- N7 x: `$ A4 i: }& Y4 z                        @.HasOrder := true;; U# _7 m! ], O. X% [3 [( t
                end;8 ?, `/ \; s% M' t( u; s
        end;' b- U, Y- W: e/ z# h9 k
end;        -- of the method
  t  M5 i9 X+ k) y6 `
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . z* i5 D5 t; c

2 p( M, z! |3 a8 @) ^: C$ X. Q这是AGV_putin中arrive的method。
' l: S- J5 r' j6 N. A
6 X6 k9 }; b; ~4 L; X: o& d当到达物料速度越高时,这个报警更多,) F$ k3 k% x  t4 @' [. @0 c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ K( N. B' t0 M1 o: }程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: r/ D; X. y* Y. |2 C$ H
- ?3 a: I8 D; R
另外一个小建议,就是move,所有的move都可以这样
% B/ O; [) O7 W' u: _if not move() then debug end
3 Q3 w" A4 ~3 u- s8 K" n; L这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 X! n4 g! V9 |0 \2 W7 [0 Fplant simulation中的free libraries有AGV模板," u/ u% ~' R( ^- i4 ?1 Q
里面也有案例。3 I" N! M1 N; H' f# F
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ r# [1 a! ?; H0 i3 q; X& b8 w# z% a2 X" V  H9 }( w: |% H
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 r! V8 s# [2 Q6 }8 s" m0 P" l5 S% S& r6 \7 j
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 F! M; ]8 o) R) B& K# q这是AGV_putin中arrive的method。
0 `2 |" r# l" i& `6 g3 a' U& |: U
' j9 y$ a* J# b# a2 S9 e当到达物料速度越高时,这个报警更多,
% i& F6 V/ Y/ b/ D; E
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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