设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6054|回复: 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 t3 ~4 L. B; D# ?7 b8 g*/
* s0 o8 n+ j# i( v9 ^: @is
/ G8 ?9 M3 ]( }6 O& I. \- M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" g: D6 S! F6 l
do
. ^) m+ }/ r0 A7 ?* x" G, F        Lan := rootfolder.Internal.Tools.AOLlanguage;3 P% Q* p6 {: U; T& ~5 C8 _
        if current = @.Destination -- else return
1 G# K( a* ~2 F  _: ^        then
% L3 D6 a8 L& h5 a  U  l                @.Destination := void;' `6 B1 S# M, ]! g5 j3 M
                if @.occupied then- b4 ^6 R, u  y
                        part := @.cont;
. Q* t  T( q& r; I! {+ o7 v                        @.transpOrder := void;* d+ C( x6 n! H! S. T; U1 d. N0 k
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 r. ]/ R& h9 u7 q2 d! B4 y
                                @,root.eventcontroller.simTime);* S$ y! l# W6 v
                        @.HasOrder := false;/ v6 F/ p, I& ~" _$ z% X
                        @.DrivingHome := true;
5 }% [' Y$ |( X9 ]. m                        rgManager.tryToStartTransOrder;- s8 [) f7 [9 @- I/ E% I
                        if @.Destination = void
5 }7 ^1 j" m1 Z                        then -- no transport order for vehicle @: j4 J  E$ ^6 D3 J
                                @.Destination :=
$ L/ \5 _5 @8 V7 `2 ?* q- y: Z# h                                rgManager.nearestFreeStation(@,track.~);$ }6 P  ^: k5 u
                                newDirection(@);   , p0 B: P1 @6 j) F8 Z
                                if @.Destination /= void then- I% n* a' I; o5 |1 c) L8 C
                                        @.Destination.NumReservation :=
' V6 l) R/ w7 K, o3 o2 ~                                        @.Destination.NumReservation + 1;7 |7 m- i3 P2 R
                                end;
- e7 t# ], U% R  }4 t1 O                                @.CurrIcon := "drivingHome";
3 X8 [. E$ ^/ p. l                                @.DrivingHome := true;2 ~0 L# @) ?7 w/ P& f* X! K
                        end;
; |) A1 J$ H3 s7 F5 \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' O1 O  t+ i# o, F7 V* B                        part := @.transpOrder;
% e2 p3 H. D: q3 N5 x                        part.move(@);-- load part0 ]! }3 d8 b  G7 w1 M: ]- m+ d
                        @.CurrIcon := "load";) X* D$ m% M/ F9 Y. O9 a4 c4 Y7 C
                        GlobalDistObj := part.globDestination;
! {7 _. R5 m$ z6 y7 u% w5 j                        assignLObj := rgmanager.rgAssignL;
+ ?! B" ?* u3 u# s8 T6 J                        row := assignLObj.getRowNo(GlobalDistObj);  K2 C1 k& u' ~8 _3 _: p
                        if Row = -1 then -- since 70( c  e4 T6 a. |! D7 @
                                if lan=1 then
. c" s1 h' `6 i( ?; l                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ D; u8 b3 ?& M1 O9 }% b6 Q6 A
                                                to_str("in der Andockstation: \"",?.~.name,"\""));: g& y$ H' G! g/ o3 p- v2 }
                                else
- t8 W9 p" o% a                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) p. h6 l+ y0 n# Q' R
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( N; ~$ Q- X2 C/ s" k) f                                end;3 P* ]9 P1 ~* b5 l7 B
                        else3 E, X/ `* U& ^5 r0 B+ `' A8 P
                                @.Destination := assignLObj[1,row];
' |% V; Q0 T7 T) Y' n6 q1 c, }                        end;                        + R  E: R) B7 c+ ^% p
                        newDirection(@);$ o; y9 f( U2 ]9 ]+ l
                        @.HasOrder := true;
9 {3 f+ L. D7 N% K                end;/ q6 f, C3 V) o* @8 {7 g% Q
        end;/ a- s8 z& w% m5 ?
end;        -- of the method  n0 ]9 w5 L. S- z" p2 t- ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ j. b/ Z, a* b" a6 A+ B* K% M3 Q
# l2 j3 q0 I7 u这是AGV_putin中arrive的method。5 d2 ]( j+ U! [2 {! F0 f( o8 \

# A1 w; s  _+ O' H' Q; C2 A当到达物料速度越高时,这个报警更多,. |' {# Z- B/ e3 ^! l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. ~' @0 ^( {/ i4 [7 Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 h/ x( M. Z4 K# _

0 M8 ?6 w/ D; Z0 F7 \- |6 e另外一个小建议,就是move,所有的move都可以这样
8 W- b" a) f: N' Yif not move() then debug end9 v$ [% A* w- |3 ~% a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 H1 I: F+ o7 f( p
plant simulation中的free libraries有AGV模板,% ^+ Z9 X9 ]7 v. H0 i; o
里面也有案例。3 U0 M# q! x+ e- h* H
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. O( l, f/ e1 e/ e* V& i
; }, C& Y- k' {( F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & i' Y' m( I$ {$ M- A( H* N
* X) Z. ?! X$ j1 \- ]8 r
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 b; \& y: o1 p& L. M& g6 `, A
这是AGV_putin中arrive的method。
/ a6 l7 H( n3 W* a. k3 g1 J$ @
% R, w' E# w4 r( N0 N: Y当到达物料速度越高时,这个报警更多,

) c# A& g6 [  ]  Z$ W/ _. I另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-14 21:49 , Processed in 0.024687 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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