设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5511|回复: 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'9 A$ \- u9 v& ], \% M' d% k  V, `
*/8 Z* H$ W/ A6 u3 R/ g8 p
is
- A7 N, [0 c+ J) d/ P" g        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ a- Y- Q+ A7 S
do
: X1 N+ U: \: y1 R        Lan := rootfolder.Internal.Tools.AOLlanguage;8 ]) V# z# Y1 X* N& E
        if current = @.Destination -- else return
4 k" a1 O6 ~! V3 V  `        then
5 Y' v# h+ c+ n                @.Destination := void;
" {+ b6 v7 @8 ^/ M5 v( |                if @.occupied then8 ]) v/ H2 E; U( H. K8 I. v
                        part := @.cont;# ?+ i  O6 z! J) @
                        @.transpOrder := void;
* O" @$ q' r4 @# {8 V9 e6 z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," C& Y+ B' r; b# I' x; Z
                                @,root.eventcontroller.simTime);( j; e( b* {, i7 d
                        @.HasOrder := false;
' {* |3 L  z; e, |                        @.DrivingHome := true;4 ~, x. L/ L' n# z, i% t
                        rgManager.tryToStartTransOrder;0 w0 m2 T4 x& g5 A) p/ f: h
                        if @.Destination = void
; \! B: t  I% r( t* [( H; r% d6 ?" O                        then -- no transport order for vehicle @
8 u/ d' N; Z7 y- u/ N; g                                @.Destination :=4 t7 t3 W; D& C+ P6 G# e  ]7 Q
                                rgManager.nearestFreeStation(@,track.~);9 H8 b5 \2 R* c4 e2 m; C
                                newDirection(@);   5 h' H$ A* |& m! J
                                if @.Destination /= void then
, s) T5 }" n& f9 ?- D' z" G+ Q' ?                                        @.Destination.NumReservation :=
0 h% t( l# }" p+ ^' F2 Y/ ~! e                                        @.Destination.NumReservation + 1;" \, O- T) K: J* e( X5 p
                                end;$ f3 l4 E- I/ q$ q4 }6 Q% w; m
                                @.CurrIcon := "drivingHome";0 S% p' U- r. z- F( K, n- Z6 l
                                @.DrivingHome := true;7 Q( j& d  P0 }% W/ Z
                        end;
7 o2 [  t6 j, P7 u" A/ Z+ T  V                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
" N" |8 R1 k9 ]- d3 E5 b                        part := @.transpOrder;
2 C. V2 }7 @. H8 @) x                        part.move(@);-- load part: c, O* y& {& G9 Z
                        @.CurrIcon := "load";1 c! Y! P8 P0 [
                        GlobalDistObj := part.globDestination;
! c  D5 ~5 N+ K5 c; S# }                        assignLObj := rgmanager.rgAssignL;
! q* a4 j6 x; S8 ~4 Q                        row := assignLObj.getRowNo(GlobalDistObj);
) a# X; x+ X+ e( G5 \4 \% A" G/ J                        if Row = -1 then -- since 70
7 c) ?/ I! A" c0 D4 m                                if lan=1 then
/ M' s8 }# l, j. p                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ q* [4 P6 ?$ G! o( U# ^                                                to_str("in der Andockstation: \"",?.~.name,"\""));( L4 `# Z1 ]. g3 U
                                else
* P. _$ l1 y. [                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 n' v+ f- h* n. S1 r3 \) F
                                                to_str("in docking station: \"",?.~.name,"\""));                                ( W" W! p) H0 n
                                end;
2 A6 y& q% g( v$ A8 i                        else
5 U, b* X+ I. o( ^( e7 N                                @.Destination := assignLObj[1,row];; z2 j9 @( S  w3 W6 p2 t
                        end;                       
5 o$ g" ]% A, O! G                        newDirection(@);
+ c7 b8 [0 A3 d- u! r; T$ F% h                        @.HasOrder := true;
9 _, V; n- ^8 D5 F0 }                end;7 a1 Y& p. p& b
        end;
7 n3 B& S) ~, z  H9 N; tend;        -- of the method, F, k/ `6 [; Y* ?6 G* g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' i% z4 c% s/ b6 e# s2 M1 N
: \% {8 ?. V4 u
这是AGV_putin中arrive的method。
4 b" \! [4 ?" ?# s6 o+ i2 O6 c! O
当到达物料速度越高时,这个报警更多,3 Y! v' \  Z# N  g* S
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 n5 c4 g6 U! o" D9 X6 m) H& j0 A: C程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- ^+ e7 O7 n7 }" e! R& o0 J  m1 X& a2 Q" E1 E/ ?
另外一个小建议,就是move,所有的move都可以这样) Q  C5 R' i1 c& a' d5 F
if not move() then debug end# O5 N" X' v4 Z! O+ q' \
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& W7 G$ |" e. b% H) b. \% C
plant simulation中的free libraries有AGV模板,  C4 I9 m7 J8 q8 {$ e; i. U  f
里面也有案例。. Z0 k! q1 s7 I+ {
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ r% }) d0 N$ T' F$ F3 s& q( @& R+ n( z) k" m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; @: m5 R( o$ F: H7 M( u. \/ o
- S0 t; V7 R$ q8 R& k
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& J( f- C" D$ f' `! X这是AGV_putin中arrive的method。1 `0 r2 @6 d; K
5 z3 }7 M2 d1 Z2 E0 B% u
当到达物料速度越高时,这个报警更多,

5 J' Y) A2 h7 y$ m0 z. E% {2 Z7 M另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-30 10:04 , Processed in 0.029802 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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