设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6608|回复: 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'8 F! G6 {- N) T. N0 K4 v
*/( O+ ?! k$ r4 [
is6 u/ l( r0 {7 T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 S: e  _5 T4 i- Q. sdo: K* r, h' @) r% B6 q9 h
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: d2 P! `$ s( P1 q) o4 _3 x; L        if current = @.Destination -- else return8 f0 \' J3 x" N- h. D
        then
$ p7 a4 p- O' [1 b& A$ W. j. D                @.Destination := void;; _" ~) V, V  m/ {( e
                if @.occupied then
" D5 \4 J) ]) _  _8 [                        part := @.cont;( n7 g  q6 G' h0 p" i4 ]" L6 n
                        @.transpOrder := void;
/ }: f" o$ p2 m" p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 c5 w' y" B, y3 {8 K
                                @,root.eventcontroller.simTime);
# M7 D* j. V; X" [/ P/ c                        @.HasOrder := false;! g+ V& A- p) k
                        @.DrivingHome := true;; d( R2 I0 ^4 P% _5 @$ K7 ?
                        rgManager.tryToStartTransOrder;
# Y2 d# W/ M4 m# J- e; N                        if @.Destination = void/ v' l; L* g+ c! J& M
                        then -- no transport order for vehicle @8 R5 }# U; j2 g- j; W
                                @.Destination :=4 d: C% R$ d& Z& g
                                rgManager.nearestFreeStation(@,track.~);
: I8 S+ o4 v1 \/ e                                newDirection(@);   8 O$ k* I8 C4 [+ P  Q
                                if @.Destination /= void then
( m' c" a+ h3 A" H: g                                        @.Destination.NumReservation :=5 B  ]5 n) `) H) r
                                        @.Destination.NumReservation + 1;
/ T1 H6 l' H/ \                                end;
( F) W2 }- r1 q& e) j7 T                                @.CurrIcon := "drivingHome";
( k2 b7 U  v5 e6 p8 A6 n                                @.DrivingHome := true;2 o+ y+ j: Z. U' Q3 s
                        end;
+ a6 s9 B& R& o, ~                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; l# S+ l% T3 |2 ^; _. d1 g! b                        part := @.transpOrder;
5 l3 n! j" m6 ~/ D* f7 n                        part.move(@);-- load part% q- M; z" @$ j4 a+ V7 x7 A  z9 b
                        @.CurrIcon := "load";
) a7 `) ]" j; y9 ^$ E7 {0 |                        GlobalDistObj := part.globDestination;0 u$ i( w: Y7 s
                        assignLObj := rgmanager.rgAssignL;
# l. z3 a" Q* ]1 B* j$ M9 E4 D3 X) W                        row := assignLObj.getRowNo(GlobalDistObj);
2 l* y# U2 u8 H/ c$ I4 q- p                        if Row = -1 then -- since 706 h# D' T3 E+ t  X* b
                                if lan=1 then+ D+ K& x/ s! z7 P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 x* a# Y( K. A5 V3 i5 i0 _1 P                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 f% x9 u, t) X0 a# A4 d                                else
, S" h# `" z- i                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% E; M. J4 u8 E: b8 I; x                                                to_str("in docking station: \"",?.~.name,"\""));                                / j( L' D, O, @0 [- u% ^' Q
                                end;
$ d- n# e" U  X: E# a. }4 `$ f3 j. N                        else
1 ^3 D) z0 `) N" v% ]2 D4 {# Z                                @.Destination := assignLObj[1,row];
! l" x& ~, Z$ R                        end;                        ! Y# |0 O! O' Z! o: m. c
                        newDirection(@);' L8 N. Q% o+ U# M& q+ {
                        @.HasOrder := true;0 ]4 v( E& `6 k( H
                end;
9 k; N/ E% U2 ]( U5 U        end;
9 @- c' ?: n7 [2 J4 o7 r- [end;        -- of the method
3 ?* y3 |7 ?. R, W, {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! {2 c6 q2 y- T9 m
+ H8 J9 K7 {" u+ z- x- \0 k这是AGV_putin中arrive的method。: g1 ~' J0 |4 p& B1 {& P# Y( F

- w* D2 E  G% K$ ^, c3 E% R当到达物料速度越高时,这个报警更多,- V/ c4 ]1 w, j* Z4 X% A7 }
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% M7 P" e" m  O) @, P& G
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" X) M( O  _3 E" A6 g. n9 l
9 P7 o/ u! B5 i# O, r3 X1 b% F
另外一个小建议,就是move,所有的move都可以这样# f. g" Q8 R- k" a$ R+ e) l3 o
if not move() then debug end
- ^2 o! v. _5 J( _6 p9 I6 ~( V5 Y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ {( T9 k  _, \* U8 u
plant simulation中的free libraries有AGV模板,) x. \9 W& x$ g( d
里面也有案例。
. l8 a% K( k# Z) n我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! Q- K3 g" x( {0 O* ]6 `
0 g1 t& G) b6 Q3 ]' E' x/ K5 r8 ^5 s
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' o  K% B: m) i2 o7 c# t  @) s6 t9 X" B! G
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 5 ~2 [, G# {& q
这是AGV_putin中arrive的method。
7 o# [  \9 v% n
! a7 _! \& h: P1 P" u' y. I当到达物料速度越高时,这个报警更多,

0 _7 h& }/ {6 N7 ?1 V另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-16 00:57 , Processed in 0.022607 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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