设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8348|回复: 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" T/ Q) a, @, a5 p8 k# i
*/+ r# D/ J& k9 T! y( e) w
is
. S; R9 e, ~4 G( R: G! I        part, GlobalDistObj, assignLObj:object;row,Lan:integer;) T! s/ _: C* u. u- L- D
do% O7 F# ]2 O0 Z' k+ }
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 Z- w: |4 U! v% g5 H        if current = @.Destination -- else return
0 c) c9 Y+ C# c+ s+ C. q, l        then( E$ q' R/ C' Y6 Y" v6 z' [" Q
                @.Destination := void;
0 Q, L2 D; J0 }6 ?- g9 P+ J                if @.occupied then
2 P( x& q1 z$ n6 c$ p1 V/ l                        part := @.cont;
1 v- f5 N; }) ]- N                        @.transpOrder := void;
/ K  j; x; I7 F! K3 g9 R                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 J1 U+ x' M6 h! p/ ?! J' w
                                @,root.eventcontroller.simTime);$ O# O- G# y- p5 |5 E) b: M
                        @.HasOrder := false;, I) |( _. k; J! b7 D
                        @.DrivingHome := true;6 A: G, t8 ]' {! B
                        rgManager.tryToStartTransOrder;
6 r& p7 E! h$ y) q2 ~: p; ?/ Q                        if @.Destination = void
( Z' ^5 }* c8 T                        then -- no transport order for vehicle @
1 F5 t1 z. s* D9 E7 W                                @.Destination :=2 t( w1 m2 \8 k* [; J4 u9 J( B
                                rgManager.nearestFreeStation(@,track.~);& q$ F- d# @" v: P4 T
                                newDirection(@);   % E2 ~; p4 @8 j( b$ D8 _
                                if @.Destination /= void then
6 V3 e1 e( o- K* z                                        @.Destination.NumReservation :=8 \# x$ t, h/ Y4 v
                                        @.Destination.NumReservation + 1;
$ _5 d  w+ ?& U, l( J' r                                end;, q4 ^, \% V' D2 L, X0 O% N( [: f% d
                                @.CurrIcon := "drivingHome";/ Q( o7 R/ v" C; }: f
                                @.DrivingHome := true;9 q4 t4 T' o& p7 m: ~. \& n2 R
                        end;+ m! o3 ]  B* V( v
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 t; y! M; y4 E; x* p1 K, W% G                        part := @.transpOrder;8 R& u" S/ b5 n- I! k: H
                        part.move(@);-- load part5 R0 P, o! h2 i6 P
                        @.CurrIcon := "load";0 x9 |4 w+ F( {6 i
                        GlobalDistObj := part.globDestination;
( \3 `% ~4 \( d7 d0 e                        assignLObj := rgmanager.rgAssignL;. Z  \7 W1 D- V9 y* }* E* X9 C1 a
                        row := assignLObj.getRowNo(GlobalDistObj);# `  V1 O; [5 S8 X4 j+ v
                        if Row = -1 then -- since 703 w9 f$ |$ ^# F& _- k
                                if lan=1 then
& y  Z1 b5 I; m5 d4 I                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 ]# |! O4 K7 T2 {+ V4 R2 y* ~                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" M6 t/ O9 j) x  m, I                                else
( r- q& |4 F% n( ^# U                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 |: y5 r1 d  e9 o. j0 _) {                                                to_str("in docking station: \"",?.~.name,"\""));                                " ~9 k- {# _6 K* x2 L4 f
                                end;$ f8 w2 V+ z8 V9 `& _( w$ @
                        else# S6 K' b3 Q7 e; a
                                @.Destination := assignLObj[1,row];
* T# R4 o6 V0 L0 _  I+ e  I2 A                        end;                        + ]7 _4 q$ N% @2 j$ U* I
                        newDirection(@);4 s8 [. d# D' x1 h  H
                        @.HasOrder := true;' t6 q: f4 ~& l9 ~) e
                end;
% Y# \7 E6 o4 p* e9 e3 u0 N        end;
* [: ]5 s8 h# g4 m. v+ y( {3 Yend;        -- of the method
2 c% [0 h" p4 Q& P) h& I7 }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 g4 f; x# v$ R. n  @

8 m- Z  e4 v( `& A8 @  p这是AGV_putin中arrive的method。. j  H) j0 m9 V- Z

; Q6 i2 _7 s$ H7 |1 t) Q. [$ E当到达物料速度越高时,这个报警更多,
& m# F: \! o* c, q. U可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: e1 |- q' F/ c3 t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ i( e& O+ L! O6 s% ^
8 _$ u! _' G  x4 {8 a( K
另外一个小建议,就是move,所有的move都可以这样  C& F0 |% e1 g& |( m& q
if not move() then debug end- n6 \' L# |+ k: R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 \+ k: h0 ^3 n7 V& [! I- _
plant simulation中的free libraries有AGV模板,/ |& y. Y1 t0 j$ y
里面也有案例。
8 W6 y: K: t5 A) F- l7 A& P我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& g: |1 b3 _7 q: L, l) r
$ ~( ?7 F. u# k( W9 ?6 K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% {1 o) A/ ~2 U2 B' `* x, s  K  X
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 . n* v: L4 s2 d: j# P
这是AGV_putin中arrive的method。, q  p) ?& S% w7 I, T

# k- [0 n# ?, \, x) c/ l; D当到达物料速度越高时,这个报警更多,

, w: X" `9 ]! b/ ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-29 04:27 , Processed in 0.019865 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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