设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5815|回复: 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'
7 x. R4 k) }  f*/. _% x, U9 G$ s0 t
is
" P' b* f3 G+ I+ V: O; |        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 @- _6 q9 \# U$ j+ r$ Kdo
: _6 y, a8 `0 s- E' F        Lan := rootfolder.Internal.Tools.AOLlanguage;
  B2 n8 f' i  B6 ]5 q" q2 V) k6 N        if current = @.Destination -- else return
  z1 D" P1 t: V, A7 e3 f- f        then: k. A% ^; c9 Q3 ~
                @.Destination := void;8 p# ~% [( N! q! l" W! b
                if @.occupied then
9 A$ I' w& @8 b( E                        part := @.cont;
5 c& u5 u" t* @2 x' U1 f0 V  P                        @.transpOrder := void;
- ^$ t  _: C/ ^0 x; s& f) \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 R3 e' F9 [: j9 |) e: B. }                                @,root.eventcontroller.simTime);; G9 m. i- P. [% z
                        @.HasOrder := false;
- a5 p% ^( z4 `/ w* V, t( R& b                        @.DrivingHome := true;
7 p, s& H4 m1 i( _9 r                        rgManager.tryToStartTransOrder;. u! k# l$ r. e9 B: I! c- x6 O
                        if @.Destination = void
% a8 K1 B: D1 o, K2 y                        then -- no transport order for vehicle @1 S  H6 \" {) F& M; d( m, e
                                @.Destination :=
% Q& ^7 l9 `% }' X0 W9 E  m                                rgManager.nearestFreeStation(@,track.~);4 P/ x, ?$ u6 R/ U4 }
                                newDirection(@);   
! Z% f# l2 J. D                                if @.Destination /= void then5 L, d5 P# t5 v
                                        @.Destination.NumReservation :=
. e1 n  N: I7 b  G, u/ |* v% C8 U8 i                                        @.Destination.NumReservation + 1;/ {6 e) W4 B: u$ |6 x7 n- w2 c" o
                                end;/ V  r, f9 i- `9 C5 ]
                                @.CurrIcon := "drivingHome";
7 j" L, a/ F4 u2 u' i! j1 x                                @.DrivingHome := true;
5 E! V, O1 G# }0 d" N% X+ e0 J$ U                        end;
# S6 M4 g" k& x/ L7 ^) m% k: D$ r+ s                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ j$ w2 X9 d, s
                        part := @.transpOrder;
! V5 D/ e$ Y8 ?, M- }                        part.move(@);-- load part
7 u$ v0 z" H# Z) [) N* B7 ^                        @.CurrIcon := "load";& [: \" V9 `- F' K. ^" g# \
                        GlobalDistObj := part.globDestination;
1 ^9 P" w* u. p6 b" U4 p! {1 b                        assignLObj := rgmanager.rgAssignL;
. G! I# Y3 N, o( u5 z                        row := assignLObj.getRowNo(GlobalDistObj);
% Z& _1 q3 i  v2 I                        if Row = -1 then -- since 709 F3 f! K1 G; r
                                if lan=1 then7 o2 k# ]" A8 [' r1 d7 t+ n/ P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ V3 m) A: O. c6 `
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' c% v4 `* f0 f                                else
& I) m' Q! W. U* ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ g0 P- Y# ]5 f+ ?  S2 q                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 O& e! J8 q. p  j4 F                                end;
& P9 v- E3 t% M4 O6 P                        else0 N6 a8 `3 l( T; ?5 G% a
                                @.Destination := assignLObj[1,row];
/ {, t$ W9 C. ^( z                        end;                       
, J, v$ J0 s' m1 c* g& e! s& \                        newDirection(@);! \+ g" J& ]# T2 w1 J& f
                        @.HasOrder := true;2 X! _1 y% `; c9 a
                end;
2 O. b( t; C& T6 u; c# h* M$ N        end;
, t+ f! r! h2 ~" o" vend;        -- of the method: |" w0 n% P6 n! r0 E' U: W8 |6 T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ P5 i5 t6 H( |9 G: N" O$ l8 j
6 X$ X  [9 B3 y# D" Z4 w% @  F3 _2 M
这是AGV_putin中arrive的method。
# l% T( r6 K+ J; c. q5 h' f
! s/ s# O% U% P7 S$ v当到达物料速度越高时,这个报警更多,
2 U, B: e7 U: T% a$ e可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; L4 @# P& v# Q7 y9 Q& a# @% p6 ?3 w& ]& e程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; m3 U4 ?! ~. V  _2 c9 v! B

) u: N1 a1 {: j- u另外一个小建议,就是move,所有的move都可以这样
# X8 S9 l, R+ |. hif not move() then debug end  }# t3 ]% Q- G9 M; l
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。* M3 I4 n. n. @
plant simulation中的free libraries有AGV模板,$ U0 `5 b1 n6 P4 n- L$ V2 e% k
里面也有案例。" d" A) b* b/ Z+ O/ Q* q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ J4 t8 O! E  \' B
2 C. ^- }  u6 e7 N8 ^; q我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- r7 D( f/ s. a+ d
" e3 c  E# p# J7 V) [4 [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& v& S4 Q! H( \这是AGV_putin中arrive的method。
2 M2 x/ o( L8 a; Y0 C) V
1 r, C# K2 @3 R! T# k0 [2 D当到达物料速度越高时,这个报警更多,

8 b, ?/ p+ c5 `5 p# i另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-23 06:43 , Processed in 0.021479 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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