设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6853|回复: 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'
4 d" ?0 Z* W; l# p8 n5 p*/, o/ K, s- g* n( {' d
is
! L) }3 f. `% m6 ?        part, GlobalDistObj, assignLObj:object;row,Lan:integer;& @$ k4 U+ w3 }9 B6 b
do+ b. {4 n- J! P* [$ Y
        Lan := rootfolder.Internal.Tools.AOLlanguage;
) P' D( D6 F2 X6 l# s9 ?; A3 }& I        if current = @.Destination -- else return
  F% U) f- X5 d2 P- ]        then3 y! s3 T4 F; X# D/ B% z
                @.Destination := void;/ {  ?* w; U: Y" Q) E
                if @.occupied then
0 X) y$ A8 `9 e                        part := @.cont;5 B$ k$ K9 q) p9 x# a# r
                        @.transpOrder := void;
9 r# u$ L  u* L% _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 n, ~0 Z, |7 i& A1 i& N
                                @,root.eventcontroller.simTime);- k4 Z" r% W- T% I/ b
                        @.HasOrder := false;; O3 S" n5 b) B" x( M0 `$ [
                        @.DrivingHome := true;. V7 {( @7 a( z$ H
                        rgManager.tryToStartTransOrder;  i: A# n( b* q( c: c
                        if @.Destination = void  P: g: r" F1 Q/ }" P* m
                        then -- no transport order for vehicle @( ^7 R* H3 j- k" F3 }$ U  ~, m3 M0 x
                                @.Destination :=& n) W/ w! ~" D9 `2 I, x6 g( |
                                rgManager.nearestFreeStation(@,track.~);" A! v9 y6 ]! C. n) z
                                newDirection(@);   ) ^" i7 U8 w" v+ D& h) |8 v
                                if @.Destination /= void then5 n1 r4 H, Q8 G5 o7 K2 |$ W2 P
                                        @.Destination.NumReservation :=
* T8 X+ J3 O  z, O1 W5 a  `                                        @.Destination.NumReservation + 1;
; n4 s. `$ y. P% j6 z: f5 g* R3 Z                                end;  N6 C9 m) c, k* v  G# l, C: A# B
                                @.CurrIcon := "drivingHome";: H1 ]& Y. Q- q0 i# D$ S
                                @.DrivingHome := true;
" N% m5 {% Z2 W9 b0 D                        end;2 M7 s+ c) e' ?( [& C/ U3 |6 M
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( K' d# {$ i) H% }" v( }
                        part := @.transpOrder;. f' Z3 @- t, [6 f  \& N$ F! m
                        part.move(@);-- load part
- J, J2 q4 A1 _. _( s& f# X                        @.CurrIcon := "load";: e. m) z; c& `. M" p" h% J
                        GlobalDistObj := part.globDestination;
$ p& i) E. t" o0 L% s                        assignLObj := rgmanager.rgAssignL;% t/ z0 U3 A8 d$ F/ U* B
                        row := assignLObj.getRowNo(GlobalDistObj);. R8 M8 x  x/ D/ T+ c0 v) k
                        if Row = -1 then -- since 70
" Z/ S% }( U+ u5 p- X                                if lan=1 then
6 w/ a9 @  O# @2 f# f                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; L1 c9 X9 T5 G: G0 A4 f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' A5 A9 {) d; C( P- P( M, D                                else& u; g) c% S, [3 l% I: ?, s
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, l( b' N, u5 A9 d
                                                to_str("in docking station: \"",?.~.name,"\""));                               
* K1 B( L! j( s, m+ X, Q                                end;9 b- v! D' z: B: `" T& d1 z
                        else
7 ~3 ]* y9 r/ R) f' _# V. H% `                                @.Destination := assignLObj[1,row];
0 f# {- l' T* Q7 H" }                        end;                        % y0 N  s& J9 r! T2 E+ P8 x0 j9 |
                        newDirection(@);
& _* `. |. I' K9 W8 n; S                        @.HasOrder := true;
, f% H, f: \' Q: A9 z- m- j                end;- \0 t: W2 g& t7 W% I
        end;2 L8 Q2 A$ y# o8 f1 Y
end;        -- of the method
9 z6 t8 S$ ]; ~2 \+ q8 E9 v, }, L6 q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  i; D2 _& l9 Z
6 w2 V; ?$ R+ J2 U这是AGV_putin中arrive的method。
+ m) l7 T/ `  T6 [( s6 c& a7 l5 e7 T2 t7 [# @
当到达物料速度越高时,这个报警更多,$ Q& Q% f) ~6 J! y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 ^3 j3 Q/ X9 b4 C. [9 r, w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 ~' ~7 S6 a5 u7 h9 F8 l# V0 M7 ^! m+ d( D, h/ t) V  y
另外一个小建议,就是move,所有的move都可以这样! ~0 ~9 H, D! u" q, ?- ^
if not move() then debug end
& f# D6 S, L: E# j* H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! b+ @; u, J+ v9 ~; Uplant simulation中的free libraries有AGV模板,  E1 P" t. b9 Z0 p
里面也有案例。: q' N! W/ o' I4 ~( ^5 h
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 A5 g7 s* F; d6 q

8 j8 o; R/ g& Q7 w% t* D我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ ]9 R( V' Q* A$ ]1 b" _2 [
  U1 x, J; Q0 ]9 `+ i
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' k" Z. U) j# x5 p5 l5 E
这是AGV_putin中arrive的method。
- [, E0 P( X1 c7 D* h! q) k& Y! {  `, L# Z) P% K' E
当到达物料速度越高时,这个报警更多,
4 w# Z+ o3 x* ^- `& ]4 G# T3 Q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-2 18:23 , Processed in 0.019170 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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