设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8279|回复: 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'% _# |. }2 X4 ~  d9 I- V( a- N
*/2 n: s3 }+ `0 J* i2 @, ~# m/ U9 Y
is: _6 P" t; M; j: u$ [  M
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 _. o" _5 Y! z, K3 P
do
7 h' ?- g8 g+ c* N9 N        Lan := rootfolder.Internal.Tools.AOLlanguage;8 g* I: e" F. T$ `7 n5 \
        if current = @.Destination -- else return
2 I  y+ y( v, P  c2 V        then, ~% A' k8 Y0 j7 n& U7 U
                @.Destination := void;
( B/ H! J0 P) M4 h+ e1 h$ ]) d' V" N8 Z# e                if @.occupied then0 D+ S3 g" ]6 k. l8 S: Q2 _+ w; m8 x
                        part := @.cont;. p) Z% Y% J  ~4 E7 T) Z. }' I
                        @.transpOrder := void;
8 ?/ ?, B0 H! p$ g& O                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# S" c. k" u6 o# j0 O  {" ^6 K. ^
                                @,root.eventcontroller.simTime);
; b7 }% H/ o- x* A5 \! u3 f                        @.HasOrder := false;
; f. |0 i9 s* F8 W                        @.DrivingHome := true;( b3 O8 a+ |  `. [  ^4 x$ a, b2 _
                        rgManager.tryToStartTransOrder;
0 x( @( P* Z4 {( f/ h                        if @.Destination = void( J, u! E5 X3 h# S& \! u. {
                        then -- no transport order for vehicle @
5 H" H6 `- [3 `0 K* V* K+ G                                @.Destination :=
" \& M+ H+ o% z/ H. J3 K5 P0 Y                                rgManager.nearestFreeStation(@,track.~);2 Q! e4 w, Q$ E6 E
                                newDirection(@);   ( v9 h) l# `/ J# O0 F/ [  G" U
                                if @.Destination /= void then
( q4 F3 }2 z$ t% |) d                                        @.Destination.NumReservation :=! b* I9 C1 v+ Y3 R- ]- w
                                        @.Destination.NumReservation + 1;& ]7 E# h$ J! V  h3 L' Q, a8 `
                                end;
/ r- ^/ H( z3 L' I4 v# `% V' `                                @.CurrIcon := "drivingHome";' Q/ G7 G! z: K1 p+ G. K$ Q2 H0 G6 R
                                @.DrivingHome := true;
+ N4 p% i5 s1 k2 D% Z/ i                        end;' q* b) C6 @2 F) |7 b' f. Z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station5 y1 O6 J0 `# `
                        part := @.transpOrder;
# m0 ]* }5 D9 H9 F: F4 d2 [8 _                        part.move(@);-- load part
. u  T2 U$ G! n( C4 ]; b# c                        @.CurrIcon := "load";- ]0 U5 y5 G7 A
                        GlobalDistObj := part.globDestination;* A! S1 R( E9 d8 n, U
                        assignLObj := rgmanager.rgAssignL;3 b9 T/ i0 a7 V& f
                        row := assignLObj.getRowNo(GlobalDistObj);, p' C- a/ L& l5 W
                        if Row = -1 then -- since 70
5 O6 _6 @: D" u% t4 i  c                                if lan=1 then
# y7 K/ z  e1 V- E                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ M1 V/ Z2 }' l                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 z% _" H6 |* p% c1 z9 A# y! q- V
                                else
9 `1 K- W" v6 R/ E$ v/ ]                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 V! H; Z  D: h" T                                                to_str("in docking station: \"",?.~.name,"\""));                               
; B6 D' X4 q' J1 s3 |1 x1 H1 U                                end;& s! i  Y& S# l# C1 T  s$ X
                        else/ E8 k1 d6 }" j( _$ X9 v2 ]6 L
                                @.Destination := assignLObj[1,row];9 u# a+ _/ v, G* R/ G2 G
                        end;                          Z& f, [# g" u* X) `
                        newDirection(@);
/ z$ R0 q8 E8 M! ~                        @.HasOrder := true;
/ F# d3 F: n& J) [4 J6 n. v                end;
1 P* I. d! ]+ u1 X; c: }- Z3 X        end;+ p1 L4 ^8 U; J3 X
end;        -- of the method
: P8 W' M$ U7 ?8 I! s: P, _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % |( a2 _/ U3 i  d  Y& G; m

! {: S0 \* @# T; v: V+ E* d这是AGV_putin中arrive的method。5 ~2 q3 Y/ b, s# ?+ Y7 |4 \8 `
' y: s* t# z5 d; p  I, k" @* D
当到达物料速度越高时,这个报警更多,7 c3 y% v4 D; n: [8 d% R
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# i6 X" E) X3 M2 ^# `. c+ t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 e4 e$ T7 A# X1 x7 g
7 [" n+ _: H! W5 c* w另外一个小建议,就是move,所有的move都可以这样/ G7 \- y- E: Y: y5 V9 h7 u1 N
if not move() then debug end
& Z, S$ c9 n; E这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% u& ^* ?$ R! d. \  p* `plant simulation中的free libraries有AGV模板,9 ~  g$ }" @' n" ]
里面也有案例。1 z6 K2 o( j7 o* v. p- P% q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. I8 F/ _8 }) G$ ], ~- E
& D: X. h9 `1 @; z4 `* M我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; H# V) o. N# V  i5 A4 H7 Z4 U: B5 N
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' f- n' A+ Y7 v, Q$ t( k8 a
这是AGV_putin中arrive的method。
- F( E; W5 M( ~4 R" W! {  P  }
9 I6 h! \, ?2 \/ z当到达物料速度越高时,这个报警更多,

9 j0 [. a! [8 b另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-24 23:17 , Processed in 0.016079 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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