设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8093|回复: 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'
$ }8 L0 m; s5 H' X3 ?*/: ^" e$ J" f4 J; k6 n
is
0 U5 X  {) h% A( `- S. e5 S- B        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 w" a4 \3 y: p  a, }5 Hdo
) d. Z9 ?" u% \6 c1 j        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 V0 R6 C* V% ?# O        if current = @.Destination -- else return
" s6 w( V4 D& ?% Z        then6 |  V" V6 H# g* G# T2 z
                @.Destination := void;
+ S% ]/ R- |. F                if @.occupied then
7 n8 S* }( j  [* G9 r6 C. Q                        part := @.cont;
5 m9 O% U# _6 V7 u$ ^                        @.transpOrder := void;) s2 J8 K+ @2 i: F; O" M/ O9 A
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# `$ ~; }0 l' H. `/ U' n                                @,root.eventcontroller.simTime);; z. Y$ w, {) S2 Q, a: N: f
                        @.HasOrder := false;
5 }8 W3 n2 c; H2 F, {& |% I                        @.DrivingHome := true;
: e3 I; t2 J, z, m/ h2 h                        rgManager.tryToStartTransOrder;. k/ }9 n& H1 M7 ]0 q
                        if @.Destination = void! n, j- v# P* T
                        then -- no transport order for vehicle @9 f! j( N8 `2 o' ]1 \' H6 [: T
                                @.Destination :=( Y  n; m0 T1 [7 a6 }
                                rgManager.nearestFreeStation(@,track.~);( \" e. X' e% ~  ^8 B$ j0 C
                                newDirection(@);   1 v, J: X- _7 S& }
                                if @.Destination /= void then
. ^" @0 l) C' C4 O                                        @.Destination.NumReservation :=
! W; f0 |/ B2 V) C! L2 v5 }                                        @.Destination.NumReservation + 1;; Z5 l. J# x% d1 ?
                                end;  h. C7 l; {5 V, A7 W5 Y
                                @.CurrIcon := "drivingHome";
! B8 U. l, b* j$ q                                @.DrivingHome := true;
& Q' C0 {/ e! l                        end;
/ \# N3 Y; M2 H8 m5 d                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
% Z5 {, {1 x9 ], J                        part := @.transpOrder;
$ S* v5 r4 k/ |/ ]. J+ W                        part.move(@);-- load part' O1 e* c* |5 n
                        @.CurrIcon := "load";
1 |1 {; ~7 Q; r/ e; G                        GlobalDistObj := part.globDestination;
- ?' t8 `4 i% ~                        assignLObj := rgmanager.rgAssignL;
6 H" f; H6 L$ G                        row := assignLObj.getRowNo(GlobalDistObj);
1 N6 r9 z2 |/ N9 b9 J                        if Row = -1 then -- since 70- ~; |5 i# n8 \4 b' f
                                if lan=1 then5 c- h* E3 w6 X5 z) Y) W5 z" M
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% l0 G6 N, k. ?. r, D                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! d4 u0 Q' t* N0 u0 c* O                                else' y; F# q2 i7 O  ~) w- i" x9 k
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 V8 M) C8 a$ ~                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 z1 T$ F9 Y! a                                end;2 {% m( a% I% q8 W
                        else
$ v* f5 \4 x5 A! i% @- Q                                @.Destination := assignLObj[1,row];# S/ x- k9 @) m( d& f
                        end;                       
3 |, I8 l) N0 I/ O                        newDirection(@);  U! n  k! ?# b8 C! N- G
                        @.HasOrder := true;' P+ d$ J/ N4 }% P8 m5 b
                end;
& ~* q' t# b# E/ F) n  T        end;$ p# r/ a$ `/ A2 l! N" I/ A
end;        -- of the method
2 d. i4 x) O8 G8 a8 ?; p& M; G8 e( Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" U- A1 s3 L7 E
, |' S% ^' V; @2 ]这是AGV_putin中arrive的method。: n  z7 M0 P6 h/ \3 U
1 \, Q# c$ N0 @# W9 c& @+ y( K6 B
当到达物料速度越高时,这个报警更多,) F9 U3 g" u% `; `2 f% ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, D5 V" r7 C0 k- s. X; J
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ ]( C- T9 p  I4 z7 D  T

. h, m9 ?0 n, q; d另外一个小建议,就是move,所有的move都可以这样
! Q, ~! }/ L/ l4 F! mif not move() then debug end
6 l# @9 m& d/ [; o, l7 K. a这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
0 ^  X' {: o/ h! ^/ C; \1 O* Z; h: @plant simulation中的free libraries有AGV模板,% H+ P8 d* G) T/ }: b
里面也有案例。$ s# l, \4 Y' o9 S
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& G9 S+ Y6 c" a' x; Z% h* j; _  K
4 C0 u1 M" A0 d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ B- X  |. Z! |9 w8 n
3 Y4 r2 B$ j$ Q5 K4 g( b
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * a, l& }% r8 d0 ?$ x8 Z# e5 W
这是AGV_putin中arrive的method。0 ]! _5 Y0 w/ y8 F3 V
) F) M( |& Q  [. T/ b# T
当到达物料速度越高时,这个报警更多,
2 b% _/ l  e9 F9 u% _+ k
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-14 15:13 , Processed in 0.016896 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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