设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9061|回复: 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'7 l! h3 M$ {5 x; ?7 T3 `- j1 n
*/
( Q8 E* L5 O2 E* u6 Cis; w0 H# ~5 H4 e- c: n: N! z% H
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 s7 y2 t9 j  S: o0 m( j
do) m( |3 g' S$ }2 H( }5 p, g
        Lan := rootfolder.Internal.Tools.AOLlanguage;- z# V/ @$ R7 J8 }
        if current = @.Destination -- else return
8 I4 i; u; L( ?( k1 S) X) |' K        then4 R; h# f5 Q3 \$ a$ Y  F+ B
                @.Destination := void;
, G0 e! Q) g5 }+ i3 H                if @.occupied then7 t  T2 f. W) Z" Z7 T  w' p- b  S, W
                        part := @.cont;
& R) O- u! e% _7 s                        @.transpOrder := void;
# V' X" t0 A$ W- i# T  b% @+ j! B                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,7 J' J: E8 u* @8 D. c* L$ M9 t( a( k
                                @,root.eventcontroller.simTime);
1 H1 }4 z$ y" X/ h) i                        @.HasOrder := false;7 U0 c5 p  N8 `/ s: ?6 S, w
                        @.DrivingHome := true;
$ T- O# y3 D/ H: S                        rgManager.tryToStartTransOrder;1 R9 Q" p; X6 F8 H+ F
                        if @.Destination = void
, T& B4 T$ e2 p: O                        then -- no transport order for vehicle @% N5 V9 }9 G( I8 Q: R( t
                                @.Destination :=
" @! g8 |" k  s- m                                rgManager.nearestFreeStation(@,track.~);$ w3 V2 ]* M6 P6 J
                                newDirection(@);   9 q; ]* ]9 \, k, V
                                if @.Destination /= void then
8 `* r- c, O. k% P4 a# Z4 S                                        @.Destination.NumReservation :=* M" P7 n0 Z7 A$ u0 O9 {$ t
                                        @.Destination.NumReservation + 1;7 l; V5 \/ n% S$ e$ R5 C+ d; t
                                end;# k' @" j+ C. o; f- P+ g. Q. u& M
                                @.CurrIcon := "drivingHome";& X( @! |# s/ }% B& F, a0 e) v
                                @.DrivingHome := true;, D( V3 _( `' k  y  |+ z/ C
                        end;
) A+ B* k3 J5 e" W6 ]9 U1 `                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- l8 N0 u: g  K% w* Z5 d                        part := @.transpOrder;
2 O" Q2 O# p3 W) ]& h( k                        part.move(@);-- load part; t' ~. L$ Y/ j8 l7 j6 ^
                        @.CurrIcon := "load";
8 t" p2 ^( Y- k6 Z                        GlobalDistObj := part.globDestination;  Z7 @* G& B! o2 z8 T7 ^
                        assignLObj := rgmanager.rgAssignL;
% J; c. C; ]6 h5 h- S                        row := assignLObj.getRowNo(GlobalDistObj);
/ |$ H5 n. W+ |/ i                        if Row = -1 then -- since 70
% e7 v* y! C! i5 u. d* l. Z- Q                                if lan=1 then$ ^. ^# Z$ n' ]
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ B0 ^  F' b+ f                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 D& H% E) O& d# I  n3 U& z                                else$ g: T  v3 S, _4 t+ Z, w0 k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. f7 l% s) A) |& `0 k                                                to_str("in docking station: \"",?.~.name,"\""));                               
( o- \9 F, E  S: W                                end;
2 K* p; r2 x9 E7 t8 ]4 b( A0 ~( C& ?" Z                        else
3 C" s+ E7 r; N                                @.Destination := assignLObj[1,row];" I6 c1 Q- ~0 C% ~# T( G+ X  t
                        end;                       
% \$ S0 w+ K' A9 i: g/ o( c                        newDirection(@);
& k" @7 f# }5 V/ j9 A, Y8 U                        @.HasOrder := true;
' b$ [8 Q) A7 R" I                end;
, y' U) i% y. U        end;5 U2 c1 b) ]$ T' ]' |
end;        -- of the method
$ N4 {' f2 R9 _6 B4 c7 h6 F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % Z4 l1 i( U, E2 w* o( K. H

+ M4 S" k; B& {这是AGV_putin中arrive的method。
# ~* A6 X6 G0 ^" G. v
# c5 V8 V9 }6 L! v9 l当到达物料速度越高时,这个报警更多,* w8 t9 W+ u8 B5 R6 @3 b
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。# `  }( S! @& ~( b& |. j
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 A: z9 E: @1 Y5 h( T9 ]
# L: r# P' B4 Y6 L5 H- c
另外一个小建议,就是move,所有的move都可以这样
5 k" p8 v7 n$ C$ k! N* p) t0 j5 l; sif not move() then debug end' D! b5 L& y& T. x+ c
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ I' [$ K1 Q& W9 f. t3 x+ a/ Z
plant simulation中的free libraries有AGV模板,0 s- f2 }3 Y" ^7 e- v/ l
里面也有案例。
" `' y9 h" U. F6 p1 C  ~9 G; j0 `  `我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
0 e9 f* y. K. S) h' j$ v; l
/ V7 S" }" S" K" E& t我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : W) B# v0 k6 Y3 {$ ^
! v, S  m) z# S5 l) C, S
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* ]5 S( ~, x& I" s  U% y3 I这是AGV_putin中arrive的method。
2 ?% m8 ?6 h' M; x8 q2 y8 h* N" C% O/ S
当到达物料速度越高时,这个报警更多,
! j$ U, v% y' m2 H% G
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-11 10:30 , Processed in 0.015990 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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