设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9823|回复: 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'
' G, |: a4 v  ~6 c8 o0 \5 c*/
8 V4 n6 H) \6 Z/ V+ |$ R. v) lis
4 N1 ?' `* T- R3 v+ K( f: f2 a        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" Q6 C& v1 n; _* Q* |% T
do
7 ]3 U& v/ G9 K, N9 a( x9 G        Lan := rootfolder.Internal.Tools.AOLlanguage;% u: a* _# [. u: V( I$ J  `
        if current = @.Destination -- else return
' n' {8 w* R& Z) ^: `5 M% T2 j        then
4 B, n0 H/ q7 j) U# x" r! h3 U& ~7 P                @.Destination := void;: h( v+ b- G! Z( ~9 q3 `' b. ~
                if @.occupied then) i  T, z, c# `2 G8 s
                        part := @.cont;
/ W( a1 X" j1 @8 e/ W; x* m                        @.transpOrder := void;
& E3 ?/ s/ X- M) [& N                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* e* T) l3 O8 E3 D1 U' s5 _+ |                                @,root.eventcontroller.simTime);
" \5 p. {7 P# E/ o( Z9 q                        @.HasOrder := false;
8 Z* `7 n) W) w2 ]* a                        @.DrivingHome := true;( T  _, [3 z( _
                        rgManager.tryToStartTransOrder;
; ]+ I& ]# N: ?; o: M& V                        if @.Destination = void& \/ K0 V2 }5 i1 m% _
                        then -- no transport order for vehicle @3 a- T" i7 N1 K6 Y! }
                                @.Destination :=
& Q, R, Q! Y$ H- [+ j                                rgManager.nearestFreeStation(@,track.~);+ C* p, l/ B" N* L' z0 W' I, {
                                newDirection(@);   % w5 v6 ]6 M3 V4 c" K% D
                                if @.Destination /= void then& j2 D: o6 ]2 ?; G3 p) L* U; P: W; y
                                        @.Destination.NumReservation :=
; X. I- l" m! @                                        @.Destination.NumReservation + 1;
) [: _" O) p7 `; R$ u5 ?( L2 x                                end;
& c/ Y; V" {9 x0 N8 \8 Z8 K                                @.CurrIcon := "drivingHome";. I$ [: j5 x3 R" X8 n) p& j0 F! L" r
                                @.DrivingHome := true;- ~9 `" s4 z  V& d  g( E
                        end;6 q6 Q2 j0 U6 L3 C7 a
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. a# A5 G% P* w' O9 ^. e# ]                        part := @.transpOrder;
# [; k5 @4 _4 t* ?4 `                        part.move(@);-- load part
( j0 I0 c! I$ ?                        @.CurrIcon := "load";0 c; S* v" c! E6 w& E
                        GlobalDistObj := part.globDestination;; E8 Z8 v% x, [0 M2 R5 ]9 n! v
                        assignLObj := rgmanager.rgAssignL;
: W2 ?' p7 A) ]( b6 Q. `                        row := assignLObj.getRowNo(GlobalDistObj);. T- [1 M- u! ?2 r  @& h2 E  O, k
                        if Row = -1 then -- since 70
7 [& x9 M  M3 w" Q/ N# ?! t  M                                if lan=1 then9 P( d: }$ _2 m$ q
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 e. r2 j# C3 N& P! @6 M0 U- f                                                to_str("in der Andockstation: \"",?.~.name,"\""));: {/ J3 Q+ v! M4 m3 ]- q. n1 h) ]
                                else
# i- v; P8 t; L                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 i* N4 z% u$ u0 Q4 m
                                                to_str("in docking station: \"",?.~.name,"\""));                                % Y0 V, m1 v9 r2 A
                                end;1 q2 d# w! e9 q6 o4 x" ?) ~5 ^
                        else+ R0 U9 i1 d7 L6 f$ _
                                @.Destination := assignLObj[1,row];
$ |& @4 T/ n  a( R; B! Q' {                        end;                        ( R5 j7 c2 n, W; s+ T3 d! a
                        newDirection(@);
1 |" {* T) G9 P) @                        @.HasOrder := true;4 a5 u- x9 {1 m. {% k! I* j
                end;6 x0 G+ Q+ V* I% ~9 i" D/ t2 \4 I
        end;
4 v# u+ i7 o+ N; d6 Vend;        -- of the method
. [+ }  w+ M! t* h8 z8 N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 l1 E/ a  T4 s+ M) p/ v
9 c: f) W, V; }% b这是AGV_putin中arrive的method。8 \5 D- i' V& b8 v( w: v& n& Y

" N; W3 Q. }4 s* D/ N% y/ W! j当到达物料速度越高时,这个报警更多,# f, D9 \3 m2 m3 x9 ^
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& B4 ?& y* f9 o, d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 u5 A7 i  X, R/ s+ G& h) R2 Y9 g

$ n# x( d7 m4 r% d, r/ E另外一个小建议,就是move,所有的move都可以这样) B! k+ _, e* q) A
if not move() then debug end
8 K0 B9 Z: u* X9 a2 V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# w( ]: y" k$ K. W& o% }2 n3 k% Iplant simulation中的free libraries有AGV模板,
2 O" q  ?) n* ?1 O  g) E里面也有案例。
( p$ q% k# g$ ~/ E我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& m: X; \! }" r: h) |% R9 K

4 a# j2 {  s- O* J( w9 {* i3 E我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 Y8 _3 w! {( j- f+ V5 M: X' }) f- }+ n' m9 c: H
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % B6 q, J) A1 _
这是AGV_putin中arrive的method。1 g* q# _. o% f7 A* }# L

8 U" N5 j& [! \3 F3 e( J% P0 B3 _! ~当到达物料速度越高时,这个报警更多,

  ^6 v  \- i. e& e# j另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-27 11:39 , Processed in 0.020464 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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