设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6890|回复: 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'5 u8 Y. O- F% {" Z3 ?
*/
3 ]: S- K6 ?; M! ris
) |; N- @8 r1 N: P. p2 Y- Q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 [, D: p" R# O; b
do
4 v, P3 ]$ i0 X" R4 O! m% t- R        Lan := rootfolder.Internal.Tools.AOLlanguage;
# T8 U  q" ^! B8 J- P2 g        if current = @.Destination -- else return
2 q; N" U) ^4 F; V        then. K0 U$ D' u" d
                @.Destination := void;: }( I. q, J0 O  J' @( O
                if @.occupied then
7 ]# T. z; ~, t* C                        part := @.cont;; i) w9 ]3 G- z- u7 _/ N
                        @.transpOrder := void;1 n5 \% n0 B. I2 ~( `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 J0 m& U% a7 c1 u0 v
                                @,root.eventcontroller.simTime);
7 h8 Y% S3 r% M                        @.HasOrder := false;. j/ Z; A( @* A9 u  q+ l9 c: ^0 k
                        @.DrivingHome := true;
' `6 h. P9 C6 q/ r$ N                        rgManager.tryToStartTransOrder;3 P* b, _# ]+ x2 A  }8 a
                        if @.Destination = void
4 p1 R7 m% c# i/ s; _" g                        then -- no transport order for vehicle @
8 t, h/ |" E( |* j, A. n                                @.Destination :=
, P! `) x& V, A$ u* H; c$ _( H                                rgManager.nearestFreeStation(@,track.~);3 S* A) `" Q7 g7 `0 T
                                newDirection(@);   
# x9 g( K: k& S) w& g' N2 v1 e3 x- N$ V1 F                                if @.Destination /= void then
' ]  I/ U! c) C- d                                        @.Destination.NumReservation :=
; N+ x) {! t2 `                                        @.Destination.NumReservation + 1;
9 T( O9 _6 ?2 N/ e9 d8 j# K                                end;
! k! U: ]! U: A. j& G+ S. T, J. @                                @.CurrIcon := "drivingHome";
* H7 {7 p+ D& Q3 |; w. }1 x3 T& e                                @.DrivingHome := true;
2 [% j* |# }. i                        end;
1 y1 W# [' k- s* {+ N0 K                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 D) _/ w! U7 R/ I3 [  o, @# z                        part := @.transpOrder;
# ^0 O9 b" t- |& j0 H                        part.move(@);-- load part
* N" \, `5 u* I. i2 t                        @.CurrIcon := "load";
5 u, p- t/ r7 X- g& M1 g                        GlobalDistObj := part.globDestination;0 z4 {7 `3 L: t
                        assignLObj := rgmanager.rgAssignL;
; P1 q8 J, L- u" h                        row := assignLObj.getRowNo(GlobalDistObj);3 g8 _$ }$ L/ ?. a6 e8 m
                        if Row = -1 then -- since 70. f$ k) e: }. e3 \
                                if lan=1 then. N: X' I# N$ K4 @8 u; `
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 D1 N; [% f2 i2 d2 h. |                                                to_str("in der Andockstation: \"",?.~.name,"\""));
: O7 Y9 j$ R# j9 U) u- J                                else
" b; `! d8 q% ]% f9 r2 O4 ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! ]3 G( ?5 a+ n3 W9 k% j4 _                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 [! i  }3 n9 W                                end;9 L  A9 o; h: n
                        else
+ Q9 Z3 b% g# H2 Q                                @.Destination := assignLObj[1,row];
- u) j& V( k8 F8 ~! _                        end;                        ' a! ^* e" ]% n& ~+ s
                        newDirection(@);* @0 }; C1 d. d$ s/ T# M8 Z
                        @.HasOrder := true;
6 I  `4 J& I! ^7 g  v4 `                end;( q% i0 y+ c; }( ^6 [
        end;( j! |1 G  k9 b" w7 i  W1 F8 b/ l) p
end;        -- of the method
8 S$ j+ F! G9 v6 b2 L( I6 S& O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' e! Y; A% c/ b. p& l! ~7 R% z
这是AGV_putin中arrive的method。
. m/ l1 t: z! b4 ~' \7 n  n4 e% X, }: |2 r. F0 K# I
当到达物料速度越高时,这个报警更多,
) C* u# i9 p# K( F/ G+ U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。2 ~1 G1 ^" B# w, u/ F
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- Z3 _3 S4 l8 n2 e5 K6 [2 G  x' o. t4 R/ F1 E
另外一个小建议,就是move,所有的move都可以这样. Z6 A  u9 J# K9 U" j" h9 l. c
if not move() then debug end5 R3 m# e3 g8 D1 W, c
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" M% E# t$ c( q9 W, L) ]
plant simulation中的free libraries有AGV模板,) o! l% n! J/ P& W( M' N
里面也有案例。5 T; m5 s! h6 \. E$ e! D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. C; M; p6 {8 r8 \, x0 p

, \. p! T# e" T9 j% f" a我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* k, [: g) |& ~' {4 @0 {6 ]( S: \* v
/ G4 c2 j: A% R* t0 G/ y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & e* @1 n& i8 T/ z9 i. S
这是AGV_putin中arrive的method。
" D* F9 W6 n. n' U' m4 f6 Z! A+ H2 k! A
当到达物料速度越高时,这个报警更多,

( |& t3 j; R% D. o+ y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-5 03:02 , Processed in 0.031646 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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