设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6058|回复: 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 p& h& g+ ?+ S0 A3 H  Z" q
*/& B, U% `6 b# s) T  e
is( z+ {) L: w( P( p! e5 }7 r+ c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& {# l& _* z* i4 g+ H3 ]! d7 }6 y, xdo* f3 [3 y" N! w6 x* ^; s' K
        Lan := rootfolder.Internal.Tools.AOLlanguage;. N& w1 }' z9 r6 A" j; w
        if current = @.Destination -- else return
/ w) q) l- a8 e/ {+ D. c        then: b9 |# K) u, r( x' |
                @.Destination := void;. _& n: S8 z- C5 l
                if @.occupied then; [+ ~, _% c! h
                        part := @.cont;
, Y6 m7 i2 c# F1 m* K                        @.transpOrder := void;+ x; j/ O" G$ I! C8 F
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 J+ X+ P8 H6 e- F+ m; k" F0 A
                                @,root.eventcontroller.simTime);, f& t2 x) h( b, Q" b; U+ C
                        @.HasOrder := false;
- L- u3 P  L4 n/ @                        @.DrivingHome := true;+ E) D7 U2 a/ Z' L3 Z& n  {
                        rgManager.tryToStartTransOrder;" V' v) \/ Z% Y0 Z+ d4 w7 F5 ]
                        if @.Destination = void& K4 W' ?; C% v* }
                        then -- no transport order for vehicle @
9 D3 x! Y8 l5 H) r3 }                                @.Destination :=7 G: |; J6 u; T+ m' j4 z
                                rgManager.nearestFreeStation(@,track.~);
9 w% P2 C& y# K3 l9 s                                newDirection(@);   
: i6 H! r1 y( Z) L                                if @.Destination /= void then
( Z" I" i+ U; H# [                                        @.Destination.NumReservation :=
, N# A" _/ \8 h' h" J                                        @.Destination.NumReservation + 1;/ g% z% ?" s9 _* s) Q
                                end;" ]3 J. }; i2 }( G/ s9 @% @) _; v, D
                                @.CurrIcon := "drivingHome";) Y, Z/ z( @- d
                                @.DrivingHome := true;6 x1 L, z  |4 V, a" b
                        end;5 t  w, Z  l" F. J) z& e
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- ?  B2 ~, P$ m8 ^6 `* t
                        part := @.transpOrder;- ?1 {- `0 v5 y, U
                        part.move(@);-- load part+ P3 f0 g& i0 x
                        @.CurrIcon := "load";
* A$ e$ R: j9 t9 g" s                        GlobalDistObj := part.globDestination;
* j6 p/ w9 \! E/ V/ o4 X                        assignLObj := rgmanager.rgAssignL;5 U0 x# e; c/ S5 Z9 q3 H* p
                        row := assignLObj.getRowNo(GlobalDistObj);
+ F# S$ O' W  @( k. R% q                        if Row = -1 then -- since 70
+ n  K4 E% g7 Y5 E7 J8 ]+ u                                if lan=1 then. {3 S" W. ^( k2 T& b1 f2 G  i0 Z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 d- ]0 H' G  W- p) ?5 h4 t                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: ~: [# Z+ [6 M4 c- U. h( z                                else* Y5 ?4 i2 z+ Y0 O9 G! l# R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 x1 t2 l1 o" c  ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                ) B4 h: Q% v+ u' R
                                end;
4 @9 o8 t" G: [- F- w6 C+ T                        else& s- Q* d: d& M+ g% Q
                                @.Destination := assignLObj[1,row];
  @8 f: R# \+ `% ^4 d+ y4 q                        end;                       
+ I( G1 V9 Y" `( `                        newDirection(@);! |8 E$ }- S) h; ?# d& X
                        @.HasOrder := true;
8 W2 F$ a- n, K; O4 z) E9 Q0 j                end;5 Y* \$ R. |6 B9 B/ S- ?/ z
        end;
" G/ l4 }1 ^( e. v- Q$ ?9 Pend;        -- of the method9 M3 \: H1 U3 p$ [5 D) `+ D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 F. `) f0 n2 k4 Y9 ~$ R4 m2 v2 F
! D. o8 X4 R. R
这是AGV_putin中arrive的method。
  L+ p" V" G5 ~: u3 ^2 c* m8 p) G% r9 k: H8 e9 ?- a2 ?
当到达物料速度越高时,这个报警更多,
+ S" \) V+ E6 Y+ N* G3 {# k3 l可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' n" @6 ~5 x, ?0 p) o6 n# ], [7 r程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- o! U& K; \# G2 H, C
( b+ F' W2 U& R# J5 g  V另外一个小建议,就是move,所有的move都可以这样$ m- ^- m! @' n4 y4 W' E
if not move() then debug end8 l3 V, w+ D+ ^# X* a6 t' a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- p" R2 {7 V8 H" {8 A4 P+ Yplant simulation中的free libraries有AGV模板,% H4 u- X; q$ Z
里面也有案例。
" U. A8 F7 {* c, B* z/ U4 Q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 b* ?/ n) |2 M8 c0 \  h
: q8 L: s/ r5 ]
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , K( d( A$ [; L9 d0 V
  ^% F5 w4 V+ e7 d% Q' ^
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; u9 B4 E. P& N这是AGV_putin中arrive的method。
' L9 @% {5 o  d1 @3 z7 Z, `
) Z; L% `$ A8 r% |* E$ ~3 r9 v当到达物料速度越高时,这个报警更多,

( _2 T. p: }1 A  T: c7 k4 _5 g另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-15 03:20 , Processed in 0.017168 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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