设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8209|回复: 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'
# O& Z6 J/ n1 z6 P$ Z8 I*/
# |8 N8 J& }- k! m+ C2 o9 ]* @is
+ M4 x5 q3 K8 X4 f. N" F; h/ F9 _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 ~3 E# h9 s# }0 t- k1 S: H
do
6 x( ^+ b( M* ]- A; u- ^        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 a( t: J8 ^: s6 U4 S; {        if current = @.Destination -- else return/ |5 N+ D# h! C9 a, z
        then0 a1 T" u, c5 M  A# P
                @.Destination := void;
# j$ q( E* A! X; V$ m" b                if @.occupied then
! R, x( j; [) }2 c                        part := @.cont;9 g) X" W# {: p
                        @.transpOrder := void;
0 b; S8 n- s" |, J- ]9 p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* t, _; e% i5 A9 [9 W* |                                @,root.eventcontroller.simTime);. w  m5 D0 @7 z; d5 ~
                        @.HasOrder := false;
1 X/ e" {: [/ h( `5 f% s. s                        @.DrivingHome := true;
: _# i5 s3 U6 a& o& k- F3 a                        rgManager.tryToStartTransOrder;
" k3 V2 }& j& o+ k                        if @.Destination = void4 ^4 d4 h' W9 m+ Y! n& \4 i
                        then -- no transport order for vehicle @
: T0 W6 t1 E$ p* z( l1 {! n                                @.Destination :=: d7 _+ {! K; y& Z  I1 Y
                                rgManager.nearestFreeStation(@,track.~);2 a4 r5 |& r+ x* G" u5 L
                                newDirection(@);   * Q8 b/ c  g# E- U) N! j9 W
                                if @.Destination /= void then( e* v6 C2 H5 |9 s) P
                                        @.Destination.NumReservation :=
+ y: C" K% J* S8 F                                        @.Destination.NumReservation + 1;0 ]' w6 h1 a; h( I& C( n4 }
                                end;
6 p. `; u& \  H* A$ m8 ^' a                                @.CurrIcon := "drivingHome";: C6 G. Q7 F' Y) H
                                @.DrivingHome := true;8 S& D5 I4 }0 `- F; q0 D$ M
                        end;% b8 w1 }# @+ B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
0 {; z' U- g8 c, w' ?& X! T                        part := @.transpOrder;$ o6 E: g+ j2 b4 F
                        part.move(@);-- load part( k- b# Y/ n, q
                        @.CurrIcon := "load";
0 M6 ~9 S8 x* m' W  Z1 x: F                        GlobalDistObj := part.globDestination;4 A, N$ ^& k* W9 h1 `+ U
                        assignLObj := rgmanager.rgAssignL;/ @! J3 j- O7 u5 H# T: f7 i
                        row := assignLObj.getRowNo(GlobalDistObj);' f0 ]0 u9 `" w/ n
                        if Row = -1 then -- since 70
; j! z9 W+ R) q" O# }! p+ z& [                                if lan=1 then5 I' r6 r  [6 _, \! D! Y+ I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
# h5 N( ~* L6 J7 ?, K                                                to_str("in der Andockstation: \"",?.~.name,"\""));: L, m4 v: w; o8 R; i  d& {' n
                                else
4 I; N! e/ Y1 L) l- e7 n& @  n                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  c5 |! h( c6 P, M8 E8 P; s6 X' j) H# }                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 X+ d+ _2 }. Y. w3 U                                end;
) t' q9 g8 n5 T# Z                        else8 \( f4 G$ F3 T! b3 `, g
                                @.Destination := assignLObj[1,row];
7 K+ ]- z; G! ^                        end;                        + z/ J7 K& K" S8 ]! T( v
                        newDirection(@);5 j7 R' a$ _$ a; p9 `
                        @.HasOrder := true;0 X6 P6 r6 C& z  R4 Z
                end;% ^; b$ z3 L" ^6 h
        end;/ d2 W7 G9 ~5 }
end;        -- of the method- d' h$ k% P# K$ k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 Q& h  ?/ y! m( {4 |( n2 a2 z; j

. @* J* R! H' r# f这是AGV_putin中arrive的method。  ?* ?4 K8 @' F4 T
$ Q5 ?. r: D7 W. q4 o
当到达物料速度越高时,这个报警更多,  D( }3 A1 x' s5 I& ^- m6 h7 v  K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ [, [" u% |) r% q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
: w6 ~+ G0 L& ~( u8 ^3 B. |, N1 K6 W  B' v" P
另外一个小建议,就是move,所有的move都可以这样
- n9 [# k* d+ R3 X/ `  cif not move() then debug end
5 q  W: }7 W5 ^* I9 t( B/ a3 }这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" T% w; V) o5 v" O* \plant simulation中的free libraries有AGV模板,% \! ^8 O0 v. K: E. L4 a' S$ |
里面也有案例。/ q* O4 H8 x# E/ M1 a; m
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 w/ o2 l, y; r( |; W0 @* o! Y3 L
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " b  D) d" n# V/ q* V

9 f  P  u% y+ J7 K# y4 e+ m/ ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 + ]- K- v1 x) S
这是AGV_putin中arrive的method。
9 P/ i4 B! s" P) K% R* q0 @2 ?* Z" d. Z  H) T
当到达物料速度越高时,这个报警更多,

6 N. r& v5 p9 o7 S" D, g. J9 P另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-20 21:43 , Processed in 0.019921 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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