设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8907|回复: 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'
* g7 R. }3 ~- J*/7 ]" O7 D9 l! E+ V7 j
is: i& z8 ^% V; Y3 |( t# y5 B
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
  i4 ^/ P! c$ G% [$ Y, _do/ F# y- S2 o6 T; ]/ E$ i7 \
        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 T  R" V( ~& x' V: W/ e        if current = @.Destination -- else return
7 n/ l) f( t/ D        then
$ v$ D; G, \6 h9 I1 B0 E                @.Destination := void;) `4 P. V" c( D0 V; g9 c1 W1 K
                if @.occupied then
. I5 F3 l' T9 P# i                        part := @.cont;
  y7 G9 x8 {4 T% f, c  x                        @.transpOrder := void;7 B: z# l: n6 {
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 T- P. l, i- Y9 R% R                                @,root.eventcontroller.simTime);' `  |5 c& u) \9 H3 D
                        @.HasOrder := false;
" b; C, k( y9 s/ f! R1 Q5 }                        @.DrivingHome := true;
. F9 T9 x5 ]0 u                        rgManager.tryToStartTransOrder;
+ e3 n' Z- C% _                        if @.Destination = void' C% W+ M) {3 a6 s( W$ Z7 u
                        then -- no transport order for vehicle @
& `# J0 S( v% n  U# `2 h3 R                                @.Destination :=& b8 \$ i% q$ }3 m  w  \
                                rgManager.nearestFreeStation(@,track.~);
% Y) k8 K* j% F# b3 |$ `: F$ M; d8 [                                newDirection(@);   
' W' r, V  X& Q. w% ~6 t  i                                if @.Destination /= void then
' {' g1 Q  H' p4 X$ i# x4 C- M                                        @.Destination.NumReservation :=5 S& d; B; b. E) K
                                        @.Destination.NumReservation + 1;
" [- G/ @# d1 H$ `$ Q1 w  x                                end;
) ^5 }5 j7 l* y8 s0 }                                @.CurrIcon := "drivingHome";
" N, e4 Q" Z& \+ x: c, z' A$ X                                @.DrivingHome := true;) E. s1 c& _) e7 j4 u
                        end;
- z7 R% r; o3 C2 x9 ^! Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& d8 D0 U, q6 Y" O* q# x
                        part := @.transpOrder;
$ U$ o. u1 V  Y( o. Y" T                        part.move(@);-- load part
* m3 d* h2 s  C* w                        @.CurrIcon := "load";# z& @  A* q6 b4 P( q/ M5 R
                        GlobalDistObj := part.globDestination;
4 L, P" O# q5 I  W6 G, m                        assignLObj := rgmanager.rgAssignL;) ~' }' z- H9 E, t$ ]
                        row := assignLObj.getRowNo(GlobalDistObj);
- m! ?: \7 H: Q. G7 m, ^' K                        if Row = -1 then -- since 70
+ ^% ~$ }; Y0 o. J% ^6 `: D$ }$ |! V& ~                                if lan=1 then2 D/ C8 w* P% {2 [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  H" l6 @. e0 K' p+ N3 w9 p/ x5 r                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 |! @  _: M- l& U9 F5 O1 U3 D' F                                else( X8 Y4 t* F+ R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) E' ?- n* l; |( y- K
                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 i. p6 g/ B- q0 I: {, d                                end;! i3 s$ V8 `. w" {" o& S" n5 [& l
                        else
8 L8 X7 x: W& T7 x) \& z                                @.Destination := assignLObj[1,row];4 g1 v9 w* \6 J, V4 F/ u
                        end;                        4 F* X$ k! P: g3 l
                        newDirection(@);: ]1 ^) n% c" _  t
                        @.HasOrder := true;$ ~* G2 r/ H" W$ u! n* Y
                end;0 k# |- k; t1 Z5 Z4 E
        end;. C2 g+ D$ N0 C" A$ ^( ]0 g3 t/ }
end;        -- of the method; `$ F/ c9 c' |8 n/ S' F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; R, H+ x$ D: ~! y$ u

" X$ G+ a( q1 C2 X% `& X8 V" G, J这是AGV_putin中arrive的method。
# `; z( g. {0 E1 I* F
& ^* h1 d( v* q: O当到达物料速度越高时,这个报警更多,- G( A7 g2 y9 Q- o) V) S1 V) ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, v8 n/ d$ ~5 [0 ^+ V8 l* U0 S9 \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- Q2 P  a3 v5 J" E6 \' W7 d$ H
! u. ^8 b1 P0 C9 j另外一个小建议,就是move,所有的move都可以这样
/ K7 R4 E* `( k5 Wif not move() then debug end  b9 B  }# e' U0 F0 \  q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# H6 p4 C. D2 B% @* K8 p$ s
plant simulation中的free libraries有AGV模板,
9 X9 J% E3 Z1 b% O9 Y里面也有案例。
! P( I9 C6 z9 [+ z0 U7 U我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# m' @- X: p; Y) l) [/ r
7 J/ T: _' n9 \: D, w# @4 A
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . f$ l1 H% {) j. L4 p# k4 D5 ]

# R, X: e: h( N2 k, T0 d0 Z, E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : g3 }' K6 J* E$ t& ~2 g  U% E
这是AGV_putin中arrive的method。: I; I% z# F" w

& f: {: }: K( x" Y# f7 c$ e当到达物料速度越高时,这个报警更多,
; \' Y4 {5 _7 r+ C" i% B# X
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-3 17:29 , Processed in 0.016753 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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