设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7878|回复: 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'
1 J& X7 a# z9 b( @; H. m*// l3 k  S" i8 S' n4 w, C+ _
is2 M- i4 h) l$ c& `  P. {) I
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;1 M: W- c" e. K! M3 d
do
9 M" ?& F" b& L1 G. Z        Lan := rootfolder.Internal.Tools.AOLlanguage;) ^/ U) i7 Z) j% T6 L- A" P
        if current = @.Destination -- else return' V) |5 i! c% y; _& Q- E
        then5 N5 d& w4 a* p' g) }6 C
                @.Destination := void;9 Q5 u8 _- @3 [( w- D3 k6 {
                if @.occupied then0 b% Y$ E8 u7 W: f0 G2 G
                        part := @.cont;
! P, G7 k- y3 G# m                        @.transpOrder := void;
: p: {8 d. o9 R7 c' R$ E0 [. G; \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. j  g; E& ], [! q                                @,root.eventcontroller.simTime);
' N1 ]+ k! k# \: l                        @.HasOrder := false;
9 v  X' T* P7 M: U4 {                        @.DrivingHome := true;
: @# P: w7 O0 S' e5 x: T  e                        rgManager.tryToStartTransOrder;
$ t2 j3 _. j* K) q2 n6 \                        if @.Destination = void. H9 \5 `# g* _
                        then -- no transport order for vehicle @% A* T1 B" }# R' r
                                @.Destination :=
3 v& q7 m5 i; G( }! M7 O# p+ P                                rgManager.nearestFreeStation(@,track.~);
( A: }4 I6 Y9 L8 o9 i! V/ ]" z                                newDirection(@);   
2 c; H# y( d" ~2 s( L% L, s                                if @.Destination /= void then, b, O5 V% i& L: ?+ t5 @7 R
                                        @.Destination.NumReservation :=3 D' t. g; H. F3 X; p1 m
                                        @.Destination.NumReservation + 1;. x% V% T8 z7 H1 w
                                end;
& L, @- H+ X8 X* U$ ]: s                                @.CurrIcon := "drivingHome";) C9 K$ F; l( F% W0 c0 T* B
                                @.DrivingHome := true;. H7 j3 o% |0 z# }8 y+ p' M
                        end;
# b0 [/ c# J( V7 t% E4 h% B. n                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ {" w/ ^, V' s5 U' C6 p0 O
                        part := @.transpOrder;
, V' Q6 g8 [( R' x                        part.move(@);-- load part* G3 _# ~( v1 P9 q
                        @.CurrIcon := "load";. q$ L" P# P6 V3 v. N3 q5 D, R
                        GlobalDistObj := part.globDestination;
. K; k' w/ i" A8 X- L                        assignLObj := rgmanager.rgAssignL;, h: _3 [5 k/ w9 D' @
                        row := assignLObj.getRowNo(GlobalDistObj);' p0 B9 |+ c3 F7 u7 {- `7 p+ U$ @# _
                        if Row = -1 then -- since 70) e* I) T( _# r3 G8 m4 ?
                                if lan=1 then
" H8 o: `3 v2 z6 x, J. P6 _                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- y9 b. U/ D9 g                                                to_str("in der Andockstation: \"",?.~.name,"\""));& f9 z8 K' V% J# n1 I* U
                                else
( N& f# V4 b- @# B) T% g* x                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 L" ~! h# h: A/ }                                                to_str("in docking station: \"",?.~.name,"\""));                                3 V; B8 ~) w5 s5 K
                                end;
0 [6 u# M, {2 m) V- i# m                        else
; q& |# G, \" S! j9 t  W                                @.Destination := assignLObj[1,row];7 m5 R0 y- T* e" A* v  m
                        end;                        3 f* q# A) N6 G' p4 Q$ b. @7 {
                        newDirection(@);( ~  B" Z& m: j- o: D
                        @.HasOrder := true;
5 _7 c# c5 E, m0 b" J                end;
+ t! v' H- q! f! N  w        end;
3 G8 \3 A0 D! y, M( A1 m; l+ Lend;        -- of the method0 `5 T  v; j2 _2 ?+ c  l0 W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 j4 @( E4 Q- s
& z6 P7 v' A) s. K; h& h5 X这是AGV_putin中arrive的method。. R8 \. q4 G6 O6 y

) i# k! j# {  z) @# q7 ?: q当到达物料速度越高时,这个报警更多,
6 E: R( q' X4 a可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) f) {  G# {( x- f* ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 m( a2 J# s! U& j2 ~% {- o# M2 b  `
另外一个小建议,就是move,所有的move都可以这样# G6 l9 p* [. L2 e/ a8 k) B
if not move() then debug end; K8 j5 a% Q6 A% y. V1 M6 P9 v" O
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 V+ n/ c( I0 {
plant simulation中的free libraries有AGV模板,, F* t  E' y) e' Q8 E6 Q. Z
里面也有案例。, I$ C7 U# A4 {: y: _7 c' m
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 S! `& @9 @1 }& X) v1 y( ?1 E: O
/ p9 ]9 h2 g% D5 G  ?$ b我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) ~3 _: H- w  A0 @" P* Y% g
" ^: D( w' f7 k那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 a& @* Z" L% H
这是AGV_putin中arrive的method。4 m, s$ ^6 y) A. H) Y" Y

: Q! V+ |5 |' b! B, D6 O/ O! \当到达物料速度越高时,这个报警更多,
2 Q8 `/ p/ A3 l9 n" P, O
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-3 02:17 , Processed in 0.018600 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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