设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8559|回复: 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'
! k* x, w' F. _! [  o*/! |% V7 S  T$ r5 `6 E, U
is8 s/ j3 t( O3 v1 R
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  `8 L+ ]& h( L; V2 {
do
) g  t/ u1 J5 Y7 d* A        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 p3 i. L2 v  k; R* \7 p        if current = @.Destination -- else return+ E9 P; x! z2 f( T9 ~
        then4 h2 G+ A6 l  H/ V; a; W: Y
                @.Destination := void;; K$ C; S$ p6 i
                if @.occupied then
3 w% X3 z3 B/ b' F1 V                        part := @.cont;
/ V# }, B% s- e  {                        @.transpOrder := void;
/ D- F& n; V; U                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," P( I0 D+ Z2 D2 H
                                @,root.eventcontroller.simTime);
3 g, f2 d7 T- n; g                        @.HasOrder := false;
) W& E" a$ l3 G- t                        @.DrivingHome := true;: m& d* l0 h' S, f
                        rgManager.tryToStartTransOrder;8 h7 d& G) p! g  E
                        if @.Destination = void
' m0 G1 m9 A/ U" U8 s! `, j                        then -- no transport order for vehicle @, R2 v; ]0 h9 e) U2 @$ v: b+ [
                                @.Destination :=
; |& D) Q4 g  A7 o4 `( E$ i                                rgManager.nearestFreeStation(@,track.~);  Y) O; t/ M# D  r( z; y
                                newDirection(@);   
* P3 `' c8 a1 a$ x! }5 ?3 F                                if @.Destination /= void then3 W1 ]. X. [( w6 J* Z4 u- c- _. E2 |9 K
                                        @.Destination.NumReservation :=# Y$ N2 c3 C/ K1 P9 K9 k- l+ t! U
                                        @.Destination.NumReservation + 1;, u& {' q' v, B# D; M- a( N, _3 F* D
                                end;& b3 u3 F- a: V. {
                                @.CurrIcon := "drivingHome";
0 ^6 U. ~% \0 Y( y& H8 b6 y/ [7 O                                @.DrivingHome := true;
5 E8 J9 ^. d9 M' L) D# R: y/ ^+ h- M                        end;6 ~* h! X/ k- k2 [  J, e+ c
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( s! @: B3 l9 a
                        part := @.transpOrder;
) }  q$ _: N- |                        part.move(@);-- load part
$ y+ g5 @# y5 O# S/ U                        @.CurrIcon := "load";
: Y9 w, h; w" M7 g  t! U                        GlobalDistObj := part.globDestination;- R" e5 g. Q! ~( ~
                        assignLObj := rgmanager.rgAssignL;
$ t: d, s& v5 W9 l- |                        row := assignLObj.getRowNo(GlobalDistObj);9 d' n& d+ t' m3 C" m! x: `
                        if Row = -1 then -- since 70
  g3 s$ w7 W: @9 ?7 T                                if lan=1 then8 F2 e* ]% s$ V% q* c# u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ O) Q* i1 S; R1 j
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* ?# c. u) x, W7 v, |                                else7 S: x6 ^0 p, \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 }9 Z8 L4 T+ K( n. u5 g% V: i                                                to_str("in docking station: \"",?.~.name,"\""));                                9 j! ^! m6 n/ @2 ^. g# @7 V
                                end;6 @9 n; o( n4 t7 e) e; e9 A
                        else9 J" ^$ b7 ?) u5 b
                                @.Destination := assignLObj[1,row];
( j# ]5 ~3 a$ a4 h( N( r3 C                        end;                       
0 V+ @9 j: n% F. l                        newDirection(@);+ S' Z7 [+ H& `2 G+ P* L
                        @.HasOrder := true;) y- R# b, U  P4 u* I6 l0 x) g
                end;
1 M! `: U) a& }8 B6 T* k, \        end;
& G+ C0 w, c. M7 L$ c& g3 lend;        -- of the method
3 K+ F* ^; t+ t8 r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * w5 _- j) r1 y0 M+ ~, ~# f( p
8 A" P& @* i2 m! J& I* X# u8 N2 I
这是AGV_putin中arrive的method。
, u. G. T# Y" Z4 {: z& |* ]7 H6 g8 S3 M: X
当到达物料速度越高时,这个报警更多,
  N% c: t2 _7 c; b. n: j" L( h# G0 _可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。/ w. i# ^1 v7 [$ b" b$ O
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; d2 s+ i: q. M" q, M* d9 S& i9 O& e9 S2 d3 P# ~6 H! R  Z2 m
另外一个小建议,就是move,所有的move都可以这样
* m; f8 X, H4 e% h4 N5 `if not move() then debug end
9 _) W% e  [+ [9 b) D; i1 @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' ^" O/ c  |! O* i  |! H% Y& O
plant simulation中的free libraries有AGV模板,( r8 M% p- y: O2 G
里面也有案例。2 p. Z# s) v8 t# ^) m/ @
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 K7 d; j7 j1 C3 p9 K+ @1 Y: @4 x2 z' u" T7 M) G  k' Q' D. O9 N9 J% ?
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 v. S/ \& O1 d* d' j6 C

% z9 Q% K7 C4 O6 b  m0 R% U那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 b3 r- s( j6 N  q# S7 k0 t这是AGV_putin中arrive的method。
' }. O, a: x5 e0 r0 j4 X9 z$ a" L/ b2 x0 w) x& Q+ K+ `
当到达物料速度越高时,这个报警更多,

- `# @5 _9 T) ?4 @3 g  s! p+ ^另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-11 19:22 , Processed in 0.015735 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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