设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10055|回复: 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'
  P! G( P% `5 s/ {0 `  m" O*/
( |9 x6 p! s3 mis4 e8 w( v+ A3 B. o. M# s. x8 D7 X
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% D6 p( y  v6 U- N2 m+ i# A
do
; D4 Z$ ~$ f3 x% F$ h5 p( u# V        Lan := rootfolder.Internal.Tools.AOLlanguage;6 d# v& S) M# S& q( {
        if current = @.Destination -- else return
% o6 }( h2 b0 u% {        then
3 [! K$ e) B! M* ~4 `! p                @.Destination := void;  P: ?6 g; n* Q' y
                if @.occupied then& m4 }  L" A9 V7 p7 t! x6 Y: r
                        part := @.cont;
- v/ A0 i- t+ A2 W- l8 Z/ V+ `                        @.transpOrder := void;
% N( G( c6 a" i. e2 m' D                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 S2 y# r/ F, b/ Q) Y, H
                                @,root.eventcontroller.simTime);. s$ J) y/ {0 f
                        @.HasOrder := false;, G: b- x1 b' F% G$ F2 W/ W
                        @.DrivingHome := true;" D( I$ z1 _- |3 n! u  m1 O
                        rgManager.tryToStartTransOrder;3 }7 P( k  J5 |  w8 C
                        if @.Destination = void( E5 M; M( B+ u$ O. m, O8 \5 P( \
                        then -- no transport order for vehicle @
7 {! s/ s& v6 j& Q' B/ e/ {/ w                                @.Destination :=
$ t2 B/ k* @  @7 D7 E  K& P                                rgManager.nearestFreeStation(@,track.~);
6 e% K/ a9 _3 k3 J9 ~0 `                                newDirection(@);   
' M5 Q. H3 M" u5 ^                                if @.Destination /= void then. C9 d* @+ |/ Q& \. c
                                        @.Destination.NumReservation :=: m# m: T+ u5 i" y- q% W
                                        @.Destination.NumReservation + 1;& J: x" |" p1 U
                                end;
7 A% k4 r' c/ J. H0 z                                @.CurrIcon := "drivingHome";" n4 D8 @: a- d: B
                                @.DrivingHome := true;
3 Z& y% c  ?6 N  c8 u# c: W' n( w0 d                        end;( ^* w# w% b7 q8 n8 w! B6 U
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ {2 r! w" O3 [# q                        part := @.transpOrder;8 U% N& h) f, q. B
                        part.move(@);-- load part7 [# z1 @# C1 W" T7 p
                        @.CurrIcon := "load";
1 d5 |7 g( D' _6 L$ K! a7 }. i                        GlobalDistObj := part.globDestination;% V/ J% j2 P* t6 z  C6 G
                        assignLObj := rgmanager.rgAssignL;- q# F/ R# o8 G* A7 K$ U
                        row := assignLObj.getRowNo(GlobalDistObj);
+ S) }3 Z7 r; [                        if Row = -1 then -- since 70
* d8 o9 r+ j! [- k1 ^/ |3 d4 Q                                if lan=1 then  f* i. H" A! U9 F; n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) z- h5 ^9 N9 _; G                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 p0 K/ N& W' c. H% O8 s9 L' g                                else7 r4 [5 K. [* |# g8 L3 C5 O7 {( E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; y! ^, U) C4 f
                                                to_str("in docking station: \"",?.~.name,"\""));                                " {* @8 F0 T0 c' ]6 L5 J
                                end;8 p, f: j3 P6 t. z$ d) b  M. [
                        else
) U. |' q, }: J1 a* F$ _( Q                                @.Destination := assignLObj[1,row];
$ W2 k: @8 P: U- x, {8 N                        end;                       
9 C0 H9 e$ j+ K9 }                        newDirection(@);
( h% i% ~- R8 o' g- [. \                        @.HasOrder := true;, y- {7 Y/ n  l2 E. U8 r
                end;
: x7 l! Y7 a% N6 @        end;% b# ?; c6 K+ g) J; _
end;        -- of the method
/ d4 z1 u# \( x- B. Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! j- q/ \3 t, x; O7 H# s; e0 f$ K4 x- ]

/ Z' v" g* J: r+ G这是AGV_putin中arrive的method。
, s  S; c% Z& U. S7 x+ l) u: a
- s/ }4 H. {6 v: G当到达物料速度越高时,这个报警更多,) I, l: H5 O& V: ?" |7 M( c
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! o9 ?( b6 r9 L
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 v1 R; m. A, c6 k
% X: U7 w( Z5 E; }$ q& ~; ]3 O0 ?
另外一个小建议,就是move,所有的move都可以这样1 d: v, k  Q" k* Y
if not move() then debug end
: Y* }5 L7 g; t  z6 L5 y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' }( D: q8 {9 V' c- T* Pplant simulation中的free libraries有AGV模板,
2 d8 u. i: @6 f& w里面也有案例。
, f) }, [& i/ e我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' N5 G( t* z: ~" i. B8 F" D
* ~6 v* w$ P0 v& `  R- }& w7 _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 P8 I, z$ m9 P  d3 Q$ p2 x7 Y$ [; E( p0 s/ I# K) [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( \% d3 S. y( K7 z" u
这是AGV_putin中arrive的method。
* t+ i* }# U/ J9 {9 p, g5 x& i' \: k' f4 j2 z% `& s
当到达物料速度越高时,这个报警更多,

) O, D; a0 K! n( Y& A; ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-10 18:45 , Processed in 0.015368 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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