设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6132|回复: 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'
' G7 s% R  V4 H) [3 i# a*/; G/ |4 k! s. r
is3 i8 `6 ?9 P4 \
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* ~3 P! X4 A: _) v0 q* v3 Sdo
2 v& W1 _) N6 B# R  G        Lan := rootfolder.Internal.Tools.AOLlanguage;- c, F4 Q2 w9 o1 ?' n' p
        if current = @.Destination -- else return! d8 S) {% V& v  A% Z- _; X1 c
        then4 g2 @' w: n2 @% U2 A5 t
                @.Destination := void;" ?- c+ H& o2 R6 A
                if @.occupied then
7 a( X5 i6 v! `+ ~" w/ |                        part := @.cont;1 N: \+ Q, \+ x8 s4 t
                        @.transpOrder := void;
" Y2 |, K/ }$ d6 o! J                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 _6 l. E; L; A, V
                                @,root.eventcontroller.simTime);2 J; L$ `; Y% A" a" o4 ]0 }! A
                        @.HasOrder := false;
( e3 @2 g1 z! z# v' c* E7 f: s) c                        @.DrivingHome := true;
* B6 T7 m3 r) P$ Z, p6 j( y                        rgManager.tryToStartTransOrder;
8 l$ M6 P" W& g+ Q$ a  u) Q5 L8 Y                        if @.Destination = void' [* N! C% b1 Z  v" ~
                        then -- no transport order for vehicle @% Q/ A/ r. a$ i, ~+ t2 C* c( u
                                @.Destination :=* L1 Q: |: k# P2 h4 x* S/ L
                                rgManager.nearestFreeStation(@,track.~);
1 d/ O6 ?4 |2 t6 ~+ h$ z! ]                                newDirection(@);   7 F& J- R6 L# G
                                if @.Destination /= void then
* O3 _5 j2 N) I7 W" N* ~5 g                                        @.Destination.NumReservation :=
' W  ~- F- _, x' v% @                                        @.Destination.NumReservation + 1;4 T8 a8 v$ F1 D7 E/ J9 e" K0 u
                                end;& z5 S% A8 X7 q1 R. x; n) j( Y
                                @.CurrIcon := "drivingHome";9 Q$ f- h: k& ^- b8 }2 h9 y
                                @.DrivingHome := true;
4 t+ d0 @" ^5 F                        end;
9 ^- B3 F* @% s- [* x) X, G$ o                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ J6 j6 H# w1 N0 E4 [! J) _: U2 i/ B! b
                        part := @.transpOrder;
. u9 T4 y: a- q/ ]                        part.move(@);-- load part+ t5 l+ \. x1 ^8 `/ U* ~* b
                        @.CurrIcon := "load";
$ \5 O+ ^" R) B% W5 `* H" v, I                        GlobalDistObj := part.globDestination;
9 q! J1 t2 z/ B7 ?( m% q9 ?                        assignLObj := rgmanager.rgAssignL;
! a+ Y$ V# S7 I9 K1 l1 V5 l                        row := assignLObj.getRowNo(GlobalDistObj);
+ C5 Q  K5 E6 E, e                        if Row = -1 then -- since 70
* |" V" H, w% Z6 F                                if lan=1 then
& C$ ?# I% u. d% j7 n" ]                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 R3 x# T" `  ^' ^; u                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 M/ R# N! X5 b" B0 d" {
                                else! T7 j$ y$ M' Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. W$ ?+ I9 V' _7 H1 W) J                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 o+ Q8 G- d8 k- j6 R5 S                                end;8 a8 O, h' c0 H/ I% \
                        else
$ G8 X2 ]5 q4 S& x+ ^. e                                @.Destination := assignLObj[1,row];  J0 Z% b: t1 k5 C
                        end;                       
9 [6 f4 c6 j9 d% M: c) H( x+ Z; z                        newDirection(@);
% `5 {6 ?9 L: |8 ~                        @.HasOrder := true;, T/ R. \# C6 z
                end;
  W2 z( }) |9 u, E; j        end;
: v5 E/ C& ^8 t. E) q- B9 B, A# ?end;        -- of the method
& Y. u/ u; O& n( f9 O9 p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & ]9 M5 `3 W* y9 G! \; Q, `- {  T
4 P( o9 ~2 f1 S. v3 p
这是AGV_putin中arrive的method。# Y) A( S6 f& h) c5 K
7 J+ z( K/ h  q0 }" @7 @
当到达物料速度越高时,这个报警更多,( b( \0 Q4 C1 }# S' g) I" b
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 l. R+ U% n' o% `9 L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' l# m6 F# z% _  B0 p& o6 g% W; }" k" P
另外一个小建议,就是move,所有的move都可以这样; \5 n6 W8 ]6 N& g0 ~' I8 Y
if not move() then debug end
% W: g3 j$ {! V# Z, c& X, Y) y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( @9 b+ R, G0 r6 c
plant simulation中的free libraries有AGV模板,
& Y2 N+ y# ]4 H. ]里面也有案例。
' ]% s  D8 `% m" c' i( `* D/ F我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 W1 h- c* i2 b( f9 s) i
+ |* M4 k# o# m9 K我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , D: X( y( k2 d/ N" i

; C5 s' |4 Q0 I( g* }那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# T$ o5 g  |, N# g$ M& p这是AGV_putin中arrive的method。! j" Q2 e# N- A  ~% G4 X
/ A7 `" y+ o- d$ j7 P6 p
当到达物料速度越高时,这个报警更多,
" d) Q6 e% c# v7 ^8 d, y
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-20 10:39 , Processed in 0.017590 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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