设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6519|回复: 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'
5 ^* @- H8 q. J, f# O*/7 _; ~2 E% a# K; R
is& \4 U" ^, b% p# i3 m( t$ z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 _, q) r# S. X8 g3 V6 h% B; ldo8 V7 S  {$ L6 O+ I' ~# K
        Lan := rootfolder.Internal.Tools.AOLlanguage;+ {$ H( T/ |/ S% W  @; I
        if current = @.Destination -- else return
; {& U, l1 J1 U0 J' f5 |        then( u3 U  x0 {3 s
                @.Destination := void;
$ e9 s; ]( ]7 a! q. G% D                if @.occupied then) @* B+ _5 I# Y" F4 P1 w2 B
                        part := @.cont;
) d$ A7 p  @7 T( p) u& `                        @.transpOrder := void;  Q$ F: ?' I; a9 a& @& m3 T9 \( N2 N
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 {- Q) {: S7 s4 F! H
                                @,root.eventcontroller.simTime);& x- F% ~5 k; h& V
                        @.HasOrder := false;
. {$ x6 \) u0 z, A- K4 k+ L                        @.DrivingHome := true;
7 F/ v) j4 W- b  S# ~2 Y6 ]                        rgManager.tryToStartTransOrder;
- Y" M  s' X" H" ]                        if @.Destination = void
0 }7 L* I) \2 v& {  z                        then -- no transport order for vehicle @
* ^) |! c2 U$ b  I# }                                @.Destination :=% n8 s; [$ _! _5 y3 s. S, e2 p! w
                                rgManager.nearestFreeStation(@,track.~);
0 D, ?  e" M+ W3 _5 g: D5 @4 o                                newDirection(@);   & E* f  M' i1 ?, n# P' j- q
                                if @.Destination /= void then
- _0 D) [5 m+ K- ~9 p( z* \                                        @.Destination.NumReservation :=! s  p6 |) V/ r# R
                                        @.Destination.NumReservation + 1;
0 l' {9 i# D/ i  b) ]                                end;# a/ l% l4 s- [
                                @.CurrIcon := "drivingHome";0 L/ s* T/ p  a3 w
                                @.DrivingHome := true;( x: a. g% Y7 ~; ~
                        end;
& G, q6 I3 v& r$ O% x                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( q. ^6 Z0 T( l5 c" W4 T
                        part := @.transpOrder;) G8 J/ \. a6 Y
                        part.move(@);-- load part  X* _7 K% E# f) B; q) z$ _
                        @.CurrIcon := "load";
+ y0 Q& _9 c/ O$ z                        GlobalDistObj := part.globDestination;
- V+ Z' o) U3 H  R/ @                        assignLObj := rgmanager.rgAssignL;, n3 G5 o+ E, i/ R' _! ?
                        row := assignLObj.getRowNo(GlobalDistObj);& W/ F, Y8 i6 d& v: q! N( I
                        if Row = -1 then -- since 70, S# b3 `& k& C* J
                                if lan=1 then
5 K4 e' ^; t& d# q, T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 f' P4 V5 t, |/ h1 M+ j5 q7 p5 w
                                                to_str("in der Andockstation: \"",?.~.name,"\""));& j- i( V0 k5 n3 p6 d% H' W
                                else
1 N% L" D# d9 }# l( y7 A                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( m9 C% ?  H6 o5 r
                                                to_str("in docking station: \"",?.~.name,"\""));                                ) t& ]' Q/ T# s; N, u( U8 [- h
                                end;& @0 T; z& K0 `5 K6 [- G
                        else
+ M5 }. g! j% c                                @.Destination := assignLObj[1,row];
: R' M* X* d( M, ]6 O- m                        end;                        2 `. g6 S! ^. y2 e
                        newDirection(@);
, x' ?8 Y% F+ v, _4 j3 M% Y                        @.HasOrder := true;* ?; d( ^* _4 V; f: d3 N
                end;
0 |7 X8 Q: @7 w4 ^        end;
7 ?/ @! z8 W. K+ M* k4 bend;        -- of the method
1 R$ G, u1 O# N' w9 i$ X6 i; c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 @4 G! [7 ~0 J" S' I# J. ^: g5 s+ w5 F
这是AGV_putin中arrive的method。; {; F9 w& p3 k/ q( Z
* N! Z$ V1 ]& l: u
当到达物料速度越高时,这个报警更多,( {. S+ J% r/ I  M
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ O# h" M, d& J( T& v2 M程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ Y  P) C9 c. Q  a# i/ l: x4 W; U% w( C, A1 s( V; J9 L
另外一个小建议,就是move,所有的move都可以这样
- e: e( }% t4 E; s* p# o! Oif not move() then debug end
# C' F. R8 y, a; Q( O; F" r这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 m, _) ]9 V% B& Y# qplant simulation中的free libraries有AGV模板,/ S- J" u' s$ C$ L, T2 O
里面也有案例。# U1 R; l+ k$ P2 q& ~
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 e" z% o* U! G3 r+ {1 R0 a+ D. T: S# M0 q* T2 g
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 @6 K. B8 H9 t/ }) Q0 \/ }+ ]* @! K
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ F8 M% ?+ n! H/ v这是AGV_putin中arrive的method。
5 m7 C" R# V3 {  U
" D2 o  U3 v- {: K1 y/ b9 a当到达物料速度越高时,这个报警更多,
% M, |( L  ^( r
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-10 10:24 , Processed in 0.017074 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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