设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8642|回复: 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 q+ G$ f3 f9 O: H8 u8 p5 y- k*/( g. @2 z, R% Q% _  i
is; R0 s& Z' I+ Q/ C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; [1 [  x0 E. Sdo3 j9 C) c3 I, o; s
        Lan := rootfolder.Internal.Tools.AOLlanguage;% n7 U3 o3 @& C
        if current = @.Destination -- else return
$ A1 q& f3 z: |1 B' {        then
2 o$ M6 A0 w2 W  b# v. {                @.Destination := void;
. D: v% F$ P4 I* e) |0 N5 s4 r                if @.occupied then1 j  g" l! C( g( s1 _+ U
                        part := @.cont;
: q% u4 W) Y+ `! r1 @1 f; m0 X) @                        @.transpOrder := void;' h+ z" g( X5 k$ D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 K2 d  G& y0 {- Z' i                                @,root.eventcontroller.simTime);8 ~, w; e6 A% \$ {
                        @.HasOrder := false;2 F; [" W. x& s3 d
                        @.DrivingHome := true;
( A- F6 u# z, a+ `                        rgManager.tryToStartTransOrder;
/ @" [6 k( b4 I4 f% @* T" u" t* A                        if @.Destination = void& B6 _( O) e: V( z; y! E  A
                        then -- no transport order for vehicle @! X& j5 l5 {' l
                                @.Destination :=$ V; R7 e! c7 {
                                rgManager.nearestFreeStation(@,track.~);1 w% P. p+ D. D# p9 O6 u) F
                                newDirection(@);   ! Q) ~* d# Q( a5 t. t" V
                                if @.Destination /= void then
- X. c  J% }( |! u: y, x2 m7 _1 u$ v                                        @.Destination.NumReservation :=
3 M8 K- ?$ _- _3 ?' A, S; }                                        @.Destination.NumReservation + 1;
/ o! z, ~+ e/ ~: j                                end;3 V2 I; O! S* O* t( E+ n
                                @.CurrIcon := "drivingHome";  X3 ^* l, h; H( f1 V; C+ }
                                @.DrivingHome := true;
! E  r, Z- [6 I( b# C                        end;  q5 J% T1 G: O! H0 J
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& f  n, t. V4 W                        part := @.transpOrder;
, U. `# z$ H0 K                        part.move(@);-- load part
  o$ j5 Z: _8 G- [% t                        @.CurrIcon := "load";- ~; E6 \& a- [$ \' U
                        GlobalDistObj := part.globDestination;' O: D7 Q* P. q- A& s1 G3 q, a
                        assignLObj := rgmanager.rgAssignL;
1 O/ u' l/ Z: R- i4 P                        row := assignLObj.getRowNo(GlobalDistObj);6 e5 c; s+ Y; D' `
                        if Row = -1 then -- since 70
# o: N$ `! \$ D' @- h9 N                                if lan=1 then$ K" L6 d8 E7 [* j$ C# H
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 o: |3 \5 G/ p- y1 [  o0 S. r
                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 t  U( w3 |9 z  Y: N4 O) N: e, H2 r
                                else, k- p& o$ Y8 D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 x7 l. D! m- q$ a: k                                                to_str("in docking station: \"",?.~.name,"\""));                                ; }$ a2 A7 x. P1 F4 x: n
                                end;
" w0 m* q; C& Y                        else$ S, Q1 |. s& ]
                                @.Destination := assignLObj[1,row];
" q9 n' \2 {2 ?9 f                        end;                        % p: I6 c# `: b$ u7 O+ F) y8 v
                        newDirection(@);5 F* d, B, Q5 A# A* U
                        @.HasOrder := true;
% C+ F6 T" z+ w2 ?5 {                end;
- O6 H5 D/ w8 l. }$ u        end;
7 L* r; r# n: x0 Nend;        -- of the method
* T1 a- u" X/ m$ b5 l+ _( R2 v- H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   J$ S3 ?5 y% y4 r7 e
6 }( C, F/ z& D  H6 V/ z
这是AGV_putin中arrive的method。
. q" r: x, e! U2 I3 F0 `) C0 h  @8 ?1 O0 @% x6 R+ \: k! A' }
当到达物料速度越高时,这个报警更多,7 [% O9 B5 p( t7 X0 A3 C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' L5 Y& H; u3 {5 z8 T' f% G& r
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# K( _1 S% }, ?
. v7 j3 R& e8 P& e' u0 p) `
另外一个小建议,就是move,所有的move都可以这样  |4 H- u; n8 @& `$ X; M* o
if not move() then debug end
: r! I4 m' z) [这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; c8 i7 L2 O2 q9 D: \5 `5 ~' x" s
plant simulation中的free libraries有AGV模板,' u. W$ A) {0 Z' r" X
里面也有案例。
$ @" r0 Y' ]& A3 S+ v我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" p, s" R" B6 \! w( v! X4 M* f

  u! w. Z4 ^6 t1 N% Y0 _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : L3 [$ n. r7 x
, {, p7 h4 J9 F; O
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; U8 A1 A; P0 Y, ~* W* E" x: ~) @这是AGV_putin中arrive的method。
$ V7 Q+ P* g. `; U' c/ E$ y9 `/ ~$ ^0 q# O( b7 T9 `
当到达物料速度越高时,这个报警更多,
# I; C5 K4 O/ K
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-17 17:42 , Processed in 0.019088 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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