设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10018|回复: 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'+ A; C& ?: ^" s; f
*/
1 Q+ |! @! F- I9 I/ c. |$ qis
1 F) ?" m7 h  u! Y0 n$ i2 Z! {        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 s0 D$ ^$ y9 C; B5 v
do
% n/ |) N1 F3 K$ C1 ~        Lan := rootfolder.Internal.Tools.AOLlanguage;
" L& w- i, m9 H: A+ ~: c. t. w        if current = @.Destination -- else return
) D- P0 K; t! V; Y        then7 u5 d9 g8 C# N+ E- w1 H
                @.Destination := void;2 V& e$ D" C& ~! d7 T
                if @.occupied then2 x  q3 n. e1 \% O# D
                        part := @.cont;  v2 @. k5 F1 t3 ^8 {- a
                        @.transpOrder := void;# E0 c8 j, O, ~. k
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' U. K$ d: n! v* d& j                                @,root.eventcontroller.simTime);
1 ?* D  Q. X9 r4 V" Z, K* w                        @.HasOrder := false;
" K3 g) l) T7 R7 k* k9 u1 x                        @.DrivingHome := true;' k2 _3 N$ H1 M2 w/ `
                        rgManager.tryToStartTransOrder;  v: X" P9 r' s: w0 s
                        if @.Destination = void
1 B" K; I* `# T0 R, _                        then -- no transport order for vehicle @
* E" D# ^( O8 w# f                                @.Destination :=
9 c2 n( E- F1 \0 _                                rgManager.nearestFreeStation(@,track.~);# A7 x+ {2 H: U( H6 |3 N- e# i
                                newDirection(@);   
6 g5 U" v6 O& q                                if @.Destination /= void then# b% a8 S, x2 k* _8 [
                                        @.Destination.NumReservation :=
+ B5 w, S9 ~- ]2 x7 S                                        @.Destination.NumReservation + 1;, U% E8 i, X. D
                                end;$ h  g" e! U5 {6 E" u9 Q9 t$ l
                                @.CurrIcon := "drivingHome";! E" _0 p/ }8 X) t  N
                                @.DrivingHome := true;" ~7 B% Q& w7 u" E
                        end;
3 m7 {# l! }! m4 j                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 c% \1 ^. Q) k5 d2 }1 a) M; t
                        part := @.transpOrder;) g( h) G( F6 e0 w. z: l; D
                        part.move(@);-- load part0 D! `& c% X/ F; N# M% G8 _
                        @.CurrIcon := "load";
9 j& ~# E0 a; E1 n: {% ~                        GlobalDistObj := part.globDestination;) D/ ~9 T8 x# i  x, C
                        assignLObj := rgmanager.rgAssignL;9 x9 }, J6 m8 P8 f3 a- {, R
                        row := assignLObj.getRowNo(GlobalDistObj);
  ~6 x3 e+ I" s' `3 ^2 w. s                        if Row = -1 then -- since 702 P) j4 D( f4 u, ]- Q/ ~
                                if lan=1 then
; Q: o& o( j/ K( |$ |, Z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. e" x+ X+ b3 i- r                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 |- B, [0 _" ^- s$ Y
                                else. ^( k9 G; @9 ]8 p6 b. w9 e
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- R+ `. w8 K7 _# W" T' o
                                                to_str("in docking station: \"",?.~.name,"\""));                                3 e6 |1 u/ p9 J# V. \- C
                                end;
' [6 @4 E% V1 p                        else
( G7 t; |% Z2 N                                @.Destination := assignLObj[1,row];$ n7 Y- c; U* D+ Y# l
                        end;                        0 ^; L" L6 g( G8 b9 Y6 K7 [8 \: A
                        newDirection(@);2 }, x, V2 K* m( @# a/ s. z
                        @.HasOrder := true;- o5 O9 d- ~4 f' @  N4 K9 R7 M# v
                end;) ?9 K: o) I' X6 p
        end;
" `" Y4 H5 [5 |- ~: Z, kend;        -- of the method
# m0 o) P# t- h$ c0 w3 X5 F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 h6 T8 P# U/ t& b! V# U; d* J4 P6 S: X7 A. f4 ^/ }" f6 O
这是AGV_putin中arrive的method。
: _! {! u2 I1 f9 @) d" ?
* ]( q. _7 b! L5 z4 z. j, a当到达物料速度越高时,这个报警更多,
7 x5 w6 d# M% e; M$ i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 \7 p- e' H( a1 t$ E" R8 B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 G) @# Y/ h/ x
0 f7 F2 g! {) c: d4 S/ W/ W
另外一个小建议,就是move,所有的move都可以这样
* O! r" w5 O, Z- v2 n& a1 f0 Q( Oif not move() then debug end- ?1 b7 R" z7 m- C! G3 E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ e* I1 F+ P& v. b7 S& H8 C4 lplant simulation中的free libraries有AGV模板,
0 t. M  {  D( X" B( ]9 x; \里面也有案例。7 D" |& n# ~* k% v2 q. u) B
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 M2 G3 t- Y) e6 B2 r
: V5 ^7 k; G3 O7 R我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( [- T# c9 c* b2 ?# @$ X$ S5 L7 }) R
! J4 s2 D! W9 o3 h( m/ @+ \* I! H那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 N( ^0 A8 |8 E  V9 d
这是AGV_putin中arrive的method。
5 W7 F' b" {4 `) h6 Y+ _+ f' j6 W/ b) S& @
当到达物料速度越高时,这个报警更多,
! w5 o$ o/ l" v4 c& ]
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-7 22:36 , Processed in 0.017934 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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