设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6556|回复: 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'/ M, m8 `# ~: ]( B% M
*/
: I- s$ T0 B. k7 Dis
$ n" ^: y) C! E, u. G) P- f0 X3 I        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# V! w  _1 Q' i# W$ N3 Z! U2 }
do# ^3 ^1 `6 I9 {- E- L  R% i0 g0 M1 C
        Lan := rootfolder.Internal.Tools.AOLlanguage;2 i, }: X. l: |9 [- U
        if current = @.Destination -- else return) X" ?* ^$ D7 s7 p% d# H1 }
        then$ R, g, n0 [6 l/ N4 Q
                @.Destination := void;
3 O" S7 j& s1 B) C                if @.occupied then
$ S( t) f2 A) n! u. o                        part := @.cont;. V+ b. X( n) Z' D) F" n: X7 E" q
                        @.transpOrder := void;
0 T& I) t8 L6 L+ n! K                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 V- O# Y9 h0 h. Z( y                                @,root.eventcontroller.simTime);
1 x, w7 z( m- r. I. n1 C2 T                        @.HasOrder := false;
& ~6 T; E4 g7 p" Q0 \; g* T                        @.DrivingHome := true;
  Q( f/ O3 }  x0 g: f% {8 `                        rgManager.tryToStartTransOrder;
2 `3 A* h, J8 _- H                        if @.Destination = void: v; R& R5 ^. S) g3 ]; F, V1 p
                        then -- no transport order for vehicle @5 Z- a8 ?, ~/ m, P' a
                                @.Destination :=
4 C0 D- q  S3 }* l: E  J                                rgManager.nearestFreeStation(@,track.~);7 ?! i! K, h4 ~4 N/ A, P7 X/ F5 O2 z9 L
                                newDirection(@);   
# h- r1 [$ ~' b- y                                if @.Destination /= void then& t1 ?5 D9 d+ `" O% l$ n/ g4 r
                                        @.Destination.NumReservation :=* e/ O. R" X. h5 ]& J$ V  B; \
                                        @.Destination.NumReservation + 1;
6 w& M) s8 o0 o4 v. W                                end;# \! v/ L7 m/ ]# h
                                @.CurrIcon := "drivingHome";
+ D% h: S5 C$ D/ E7 e! X                                @.DrivingHome := true;
4 F) q  N# q3 w) H                        end;
) P* u  Q) e, ]; T5 y% G                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! _+ `8 i( z/ i) Y$ x4 I  M                        part := @.transpOrder;1 e" A+ O+ N9 R$ X, [
                        part.move(@);-- load part
2 W: x4 o0 U! {" M5 f: ]4 V                        @.CurrIcon := "load";
0 A1 f4 [. w. |6 ]' v                        GlobalDistObj := part.globDestination;
' D$ k% f; z' |* ^% g' n+ [8 l( l1 _                        assignLObj := rgmanager.rgAssignL;
6 z+ \& m8 o& j% J                        row := assignLObj.getRowNo(GlobalDistObj);6 {) S5 Q# w0 v4 A
                        if Row = -1 then -- since 70
! w1 d  s4 v! y0 v( a( {- a1 h                                if lan=1 then
9 ?3 J1 l( D0 v: R                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; l  D4 d7 B5 |- |                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 S2 U: E; g9 g; ^' r; \- o" k# {
                                else
7 S( T- w3 p4 J  d1 ?. Z                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 ^2 l1 D3 I7 V                                                to_str("in docking station: \"",?.~.name,"\""));                               
2 O' C1 U2 D; \6 r. z                                end;
% H$ d0 Z* x5 T& P! F                        else
9 U  u; H  ]3 c6 \, \  q% [                                @.Destination := assignLObj[1,row];
  {7 K/ ]' c. ]% Q( S                        end;                       
3 J, @5 i+ ~( j3 @' B5 X                        newDirection(@);% A) V, j: p% {8 A! x( [0 v
                        @.HasOrder := true;
; _- A3 @4 J  y8 b1 M! [8 d5 c' @                end;# `* \( E4 G6 E% @& c( O* v, {
        end;3 J0 M9 ?8 ]4 V' a+ F: {
end;        -- of the method# l. h8 ]& g3 ~* M2 X  i; ?6 \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; t% v$ M* W* m+ @0 Q
; Y0 m! b$ P$ U5 O, t: T0 H这是AGV_putin中arrive的method。$ {! O* T' t+ l5 j; G
+ S0 p4 Q  x$ C/ q( _
当到达物料速度越高时,这个报警更多,9 N- ?7 [% o# z. I1 q/ K$ k) x4 R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 l9 a2 R  T/ m* T* K0 m  s
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 m- e  ~/ S$ @- D
+ H  K1 v  K, Q0 X/ V0 l
另外一个小建议,就是move,所有的move都可以这样
! C  }- c1 w; H# \. f( pif not move() then debug end
4 D. F' k) |; I$ N: R! [这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 }+ r1 j# [' jplant simulation中的free libraries有AGV模板,: ^' A" L. j5 e  l8 ^. l
里面也有案例。
1 Z7 |$ c+ B4 O! ^0 ~+ E* X我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 V* E2 s$ ?- P# q
" U, A0 S) c, w* }0 |& S9 D' _
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, Q" ]* P6 h% |" F
8 d5 M+ O) ^4 U+ y0 F$ u那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & ^1 u' k0 o$ p- T
这是AGV_putin中arrive的method。
! b. k; ]0 n+ @: V7 d. F7 f: @/ U6 t( v1 N9 S) _# d% W
当到达物料速度越高时,这个报警更多,

) X$ H+ s2 i$ G, T' _另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-12 18:06 , Processed in 0.019502 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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