设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6458|回复: 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'
9 U4 v6 A  X7 M1 E*/' ~( a: l% I* S& u2 `& \/ Q1 w
is, S$ o8 b2 ]9 w. F7 C  ]( k
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 w) s. W& I) b# b7 r, A( ?do; I+ ~+ _8 g# G3 s4 |
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 d. ^; ]+ b6 C" s7 j+ j        if current = @.Destination -- else return5 B7 ?) X+ T" r( J0 h8 @
        then
2 {& ?0 V: d2 k/ b9 Y! A* o% m6 L                @.Destination := void;
$ x2 n' d' [$ S" ]4 {: O  h  w$ i0 I                if @.occupied then
  R( n) d0 R7 `2 o: O2 a$ M( A                        part := @.cont;9 b: m* X" d" I# |
                        @.transpOrder := void;
& G3 M! K1 b. M$ P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 I( l* U' \7 s( I4 i                                @,root.eventcontroller.simTime);" }4 v$ C( t+ j$ _8 o& _, G; k" c
                        @.HasOrder := false;- ?  O9 F3 I+ g/ D
                        @.DrivingHome := true;
. q1 K& {9 c; {. G/ P                        rgManager.tryToStartTransOrder;
, O* n- I- @" Q! \2 X* L                        if @.Destination = void
, f" Q; F4 g/ E7 @8 k* \                        then -- no transport order for vehicle @
4 ~- q7 y5 k" q7 c                                @.Destination :=! ^) Y  m# h+ f/ z: M
                                rgManager.nearestFreeStation(@,track.~);
/ i4 D0 }% o$ E0 W& n( a: P                                newDirection(@);   
, ^/ U, x' [+ S1 a                                if @.Destination /= void then4 W! B# o5 ~7 N$ S) E
                                        @.Destination.NumReservation :=5 y& `- p8 \: D+ E
                                        @.Destination.NumReservation + 1;
4 }. Q8 z' [. F: N! B2 q3 _                                end;& J/ ~8 M4 c# ~1 G
                                @.CurrIcon := "drivingHome";
* V6 d7 b5 m/ W  G, l                                @.DrivingHome := true;
" }+ }! ]* w5 J. j# ~$ [# k9 Q: f# T                        end;# y8 n& z. Y& }
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: t$ s1 ^7 a1 V; h7 s9 l! |
                        part := @.transpOrder;
8 ~. U+ S; t1 w$ f$ Z5 ?                        part.move(@);-- load part" l6 r, l# s5 f. F- e3 W* @+ F4 D+ ^
                        @.CurrIcon := "load";
( U3 _4 ?+ Z! B: K) S                        GlobalDistObj := part.globDestination;
) s9 x- x# [8 m( `                        assignLObj := rgmanager.rgAssignL;
- Z- {1 P' h" {" Q& f                        row := assignLObj.getRowNo(GlobalDistObj);
  ^' L- ^0 j) I. U) e3 v) X- A                        if Row = -1 then -- since 70' ^8 {; h' S% T
                                if lan=1 then
: a# w- ~9 y1 T$ ]& P/ u                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 e0 q% Q4 b/ X( S% e& Q4 n8 v6 z                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 Y; v. M; b& t" y5 `/ b7 \7 m0 C
                                else! p& Z* x% e( c% W5 w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 L: M4 c! o$ C. n9 I
                                                to_str("in docking station: \"",?.~.name,"\""));                               
! }; o) s/ v( b                                end;
0 H; v" f2 W) v% Z1 O0 g1 ]* L                        else# i% a7 C8 }, Z
                                @.Destination := assignLObj[1,row];
2 Z0 z% A. }# k. y% C" v7 @                        end;                        ; F+ E5 H4 e7 t' k
                        newDirection(@);
" J' M6 L8 D* i3 d0 |                        @.HasOrder := true;! N9 b! g; m& V) n0 O) X
                end;
) `" Y, L% z( |4 J6 |        end;
9 A- P$ F: L% R4 Pend;        -- of the method8 z) x9 g" g# d) r7 O/ q! D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' x+ x1 _2 P& A7 Y

% B# _/ E0 q7 M这是AGV_putin中arrive的method。8 n2 @& k+ O1 b" e* w
. W7 X+ h# F* f# J- l+ X
当到达物料速度越高时,这个报警更多,
4 G0 y6 o7 u6 Z+ @3 b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: q2 m9 ]( ]* i+ Q1 o  O$ H! g& _程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ M; w% q" {# W8 a- h* Y
0 [  ?/ ]+ y/ L) w6 g7 v另外一个小建议,就是move,所有的move都可以这样  ?. {% q9 _3 y/ ^' K8 `
if not move() then debug end
+ Y' A7 [/ T" q7 ?这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ h* u3 P% Y. h9 Uplant simulation中的free libraries有AGV模板,
4 x6 U' X* b) T9 @3 ~, @( ]里面也有案例。
! b  l. g0 f( a; a' i# ?% G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' c: M5 h$ L" N  Z. A
; q1 l! q! [* g& G
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 4 B( d9 p0 L( ~# Q

4 f- I( f( @0 h" c7 n7 p那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( C! n# F- x$ g0 L这是AGV_putin中arrive的method。
# v- H; O9 `& l) f
; B$ J8 |, k& P& }' x当到达物料速度越高时,这个报警更多,

0 n# O# e8 g. }+ T; m9 E' R另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-7 20:49 , Processed in 0.017607 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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