设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7052|回复: 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+ b5 x! Q5 Q! R
*/
0 D! K& t8 U' U/ e7 X& J, |* n6 Vis
+ a. q3 W4 k, {" D% i: x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ s! a! F5 T( i: W
do8 |; V+ M, M* u2 }
        Lan := rootfolder.Internal.Tools.AOLlanguage;. {! ]) c3 e$ s9 Z1 E4 z& I. q% f
        if current = @.Destination -- else return1 A- G9 o6 \0 L: L# P; W# g
        then
" s" s; b) Y- w1 t1 u% |, }5 ?                @.Destination := void;$ B  Y4 e  C' j, G, }
                if @.occupied then
7 V$ C* i, [6 i' x9 ]                        part := @.cont;9 t# @! ^8 }) p8 g( K# D* D# N
                        @.transpOrder := void;
5 x9 x9 G9 s# T6 Y' x/ w9 J                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 y* S, c1 ^& j* D4 n+ `- d0 p4 ?                                @,root.eventcontroller.simTime);/ T5 m* i: I/ G% C" j  D( F( R
                        @.HasOrder := false;
( d4 H9 _# K% j1 b  _                        @.DrivingHome := true;
5 c! _5 k% B8 A: k/ h9 _% G                        rgManager.tryToStartTransOrder;$ N/ I' ^3 ^6 S5 a
                        if @.Destination = void7 m/ g, w4 W! z+ U
                        then -- no transport order for vehicle @& w9 A+ ~- c  D0 ]
                                @.Destination :=
6 {; x4 }% O4 G( I                                rgManager.nearestFreeStation(@,track.~);
! a: M/ g" ~5 `) z4 H- r                                newDirection(@);   
' H/ w/ ^7 ]* `                                if @.Destination /= void then
3 {9 y' h4 w. i* K- O                                        @.Destination.NumReservation :=
: {& H9 J( R* o7 Y9 V& Q                                        @.Destination.NumReservation + 1;$ V4 X5 N$ L' I! E6 k
                                end;& `! S2 m4 J. F, b; M5 O5 I# _5 g
                                @.CurrIcon := "drivingHome";  R- k7 I* d+ d& u- I& q2 s/ a
                                @.DrivingHome := true;
  C7 P  p0 G5 Z0 O8 x) |: t/ \                        end;
' {& C8 m) c$ d2 E3 W+ c9 `                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ t; z; i! _2 b4 e' c* K/ n2 Z
                        part := @.transpOrder;) P9 y& a1 W! s' p
                        part.move(@);-- load part' l# E2 j2 T8 m! `& x0 v* X
                        @.CurrIcon := "load";
3 Z: Y2 A9 [7 a$ r, B8 N                        GlobalDistObj := part.globDestination;
$ r) Y# }4 x) f) Q2 Z1 F: w                        assignLObj := rgmanager.rgAssignL;
* x$ F  A( k7 V: U7 S5 j5 B" P% m* c6 q                        row := assignLObj.getRowNo(GlobalDistObj);
/ Q' W; C  z# h8 @1 h8 y1 N5 Z/ Q                        if Row = -1 then -- since 707 P! f1 v$ C( v8 Q: x2 x
                                if lan=1 then' ]5 V; F: U+ \0 M' y( d& M
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& r8 }5 `& I) S3 p1 `2 ^8 X
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% R; m3 b% X$ N9 v1 o                                else
0 Y# r) w; `. @' v6 P+ W8 u                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 ?! e9 H* q- U
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( [8 y+ q: }: L8 z- N% A% |                                end;0 Z4 H# f+ U# }" X) n
                        else
7 f: g1 m+ v4 {$ J3 `" O# @                                @.Destination := assignLObj[1,row];
: ~% U% v6 R1 A" O8 \                        end;                       
3 X2 j. P* s0 t' T& {/ C# L                        newDirection(@);
* a- @+ U7 B, x2 h& V) f5 o                        @.HasOrder := true;
. r" a; A  q% t5 E                end;
5 P0 n; i( O! @# C2 ?8 z( g2 L- \        end;! o; u& a5 S2 b5 T
end;        -- of the method0 Z: C6 j! B7 {/ y( {; x% n  U1 Z  D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 9 Y! O. l6 r; ^; e  }
5 h2 h" ], V/ ?8 n
这是AGV_putin中arrive的method。2 _( ~% r- R) }/ X6 [9 R) v& ?: e

/ p7 i4 J8 I% s9 R) n; r6 n' n1 z! w当到达物料速度越高时,这个报警更多,
& i6 F$ L! s3 W: D  P! U0 }可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' r4 k' K1 v1 p程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& x5 H( w. h7 Q) ?. H& h8 v2 M' C3 ]* ^/ ^/ x( v
另外一个小建议,就是move,所有的move都可以这样
( L- V8 N+ N" e, s4 B4 l1 @- t/ Zif not move() then debug end# |1 i* u4 Z3 J
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 u1 X; v3 C0 r: o2 w
plant simulation中的free libraries有AGV模板,
; _2 T- [3 H+ r7 `3 Y里面也有案例。/ j! R) ]. x  L* J4 P2 e$ T* I7 }
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 b4 X9 O) m6 `6 t; U( a& I+ ~2 r  n1 c& J. f8 c0 s; e/ ^- [6 i
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 N' R9 r) k& Z- A, m/ j) _. o% f- q( P$ b) H) u
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ F4 f) k+ u& [! A$ F' [3 c2 @  t0 [这是AGV_putin中arrive的method。9 t, s# E2 N/ x, e( r2 s" K, ?) x

% i# k% m% X! O6 Z9 J( D1 B) @当到达物料速度越高时,这个报警更多,

' z$ l1 b# S0 J! T另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-13 13:49 , Processed in 0.018792 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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