设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7416|回复: 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 k* h! d4 r9 e- M. r
*/
. T, ^* U1 a8 ~# p/ Tis' x" @  f- n# a$ Z5 a/ l" g. X. O
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! l0 I7 g& a. i) b7 Q
do( s- L& x4 ^5 Z' `, h
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! m0 t. b) w+ w        if current = @.Destination -- else return/ m; z- |( O# ?1 S2 V' C- ~; E
        then' D0 k$ A5 X( G2 i& [5 Z! N; Y
                @.Destination := void;6 ~- Z5 n  ?1 J% |; i
                if @.occupied then
  P3 @6 {. Q9 z: J4 C                        part := @.cont;
  a  R- `$ T/ i( Z4 g/ H                        @.transpOrder := void;
$ P' J8 b, C4 d% _; @- P, W                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# G! I6 Y" v& n- X5 `4 K
                                @,root.eventcontroller.simTime);
5 S; {* |9 z' f2 a% Z2 \& M" J                        @.HasOrder := false;
3 y7 T5 i8 w1 U. m( U4 B                        @.DrivingHome := true;
6 @' [- Z6 N9 j8 Y7 y9 L                        rgManager.tryToStartTransOrder;
- N" J7 l. }$ T' N" Q: U- h+ G                        if @.Destination = void
  `" U$ z2 j- O. k$ X                        then -- no transport order for vehicle @
, j8 i& k! }/ p! ?$ Z$ i                                @.Destination :=1 J# R0 W9 `/ B( s# C9 v( m' w
                                rgManager.nearestFreeStation(@,track.~);& d, M2 B/ |- Z3 v- ^, E4 G/ ~' {
                                newDirection(@);   4 l5 z' w" n$ L5 |+ {8 C; L1 f
                                if @.Destination /= void then
: U& ]6 W4 q$ m& P# Q' ~                                        @.Destination.NumReservation :=
+ n" k! J% J. k  r  G2 X+ N                                        @.Destination.NumReservation + 1;
& H* B, t( {" A0 G' p                                end;
0 l2 m; R5 @/ {$ _6 x- G8 B                                @.CurrIcon := "drivingHome";
8 J$ P3 }' u* }4 K6 M2 Y0 D                                @.DrivingHome := true;
( P: e) |9 z2 B                        end;$ J6 J+ d# X" y' I& I$ G( `' J
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' f, P8 ~/ ?+ L7 q                        part := @.transpOrder;
* W6 y- W8 I  p1 E% N* v                        part.move(@);-- load part
: x& J- t9 V7 J/ C2 r5 B1 A8 X* {                        @.CurrIcon := "load";4 \8 l% _, L0 v# S3 d+ y
                        GlobalDistObj := part.globDestination;
7 x2 B5 T0 I# L2 s                        assignLObj := rgmanager.rgAssignL;- q0 m, y5 v5 t' H; A
                        row := assignLObj.getRowNo(GlobalDistObj);0 n+ W2 Q9 z5 \% g; L/ t  G5 [
                        if Row = -1 then -- since 70
  a* K! K$ f' u' {& `- g6 b0 f8 V                                if lan=1 then2 P) ?7 G# V: }9 O0 e7 j2 n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  N/ a9 n% j9 L+ z. H- @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));& }( b0 y7 V' f" v# p: g7 G
                                else
0 c( H2 F! y9 S# m, A6 P                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 c2 Z% m/ S7 P9 r4 o. `
                                                to_str("in docking station: \"",?.~.name,"\""));                                2 g( X) E6 H* |% H% l+ r7 }" W
                                end;2 n2 X9 C& k. o* b0 x( o# I
                        else7 u  b5 y) Y  J& C/ f
                                @.Destination := assignLObj[1,row];) `0 S$ }. P' ?) p+ U
                        end;                        3 U# p: ^# M3 _- y+ J
                        newDirection(@);
# j: u& `+ J$ [/ _( T5 ?8 |                        @.HasOrder := true;
9 @7 _. o" {7 _! o                end;
/ X/ ?: ]/ d- s8 s! S* \6 f0 ?        end;
- e* j0 n3 T" N" D1 M8 tend;        -- of the method' O& h- |/ q! b2 u# {- M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 S" X' D: E# a  d% |! C# N, V6 ]" M+ {9 n2 _7 U- X: R* F5 r, ^
这是AGV_putin中arrive的method。6 h& g1 P9 B5 x) x
+ ~; p6 F4 W3 Z
当到达物料速度越高时,这个报警更多,2 H$ m2 Q& b$ |# {1 o$ y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; l' ^. h" _" v" h$ c1 O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 X7 e5 M. Q$ u0 B5 J% d5 _2 m

% k2 i) w$ s& G" h+ I9 G另外一个小建议,就是move,所有的move都可以这样
! h( {+ S. b/ U% j& jif not move() then debug end
; L7 K4 x$ h/ e这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% @/ W. h% A& z# H9 Nplant simulation中的free libraries有AGV模板,
/ W2 i$ ]: J/ ^" W8 c里面也有案例。
# P* I2 s6 ]  D, h8 J, B5 {1 e/ f我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 S3 |- X7 E2 D; ^' z6 G8 }/ e
! v4 E, J* R; c% o
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 I- D8 m! M: Z3 q4 J5 A
+ g# z7 d0 ]! o' _$ x$ P那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 ~  O6 U3 i, M" L9 @
这是AGV_putin中arrive的method。
2 G: ~* n' u+ j2 H3 [0 T
- ]" v1 j7 c( g- `  s" D当到达物料速度越高时,这个报警更多,
( Q; C( u9 M3 _2 U1 a; }
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-10 07:27 , Processed in 0.016540 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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