设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9417|回复: 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'& H# ^/ ^' V# v3 N4 E
*/! q) ]7 C2 E& ]/ F8 d8 i
is) v, p8 |* ?' D' v9 N7 y
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ _; m8 f1 O& E. A$ @, h5 Z
do: _% q' B: G9 q! p5 Z: I4 P
        Lan := rootfolder.Internal.Tools.AOLlanguage;
2 Y/ l3 H0 y  X+ q1 m        if current = @.Destination -- else return
* _3 q8 D6 ]" W5 {        then9 M3 V; |# }9 x: L$ V
                @.Destination := void;+ J  M( ?" c  A2 c$ q; [, a2 {. z4 G
                if @.occupied then% a. y8 g/ v+ }- @# m  K! D- \
                        part := @.cont;1 [8 f. }5 p+ ]" K4 K$ S9 i
                        @.transpOrder := void;  p7 Z# M4 q8 m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 N; a' y: y  V6 i
                                @,root.eventcontroller.simTime);/ I- ~. h" u8 t9 y& u
                        @.HasOrder := false;
1 l' r- u8 M( H1 k: b2 ]4 ?                        @.DrivingHome := true;
5 v8 ^1 [/ W* \- F) a7 ?                        rgManager.tryToStartTransOrder;4 ?7 h6 l" b7 n
                        if @.Destination = void- i9 n: V* Y% c& U7 A' m( r; `  o( {
                        then -- no transport order for vehicle @4 l/ M; j- }# _+ X# a: E
                                @.Destination :=+ e3 E5 z( v+ h+ D' r. i
                                rgManager.nearestFreeStation(@,track.~);
" A+ W0 C+ W% f) U/ ]) p0 n3 \9 R                                newDirection(@);   6 I! y  A% O* M& {/ I8 T
                                if @.Destination /= void then) ~& F3 ^" a9 I3 F. G5 @  [3 [
                                        @.Destination.NumReservation :=
0 e% ^8 ^( G0 ?8 u5 @0 C4 d. i                                        @.Destination.NumReservation + 1;
$ G$ N% x% o0 r: G: m                                end;
( o. C' @; z% t$ @                                @.CurrIcon := "drivingHome";
5 v% J9 x, R) ^7 p( Y3 u9 n* o                                @.DrivingHome := true;
, t% |! _& R* s( B% D6 @& P                        end;0 A5 y4 c: T9 X6 N
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 T" z' |* G3 H' D& E* }( s                        part := @.transpOrder;
( k) \  r& J4 }* Z/ x- W                        part.move(@);-- load part. a4 d3 w# |  Y9 z+ G/ L
                        @.CurrIcon := "load";8 ?* [% a$ {9 j1 \: B
                        GlobalDistObj := part.globDestination;
8 k3 h7 `) E8 d" J2 G6 v                        assignLObj := rgmanager.rgAssignL;  A  u; h: Z2 m, B5 \5 `& B
                        row := assignLObj.getRowNo(GlobalDistObj);
9 B( l* R9 a5 r( l7 K                        if Row = -1 then -- since 70' n; F1 V/ K9 I- |& {! _
                                if lan=1 then
% Z- D$ S( \% z# F* q/ U9 e                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) X4 |0 f7 K8 t( z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 `- Y2 E2 j  V  x4 W' x
                                else
- o3 l+ R( [2 t3 T6 _( x' N                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; r4 m2 x, @- V& g9 C                                                to_str("in docking station: \"",?.~.name,"\""));                                ; N; G. n; ^8 s4 ?% @# X9 y
                                end;6 ?% c% ?% O3 v4 ]+ H  ?* O+ [
                        else
5 y' s4 ]: j- v7 N' V0 z  i% R                                @.Destination := assignLObj[1,row];
' t* d# g/ v' Y4 ]# {                        end;                       
# h6 g2 m5 r: [" n7 r: Q: F# h9 _                        newDirection(@);
. W3 i+ y* v  d8 w) p9 P0 Z                        @.HasOrder := true;: ~( }( e5 z, c
                end;
' y3 J: E$ J( e1 q& O8 Z  K3 `$ ?! I        end;/ {$ m0 J. t0 }+ @; i3 ?& m" [: X( p
end;        -- of the method- \5 V/ v+ n9 y6 {/ X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 V) a3 F; a* X$ o4 q: @/ S; T0 Y, {2 T! G' r
这是AGV_putin中arrive的method。4 R/ J& o7 b$ s6 `

5 e* _3 E+ m' X: e& ~当到达物料速度越高时,这个报警更多,
; r5 r3 a. |1 q可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" D! A  ]2 e* i+ m, t  }3 H* {' Q. C程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; w; ^5 C) |# W" c0 z
" S' Y/ g* Y3 F* p; y9 Z3 N
另外一个小建议,就是move,所有的move都可以这样, Z8 ?# T* h* i" _; X
if not move() then debug end
: L( q" V* T9 D8 c这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 q0 U3 h, W; I6 W$ Tplant simulation中的free libraries有AGV模板,4 I$ g' {7 L: G6 G5 U
里面也有案例。
- l$ K% S: p+ u& W9 f" q# @我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% u/ ?  `  G9 y$ [; I
0 K$ v2 V: v+ z4 a4 P' f: ]
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, G. \4 p! W8 j, o3 V+ R
) S/ ~$ A" g4 r+ ~. a) R+ }那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ n) }8 b; j  H: K& W; [0 @+ ?这是AGV_putin中arrive的method。- Q1 X6 u1 b- d

$ b) ^% G/ C* X当到达物料速度越高时,这个报警更多,

/ r* f9 T) q& ^3 O  Q2 w& e2 z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-31 03:40 , Processed in 0.017997 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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