设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10061|回复: 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'
, U' f6 N" S) \" ^) \*/
7 W( K/ L. M% z8 ~6 |2 ^is
6 k  {/ [% [6 |! ]! L        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  V2 I' d) u7 e, W- a+ B' i1 j: F* R
do
# W) h" r( Q  V9 i, G, _/ J9 |- b" Z        Lan := rootfolder.Internal.Tools.AOLlanguage;
( `! a2 P3 V" U6 R- Y5 N) r# c        if current = @.Destination -- else return
7 E/ w" Q' `, ^  y        then0 P4 i/ `1 h" b- S
                @.Destination := void;
* P6 g, Y! c7 O1 W) i5 d  ^  R" `3 y! r                if @.occupied then
  w# ~' C9 Q2 c; i                        part := @.cont;
7 b6 c. i6 s  P9 w                        @.transpOrder := void;5 k% Y; m; z4 K
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& U1 h' n, ]( F, m2 f                                @,root.eventcontroller.simTime);# C/ T5 P) f* L; S- v, [
                        @.HasOrder := false;1 Z2 B) _3 j( N9 ~- g' {
                        @.DrivingHome := true;
$ e# G* `) P8 P5 G$ ?  F                        rgManager.tryToStartTransOrder;
7 E. d' D# k2 Q/ a                        if @.Destination = void" k$ P: E$ K+ |0 S
                        then -- no transport order for vehicle @0 K- U! A+ Y* B. O, T/ @! K
                                @.Destination :=
1 e5 t5 j! F. W! R0 t& I                                rgManager.nearestFreeStation(@,track.~);, z: C% n' H% L% J6 [( C+ [8 I7 \  d
                                newDirection(@);   
( Y% U8 w5 P# n+ x' v% i                                if @.Destination /= void then' z2 U0 t) \: W% B2 L
                                        @.Destination.NumReservation :=% H" h3 C9 M/ U& x1 N
                                        @.Destination.NumReservation + 1;  |4 D, Z/ N# C# \* X
                                end;
% l( x3 n7 y# r                                @.CurrIcon := "drivingHome";
6 ~. d/ \) o, d" p: L; `                                @.DrivingHome := true;; O0 \, _$ Q+ o  q  \
                        end;
2 S. C3 p8 {( f  F9 d* L$ V0 H0 B8 d                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 }. L, H- R5 T! c! M. g                        part := @.transpOrder;# h" T: G$ ]. q4 t" v
                        part.move(@);-- load part/ H0 q, z) ^4 ]/ D" K
                        @.CurrIcon := "load";% A! B3 Z3 L) n& |# }5 Y$ G: E
                        GlobalDistObj := part.globDestination;3 \0 J3 l0 T7 c* y
                        assignLObj := rgmanager.rgAssignL;* c: Z9 H; M# F5 \) V
                        row := assignLObj.getRowNo(GlobalDistObj);
' c* [1 W/ j7 |! P& ^                        if Row = -1 then -- since 70
) C3 j: h* f7 k% ~. y                                if lan=1 then
# J3 F& s! `( O9 Q* f                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ Z+ x7 C9 i% n4 f) I
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" B1 F1 s) e1 B& n  N0 l. |; `- A                                else6 _: |& b8 Y/ d7 T2 B& z* x
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! p2 h& L+ `3 Y7 A( I
                                                to_str("in docking station: \"",?.~.name,"\""));                               
& y( [0 }: j3 q                                end;
! g& K7 ]3 p( \9 j                        else
$ {. c$ n3 S; `/ w. u# [                                @.Destination := assignLObj[1,row];" w5 _* i5 V4 H% Q
                        end;                       
# w  c% z7 s$ b8 w6 h) [  Z, S! j                        newDirection(@);
! G; e. A" U3 U  d                        @.HasOrder := true;: g" _$ d# M# I+ X8 S
                end;
3 v+ Z& M; e9 Z& B6 ~+ p$ H8 f        end;2 Z. K' e  x4 `  o4 i2 P7 g8 y+ h
end;        -- of the method+ d, ^: M% u/ w2 @- h$ {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ S9 \& u) x; E
" U3 m/ S4 h* Q6 i: Y
这是AGV_putin中arrive的method。; Q! V& k: g  z3 N; W
; k  d) f1 U7 q. `  r9 |$ x4 r8 C
当到达物料速度越高时,这个报警更多,. Z1 Z/ K* t4 N1 y& g. T
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。4 i1 d7 i/ Y' U  b4 m& _5 \
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# \) r( e; t" q" v; J" |
* x+ R' R9 D8 r/ O4 h另外一个小建议,就是move,所有的move都可以这样
' A! t, G; k8 G+ o; P, uif not move() then debug end
) e6 h1 u& v( y& D, s) F. W这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' \+ }1 @  I) g$ A
plant simulation中的free libraries有AGV模板,
- I& f( n  I/ C( T$ @+ f7 F里面也有案例。
8 U( E" ~! G! q; E3 J& g4 F我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% a$ b* c+ D, l- u& [8 G. L( n, e5 m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* h5 v: n  B  G: W% |2 f1 z" h* t1 @
: U" K  `9 c# B: H& B& u那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ c3 n0 g( N( \. G& M) d这是AGV_putin中arrive的method。* P7 Z6 `. n  e) m. h
) L, `" T# m3 t
当到达物料速度越高时,这个报警更多,

- ?8 ^( S' h/ p! w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-11 05:28 , Processed in 0.015798 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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