设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6047|回复: 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'. z6 S2 z: r. C3 U
*/" k. o5 C: Z& t
is
9 T+ `, }9 \8 _. y" f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" V6 l) ]6 v7 Jdo
9 T/ W) @3 X: _8 d8 K" `6 Q        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ A# k, t& o6 o5 n6 E! T; q        if current = @.Destination -- else return+ R) C" y+ b! _1 p* u) h* J
        then0 ~# E& ^( B. l: ~2 V9 c3 }
                @.Destination := void;
" s- l5 l* l- F$ d& T* l                if @.occupied then
6 A/ s' i2 i1 F2 q' ~) @- V                        part := @.cont;
( g/ D, W3 A. k! R' S1 z- S3 x                        @.transpOrder := void;6 p: [4 s1 r/ c
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 w$ B9 ]. I$ |9 n                                @,root.eventcontroller.simTime);
; I2 r2 T$ |7 b, c                        @.HasOrder := false;
* Y+ v' \+ L- \: e  V! H                        @.DrivingHome := true;
- D4 k8 q4 z2 L                        rgManager.tryToStartTransOrder;
8 b8 g% t9 ?! T  l( l" S                        if @.Destination = void3 s9 A* v4 |5 a# [& W; v  U
                        then -- no transport order for vehicle @
! i; q& j: Y+ T/ }$ q* b/ q                                @.Destination :=
( n1 R: A, _" @* G: q5 i                                rgManager.nearestFreeStation(@,track.~);" O5 ^8 r, I, u7 K2 x# U3 [
                                newDirection(@);   : u4 W& E% z' x. P
                                if @.Destination /= void then: i0 O# Q4 ~* ^1 G9 A, y
                                        @.Destination.NumReservation :=
. N# M) J8 n7 I- K                                        @.Destination.NumReservation + 1;" e9 C3 R: l' J* x: Z' Q8 x4 i  X
                                end;
0 i7 D$ I" Q/ I: S                                @.CurrIcon := "drivingHome";) {; o2 T3 f' M. c1 K( l6 N- `, m
                                @.DrivingHome := true;
+ r$ K5 R3 m2 W! L: }                        end;" z6 _0 h/ y3 r
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( C/ f; s# S' t0 W
                        part := @.transpOrder;
/ g) P1 P2 }6 y" H; p. H                        part.move(@);-- load part
4 a- j( F) S+ R                        @.CurrIcon := "load";; B" c9 y( K5 |# z7 S4 [; r* \
                        GlobalDistObj := part.globDestination;
' ?& f+ ?( e( c( q1 v6 |$ e! \                        assignLObj := rgmanager.rgAssignL;
& c+ k1 l6 g! {' R& J& }                        row := assignLObj.getRowNo(GlobalDistObj);5 M; c( @. [, b- s" ?; ?* D& c
                        if Row = -1 then -- since 70
. n- a8 ^/ Q+ R1 E5 w                                if lan=1 then
  o: V* G: K& M/ U4 r1 O* A                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 U; `& n, ~! }: a# v1 a                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- \8 t/ k3 \3 Q0 z" z                                else7 Y" f& X+ j# V5 Y' j
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 Z7 t& x8 A8 Y9 o                                                to_str("in docking station: \"",?.~.name,"\""));                                ' \& M7 k" A% u5 v" S0 I
                                end;* J3 l/ I2 S& l# j8 m, f; N8 v/ k
                        else
/ q2 b9 E: U' ^! W3 L                                @.Destination := assignLObj[1,row];
* \/ A) K. C% H- A* G2 J. @" H7 }                        end;                       
8 G" m7 o6 ?, o2 X0 {+ P                        newDirection(@);0 u. M* C+ U9 v$ J' k1 S( y+ M# }  Y
                        @.HasOrder := true;# ?* m1 O$ _" P
                end;
$ |0 z7 e0 ^1 S9 s        end;
7 r* B+ P0 F. x! u3 tend;        -- of the method
& W4 V7 A( s0 r4 ]- }1 G3 B+ a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . B- \! C6 x! t7 {& q5 Y9 l8 v. g

1 \$ r1 `3 O  {. U/ X, U这是AGV_putin中arrive的method。) W: t/ o# x  n6 {# p9 t

/ K$ x+ u) b: v当到达物料速度越高时,这个报警更多,  H* l. F/ Z) g8 d; w# D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 L+ ?7 U' Y7 s. ~8 V5 W5 }" z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 {- Q3 o1 ]5 |8 g

9 @: [6 G4 G' _. e: c3 K$ U另外一个小建议,就是move,所有的move都可以这样
) H8 h! B; z: _- y7 W" \# l/ R- fif not move() then debug end
( E+ e0 V; Z. w3 \; o* Z这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ M$ t1 H" Y6 z* p
plant simulation中的free libraries有AGV模板,
8 y) i; k0 `5 s4 I) a8 m  O9 p! O里面也有案例。& c% D7 S  f. D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
2 c% _' {$ H0 G2 S; m. o* i- R' q( E2 a/ {
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! Z' d  T& i" w* z6 M$ X9 M5 L* x

/ b0 W& [4 D6 v  r3 N那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  V8 b, y2 b5 X! _) v这是AGV_putin中arrive的method。2 G  h7 p' q: @1 Q6 K
: {7 X( h, E2 f9 C. G8 {6 V
当到达物料速度越高时,这个报警更多,
0 D0 g* G/ ^4 `, A/ q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-14 12:35 , Processed in 0.018447 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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