设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5473|回复: 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'6 E8 d# U) X, T3 f3 @0 u/ d3 W$ l
*/4 Y$ X: X' g$ k9 _; \% S
is
& Y) H3 c( _; j$ [# D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" f8 w7 G( M" O% A
do
! i& K' E1 Y1 m! B: {7 T! Z2 U        Lan := rootfolder.Internal.Tools.AOLlanguage;8 [; B9 k' {0 P( M/ y% w, V' x& B) e
        if current = @.Destination -- else return9 j  m0 q# u2 B7 o
        then
, o, ~! Q' B0 u6 Y, b% P                @.Destination := void;
% y: D7 U) i4 S# T! r$ J3 ~& [8 H                if @.occupied then
5 F7 H. r+ v# k; R. X                        part := @.cont;$ {, M" J# R2 t# h1 W
                        @.transpOrder := void;
, h0 ~8 b8 S- p  }; g2 t0 M                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* R4 B, g' i. V' i; V/ P) a
                                @,root.eventcontroller.simTime);
4 E7 L6 I1 j! p, t# F5 b9 _                        @.HasOrder := false;
' d+ `# I8 [! v2 x# I3 {                        @.DrivingHome := true;
# ~* w* b) F6 x  c                        rgManager.tryToStartTransOrder;- a( F$ w3 P2 z4 N- l8 K
                        if @.Destination = void
" P: j, K9 Y% A0 C                        then -- no transport order for vehicle @
# k, J+ [. V) I* H7 Y( e: j0 W                                @.Destination :=
8 p7 V# G3 |+ [  x0 ^" t. Z# |) z                                rgManager.nearestFreeStation(@,track.~);4 L9 ]* o& ^$ C: N6 j
                                newDirection(@);   1 m" Y; r. j) A
                                if @.Destination /= void then9 l1 {. X0 I) \7 y2 `: y) ]; s
                                        @.Destination.NumReservation :=# @7 e8 s4 ~3 `0 t+ ^  F# J& K
                                        @.Destination.NumReservation + 1;4 z0 L3 A$ e5 Z  J3 M& F, A
                                end;
& t( ]6 d5 I2 e/ J* v) P                                @.CurrIcon := "drivingHome";3 \  u: z# Y$ }: I; {* x
                                @.DrivingHome := true;( l/ ^) P$ H; e3 ]9 d0 I
                        end;
, m+ }6 g6 b8 h" ?+ \                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( _7 E% m" d3 M4 {# t
                        part := @.transpOrder;2 {. n, D6 ~+ z* X/ M) b1 P! j
                        part.move(@);-- load part
) B( K$ [2 ?' ?, S                        @.CurrIcon := "load";! |: m( N8 g& h! c, ]5 T
                        GlobalDistObj := part.globDestination;# e! c+ Y( q, n- D: @- n' H; `5 V
                        assignLObj := rgmanager.rgAssignL;
+ y( O' q* c$ u# K3 K6 L                        row := assignLObj.getRowNo(GlobalDistObj);1 r  d$ R6 p7 t0 B! f; {2 Y
                        if Row = -1 then -- since 70
$ Q* [0 |2 p: w% C8 z                                if lan=1 then+ x6 W7 k- b; s  f+ q0 z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 n9 M. [# R$ u$ _  L: f  [
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- M$ W# ?' [& O8 d1 T                                else
  \; c* a! H8 o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 |; c, H4 c9 Y. ?1 n                                                to_str("in docking station: \"",?.~.name,"\""));                                ' c! G1 D2 |  ^2 `
                                end;
6 P/ p8 R% n! O5 O                        else" x  g1 {+ L; I1 Q) |
                                @.Destination := assignLObj[1,row];
+ `, G8 l- p+ i: v; H; N                        end;                       
- J: g% Y1 p5 s0 z" r! P. ^                        newDirection(@);8 o1 a* N/ H7 ]% k4 j' e" Q  M
                        @.HasOrder := true;
# u6 p( Y6 b9 W                end;
3 ^) N; J$ D. `        end;
: u9 m2 T  C% M5 m$ s0 f8 G$ Fend;        -- of the method
% W5 w9 }5 G! H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 z7 y2 T* O* v0 d
) J3 r: }# p" ?7 k# q
这是AGV_putin中arrive的method。
+ l/ s! C9 H/ K( z5 I# W
8 t4 l* z( y, B& ~. U5 A" Y: T  h当到达物料速度越高时,这个报警更多,
( @1 J' x6 q4 d5 [9 w可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。  a$ Y8 H$ z0 e+ x3 {
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# J+ C* H8 h9 q4 C* c) }
1 }) Q+ ?' C( v# R另外一个小建议,就是move,所有的move都可以这样
) }) X! F/ T4 q* zif not move() then debug end" y) K% _" |, X& q5 b! x9 X3 X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  e# `9 [7 u' o/ J) N, ~plant simulation中的free libraries有AGV模板,! T0 `6 @. |- n+ H! L8 J
里面也有案例。, A+ S7 i) W2 V& e6 b! S
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 I* c$ M- s7 g- r

4 K8 ]/ L# y/ F! w) G* I我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 `/ i& B* g; N, H6 i
& u% {/ H2 u% U, l) r那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- {! {  Y8 M# A9 _4 e* {" m( E8 i# N这是AGV_putin中arrive的method。2 I5 y7 c8 k1 k+ n7 f( Z
( a3 Q8 s( Q: Q
当到达物料速度越高时,这个报警更多,

# \! g' d. g' C' z" T! R7 U) f另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-26 02:17 , Processed in 0.020187 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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