设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5629|回复: 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': J0 v. Z1 j" ~& r
*/
0 Y& B2 |1 B8 g+ Cis
6 p& Y) c) j' Q' [8 i9 I: S  a        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) Z$ F( L2 l* z) tdo) f& ^, \6 f" x& H# O: M
        Lan := rootfolder.Internal.Tools.AOLlanguage;/ z0 b! r5 R, x# S& |: v- D
        if current = @.Destination -- else return
5 X( d! M' h6 S/ n, O4 t9 a        then
! }( X( G& _- s4 Y3 a5 Z' I                @.Destination := void;% `4 M$ D5 d, p9 ]$ v
                if @.occupied then
' T' C  P. v) a) b1 G  Y                        part := @.cont;
! L; ^$ h' w! Z, Z* l; s                        @.transpOrder := void;
/ d4 J$ e) J' J9 C4 _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  ?, c9 p* {; o                                @,root.eventcontroller.simTime);9 l7 R5 t: _3 z* n  w; ^% L
                        @.HasOrder := false;
/ y  t* O; J! \/ d* c9 W                        @.DrivingHome := true;
/ I$ z$ s, X  _# f- G* Q# E8 n                        rgManager.tryToStartTransOrder;, n! o. v( d0 d: h1 ?
                        if @.Destination = void
' @* \, q. O' Q0 `! m+ A% c6 W6 z                        then -- no transport order for vehicle @) K) M: m7 w% W3 T
                                @.Destination :=
5 |7 m; {3 k* h& j$ n                                rgManager.nearestFreeStation(@,track.~);# {9 y4 F: c8 Q
                                newDirection(@);   
8 P5 [( z; [) ]1 s' ]* ~& W! V- ^                                if @.Destination /= void then4 u4 @* L% f8 @4 }! T/ F
                                        @.Destination.NumReservation :=/ \+ [' c3 ]3 g  Z4 ?! X3 b# @$ U" Z
                                        @.Destination.NumReservation + 1;! F) @5 C3 c5 e, Q
                                end;
0 {" i- R) K) t                                @.CurrIcon := "drivingHome";
1 o2 A) p' u" @* g" h                                @.DrivingHome := true;+ K% e2 R% M1 {7 d( ?8 o9 P
                        end;) K* m- E. D0 a1 v. h; _
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( |" H. F1 Z0 ~: s
                        part := @.transpOrder;
  M# t8 }" [2 E                        part.move(@);-- load part
/ Y" M' @9 r/ b; ], x- g2 s7 Q                        @.CurrIcon := "load";
' V$ X, L& L2 e5 N                        GlobalDistObj := part.globDestination;
. L; \+ e! @0 g                        assignLObj := rgmanager.rgAssignL;
! {" C6 c4 f+ d+ B                        row := assignLObj.getRowNo(GlobalDistObj);" _; D1 G& d  N9 l+ y
                        if Row = -1 then -- since 704 T8 ]0 w" h- X# Q- M
                                if lan=1 then
7 t1 A: C$ \" n6 a) R$ n  m7 C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: {# e4 v% z: b. m                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 P) u) Y" R. G8 U. M# F  T( ~
                                else- p  i  F$ J% q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. k* [% M; K( [3 `& @% E                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 e9 F( V4 q3 j' r; @: _# x                                end;
& ]) x! L' u3 c+ Z- @% k                        else
6 Q! s2 f* g) y& @                                @.Destination := assignLObj[1,row];1 }1 X, |. e# n7 T
                        end;                       
& A5 X8 w' U( m% Y                        newDirection(@);6 S8 x- o  i/ |* L0 I0 H+ U9 C
                        @.HasOrder := true;
# d- O% G' T- G6 `, [* P3 G7 H1 \' K                end;
4 j! @* Z' G2 C1 w        end;9 u$ _+ r& M4 c$ S0 A
end;        -- of the method" E& Z; e1 j; X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " [2 z; L* ]4 c9 s+ _1 q: ~. p7 M) Z
5 T  S8 g& i- c1 J* M
这是AGV_putin中arrive的method。4 i0 q1 d/ W4 B5 e5 r$ i+ j% `* h: O

6 }, ^0 }# j& ^4 I" x当到达物料速度越高时,这个报警更多,
8 T: \% H0 X3 l4 ~可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 `/ o1 e+ ^; B) f6 K程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 d0 l: R1 d/ a* ^3 B4 s2 W
& m' I0 h. @' m- M, c+ t; y- `另外一个小建议,就是move,所有的move都可以这样
/ a5 ]4 C  s2 Y) T) E6 Y4 Vif not move() then debug end
8 M. y. G4 z' Q% V% z; V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 K5 g: n$ g) m3 J5 g& @plant simulation中的free libraries有AGV模板,: K0 i( @) `! U4 W# o
里面也有案例。
* M; c) x3 T6 U2 k* m2 k我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. q( Y& j+ u6 \6 Q( @- b4 L; G6 B8 {9 B( k
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 " L  K, x2 h, W  \0 F# ~6 k, a
  K' |8 r: b( N; p
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , U4 W- R4 r" F. K: w) r
这是AGV_putin中arrive的method。8 Y. p% ~+ w! R8 K( A  i
2 P3 M: R, n: {) o9 S  \  `
当到达物料速度越高时,这个报警更多,

7 E5 S& E0 z( J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-10 03:52 , Processed in 0.020291 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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