设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5899|回复: 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'% e: q8 u+ r: I& l, E! l: v1 P
*/
* n" ~! X7 C1 z& V; e5 |; sis
2 [8 q  e) A* H$ @1 l" V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* K/ S. \! p2 R' U
do& f; y: q" V$ V4 ^( N: v/ J
        Lan := rootfolder.Internal.Tools.AOLlanguage;
# ~, o6 J5 R; K/ W" F2 ^: n        if current = @.Destination -- else return
9 `- P2 A. a) J; c1 z        then
; Z9 H/ g. s/ v8 G, T( a( c  j; @                @.Destination := void;
. [- L' y' U' E# ~0 O                if @.occupied then
) c# _3 f! H3 v: v" T                        part := @.cont;
5 x$ u- h/ l5 J# s. S                        @.transpOrder := void;
# ?; ^; A- W: X3 m0 h# `. k' M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,, ]( k( q- R% L* W! u
                                @,root.eventcontroller.simTime);2 a  W/ q, {8 u
                        @.HasOrder := false;
& A  c9 q  P9 z4 r& e4 S* S                        @.DrivingHome := true;
4 B  A; T0 }' }! h. l6 t2 c. U                        rgManager.tryToStartTransOrder;
  X/ x- s7 U' g                        if @.Destination = void
9 ~3 q& g. r9 C" v+ e! t4 N                        then -- no transport order for vehicle @
" o) J3 f9 P7 F4 l# W8 ^1 }                                @.Destination :=1 b% O4 u7 ]5 {0 ]+ l, ~! R/ _
                                rgManager.nearestFreeStation(@,track.~);& t' r/ {7 T. u/ L( s0 b
                                newDirection(@);   
# h' T6 N" P! v9 c7 i& f                                if @.Destination /= void then
. j9 y3 w( K( g6 [                                        @.Destination.NumReservation :=- [, q, F) m, ]
                                        @.Destination.NumReservation + 1;
+ D$ f, o' ^# C: [$ Y8 y. B+ t                                end;( D* c3 X0 h6 }7 M. k
                                @.CurrIcon := "drivingHome";
5 j2 _! T8 F, N& Q+ N                                @.DrivingHome := true;
0 N  i5 W; y4 }! k4 ^: U- a. Y/ ^3 S                        end;" E, C3 z4 U, O, k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 x$ T! n+ ]) B. @% N4 o& l8 ^
                        part := @.transpOrder;) _4 R1 o2 x3 p0 t9 L5 ^
                        part.move(@);-- load part4 V* X( ]+ V5 n8 c
                        @.CurrIcon := "load";" D/ b6 @+ Y* w6 R
                        GlobalDistObj := part.globDestination;0 @! k- K  c# l5 Y: Z
                        assignLObj := rgmanager.rgAssignL;
% {3 N! e1 g+ e& s                        row := assignLObj.getRowNo(GlobalDistObj);
: X4 C2 r$ R1 [0 t( X                        if Row = -1 then -- since 70
3 p6 G7 \' y& C$ V. |                                if lan=1 then7 I/ E( s1 H( d% q5 U4 ~
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& b: a* x" E, {
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
4 H1 D# W. @+ J2 T( j  {, |: H! x                                else) @2 \7 P4 E) N9 k, w' w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& s' H1 _$ ?" e/ b' J                                                to_str("in docking station: \"",?.~.name,"\""));                               
# ~: t% D( F& F# T% h* p: `: j                                end;$ n' B0 w, A8 T, B( K: z( p: T
                        else
! z* K" I$ K9 Z- c, h* A- M; z                                @.Destination := assignLObj[1,row];7 R4 [) z! w" J* b' L2 J
                        end;                        6 ~9 v! f9 ?' u- _5 M% H" m3 K! i
                        newDirection(@);) T2 ]1 w6 Z. R$ }% w3 {6 ^5 s
                        @.HasOrder := true;$ a- u( w6 q( t3 s! n" ?2 k5 P/ q
                end;" z+ G6 y- z! @" h
        end;
/ c( N5 ^: b, c" d! I! L! ?end;        -- of the method
6 w7 R3 a$ M- L( C9 o8 o# s/ Q, L, C: b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + k9 B! u. B3 R
% [& O* h! F! D- w
这是AGV_putin中arrive的method。
% J; [6 r: _9 r) M; p: \' {# C
$ M3 g: u0 z% x. g' v7 x当到达物料速度越高时,这个报警更多,% m* b% w+ N) j. ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# a, b8 u/ y* X  d3 |  B, E8 L, z' O
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 q9 h) I5 l. j4 ]% A! t
& S' p9 F, ?" f& x2 `另外一个小建议,就是move,所有的move都可以这样
. f. e& I6 ?2 l+ y) A6 m1 {if not move() then debug end
3 |& Z4 m8 B$ a$ l: j+ ~1 O' b: S这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 f! t, t5 g! R) I6 c) jplant simulation中的free libraries有AGV模板,
. \' g1 B9 u+ g& O1 p% s里面也有案例。
$ P6 B/ q8 f9 b* ^, i5 _我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 D, c9 r" M6 D5 Z( H. |( b5 D! l* d& B2 l" j4 u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( l: L2 E- L, H' j$ R

/ c2 ^- u- Z2 W1 O9 {1 B2 P/ z: K那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. n' F2 U8 k0 t( r2 s这是AGV_putin中arrive的method。" f" x, j3 W3 w* m6 D
% e: I* H  o* @: @* `5 `; O" N
当到达物料速度越高时,这个报警更多,
9 U& Z0 X# a, F$ [" I
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-31 06:15 , Processed in 0.018556 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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