设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7836|回复: 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) q8 T4 ?( m8 X, U3 `/ g*/. w7 ?- X1 t) g3 s
is! L$ Z: K+ h) l, q9 c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 u- M: K. D7 V. v' \2 r1 r
do
# ]5 [; L3 d1 N" G        Lan := rootfolder.Internal.Tools.AOLlanguage;4 l! g9 ^. H( Q2 y8 O- o0 J
        if current = @.Destination -- else return
7 |4 h& h: t' c: U1 w        then
1 D0 g+ s$ Y( |/ `* h; y                @.Destination := void;
8 X+ z# A* {7 }4 F9 T4 S                if @.occupied then# U) E, T  {( K& d$ [
                        part := @.cont;
* J& n6 K% _: b/ ]) F                        @.transpOrder := void;
7 a& R$ o8 E' E                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 B- ]$ A' _: x5 f+ ~; B
                                @,root.eventcontroller.simTime);
8 G- e2 u5 h( v0 ^+ u                        @.HasOrder := false;2 x2 k  D+ t! {  ~  @9 k
                        @.DrivingHome := true;6 g- ~4 U( H7 V; B- r
                        rgManager.tryToStartTransOrder;
% D# b2 |7 Z% Y% a9 I" p                        if @.Destination = void9 b- S9 R5 H" D
                        then -- no transport order for vehicle @5 R! t/ B/ R! d% Y  P& `" I. Y' X% S
                                @.Destination :=' a5 s" G4 W7 R/ d9 G
                                rgManager.nearestFreeStation(@,track.~);9 S% A3 q. r7 P2 s. @6 e, G
                                newDirection(@);   ' _& a5 k: {' @1 Z4 T6 X/ x
                                if @.Destination /= void then1 a! Q0 P9 g, E' E. E
                                        @.Destination.NumReservation :=
) y; q0 H' W0 S5 `" _/ ]                                        @.Destination.NumReservation + 1;0 d3 Z; a! [% z% r" p! q$ h! L" @
                                end;. T+ {! X% j7 ?8 G  |# A; B
                                @.CurrIcon := "drivingHome";$ f) h& S* U9 e& |& l: @2 `# u
                                @.DrivingHome := true;
1 j8 X) l; A5 I8 n                        end;  s! K0 v1 e- r% `
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ F5 i7 |# G; ]5 X3 M; C; G
                        part := @.transpOrder;
' D0 n0 r3 k) p. j, N: y( u( `                        part.move(@);-- load part. B- Q% t3 q3 V& m/ T" @# p- X' h
                        @.CurrIcon := "load";
8 h4 \3 [" F4 K) c6 A) ~/ T4 b                        GlobalDistObj := part.globDestination;8 \+ z6 ?2 m3 n5 e: }3 {
                        assignLObj := rgmanager.rgAssignL;
% r) x% A! X6 Q! F: e) y                        row := assignLObj.getRowNo(GlobalDistObj);3 A# ^5 p3 c& q, q
                        if Row = -1 then -- since 70
/ T0 ^+ l" w5 V                                if lan=1 then
. c3 K+ a- a$ _$ f) C! \                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; w' N. @: d) g. F0 `% c
                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 `7 ^. ]: {# ]( H6 n/ y7 V; o3 Y
                                else
( E- [8 F4 n9 A- u  t! [                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. `  j0 N1 @+ t6 P9 J9 q0 V                                                to_str("in docking station: \"",?.~.name,"\""));                               
& K* S$ ?( g6 J1 w  \$ Q                                end;
) l& H( t$ r9 v: v/ @$ T                        else
- C1 L9 v" a+ L$ h- {6 m# k                                @.Destination := assignLObj[1,row];8 T' ^! V3 Q& [/ O# W
                        end;                       
, b* ~( u/ u0 }1 a8 T5 ~3 L; P                        newDirection(@);" A+ \- {/ A) S9 G: p& k
                        @.HasOrder := true;
. T3 w: L5 s* `# \                end;9 N# L" H1 P  K, W- }0 r4 ?  }4 _
        end;$ G  `" X$ N# i- i: {' t
end;        -- of the method) W  S/ p9 C2 Y+ r! n9 p3 M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 ~- h: `( k! i5 `6 u$ b5 d/ `1 K9 I0 l1 t# w  e1 t- f* [" ]/ f
这是AGV_putin中arrive的method。
. m* ^, o& x$ C$ v8 d6 n2 C9 G0 }" a7 N2 _# r4 R* a) D- ~* G
当到达物料速度越高时,这个报警更多,
( r# r9 V5 W  i4 |' h% p9 c" M可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! \9 K0 Z, w) `" S# V
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) M, O( K( s9 {' q% l; @% i% `" V
( g" A9 H7 g6 Z$ {/ A9 r; s另外一个小建议,就是move,所有的move都可以这样
, t3 ]+ K) I8 r4 E, H' e$ z! Iif not move() then debug end( Q& R* b: P* D% }( p. P
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) E- `. s$ ^2 |( M/ Kplant simulation中的free libraries有AGV模板,9 Z+ C$ f) _2 i! \6 p( ]
里面也有案例。
8 k# B( s" i5 @* s$ @' C我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 p0 R- O) ~% j* r
! D/ q$ ]$ k! `3 ^7 X8 ^- c) n
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 n0 M3 b6 l) s8 l, P, T' G3 @0 ~" K/ x% }3 }( P
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: J- L/ d3 k5 B# L3 g) V4 e5 G这是AGV_putin中arrive的method。
8 ^2 S+ ~( Y8 U7 ~( X- m& o3 S( x. K+ f
当到达物料速度越高时,这个报警更多,
7 O/ u; H) v2 m) m& H. \. [
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-1 05:37 , Processed in 0.017956 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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