设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6401|回复: 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'
4 ]# T+ G5 G  I*/
7 |) G( M7 ]: m) Yis
2 t. N+ C: s0 c, S9 x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 z9 J/ r7 ?3 O9 n, |, ]/ Ido/ \  K( a; F% m( A0 [3 f, k
        Lan := rootfolder.Internal.Tools.AOLlanguage;
, `3 e# ~* {6 m7 y2 c9 s& k        if current = @.Destination -- else return
# _# J; B) r1 b) |# R        then
+ y/ Q5 _/ r6 _" `, @                @.Destination := void;
) ?+ [5 G4 }; Z3 a7 Q                if @.occupied then
; q! A* T! i2 I. \* l                        part := @.cont;
7 N$ ~- K# y3 y2 s/ s                        @.transpOrder := void;
7 D" n$ m$ x2 ~9 \* w, i                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( m* }* l) T8 T9 a                                @,root.eventcontroller.simTime);
; i, I3 X8 O# S' Z! L                        @.HasOrder := false;, n1 q% Z9 t7 Z) ]; Q
                        @.DrivingHome := true;
1 ?0 R# u( R8 Q' K( S7 k                        rgManager.tryToStartTransOrder;* N+ J0 q  i( A' p% g3 \. k# d
                        if @.Destination = void
( j9 O2 M( p& M. m3 w                        then -- no transport order for vehicle @
0 }4 g$ B. R* I  v                                @.Destination :=
8 Y* m' b, O8 _9 y                                rgManager.nearestFreeStation(@,track.~);( _8 K. R. r( u5 _
                                newDirection(@);   
( V/ ]& y' O" Z) L& Z                                if @.Destination /= void then. j3 U8 g. j; I) p2 d
                                        @.Destination.NumReservation :=
( E2 G: [# N0 Y1 k1 x                                        @.Destination.NumReservation + 1;9 _" y) U6 N0 t4 q" @1 v
                                end;
9 p$ y- R3 C3 t0 D& M                                @.CurrIcon := "drivingHome";
. r% V: Z7 L2 e7 ^# b8 X                                @.DrivingHome := true;
- g: q+ [  F* W$ u6 }5 t                        end;
6 a' V! s0 z) t& w& l& {  H' a: z, P                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 j- W# F7 v( a
                        part := @.transpOrder;
5 q/ Z9 I0 c0 C) ~                        part.move(@);-- load part9 H! a+ b: T1 D& T/ L6 P
                        @.CurrIcon := "load";
$ X; p5 \* \1 q- r+ U& L* {5 L* Y                        GlobalDistObj := part.globDestination;
( R; P1 m+ t# V# {                        assignLObj := rgmanager.rgAssignL;
$ I4 V" ?0 J$ m! E. Y) r* {; L                        row := assignLObj.getRowNo(GlobalDistObj);
9 B0 K- Q4 O2 Z4 F4 D+ @9 \3 L8 q                        if Row = -1 then -- since 70
- {3 o0 I9 H  o+ |6 {% `1 ?5 V; e: A                                if lan=1 then
5 s* l( \5 B9 `                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 U, p, {- C$ `2 `                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 ?; S& ], I+ i
                                else
, m: e1 |' T" h1 P/ F( T2 ?                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 ?. r# N! x& t: V! R  p1 H                                                to_str("in docking station: \"",?.~.name,"\""));                               
" R3 m: t( c  v! S( z                                end;( H' \2 A' i7 T- K8 I# x1 `
                        else
/ G9 ^7 P# E- t# Y1 f& A2 Y3 d) `                                @.Destination := assignLObj[1,row];  }" N. t  e2 h4 A6 D
                        end;                       
% k  I- X( f, t! {1 E) V                        newDirection(@);
- s2 H5 u9 F5 z2 p                        @.HasOrder := true;$ A( ]- z3 x; u# ]1 P
                end;
/ k% c3 k9 ?% g) L        end;
# x* h0 V$ A+ q' E# n5 Uend;        -- of the method1 U/ Q# N; D; D( k3 o9 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 d; G3 A+ I- \$ _4 B1 z5 d' F0 S4 J, b" u$ @% u( f6 G. M  I
这是AGV_putin中arrive的method。
# g: a" q. F  I% k5 Q8 j& E9 L0 p& Z) t! |! I6 I
当到达物料速度越高时,这个报警更多," D! E* N2 n9 ^
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ k- M- h* m3 o; f. G
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" ^9 p# k+ \- z
1 A4 d2 W4 S& O4 t/ G, p, ?
另外一个小建议,就是move,所有的move都可以这样
. c- f" g1 z# [- k4 `2 n8 Uif not move() then debug end  V4 L5 {0 t, M  x1 f# y; ^9 Y  G
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ q6 M& _  n7 {, ], E7 V
plant simulation中的free libraries有AGV模板,
0 q5 B; p4 t1 k1 r里面也有案例。8 E: C* c9 m  c# V3 Z3 _
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& R- i( n$ s3 H
9 o% J1 L! Y9 K% I3 o$ c- m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' p, t) U, a: S; @$ g! b
0 w; |: h1 @& i( c6 ^) U那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! X2 t4 {" A6 z+ f这是AGV_putin中arrive的method。
$ C0 z0 `% c& M
; @* E9 C7 H$ [" }" S! s; ~当到达物料速度越高时,这个报警更多,

2 i- I/ B& a( f: S7 f; X另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-4 15:20 , Processed in 0.016442 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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