设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6662|回复: 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'9 m9 _, B2 P4 G% R6 ?* [( `; w' w
*/. b# @6 a4 ~" X( j: @7 l
is
9 X6 b) |8 ]0 d# ^8 K7 `1 X, P( ?3 g8 C+ i1 y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- U. S( W  I# B. I' Ldo0 o! f& {$ K2 A7 n6 o5 i
        Lan := rootfolder.Internal.Tools.AOLlanguage;
' n  l# W) M% V' V6 Y% N; O% V# i( _        if current = @.Destination -- else return
7 M$ J2 o2 o2 |; @: s& N% g9 G$ s        then
5 X- H  G: H$ O, w1 u, R' b% x                @.Destination := void;+ Z: w) x( ~, s8 [
                if @.occupied then
) l) M2 \3 a9 _                        part := @.cont;4 ?/ g5 {. M' g0 C4 `
                        @.transpOrder := void;
) @0 f, j# v5 p2 I                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ |9 d1 x2 a$ j2 [2 \& C) S                                @,root.eventcontroller.simTime);
$ i2 m4 N' @( D) X                        @.HasOrder := false;* h) E$ u$ K, Z3 G) S4 {( a
                        @.DrivingHome := true;6 i8 T  W: J5 F" H: t* C  G
                        rgManager.tryToStartTransOrder;
+ c+ `4 |; t/ J% q' \9 Y$ G5 a                        if @.Destination = void
2 c( N3 J9 K5 g/ z/ j+ y                        then -- no transport order for vehicle @
5 b2 ?6 g6 X" \, }5 Y/ F: g% ^" ^                                @.Destination :=
" [' X; ]: j" K8 Q4 y                                rgManager.nearestFreeStation(@,track.~);
2 }) a0 j7 x3 T5 t' `0 S$ m                                newDirection(@);   
( _# A* c4 O# z" S6 E1 \                                if @.Destination /= void then
# J( L6 Y2 [& y  S                                        @.Destination.NumReservation :=; V) ?7 |: @, D2 F) {# m% Q
                                        @.Destination.NumReservation + 1;
* v$ U1 T# u8 m                                end;
+ R5 e9 @, d! |2 }/ y, P9 H" G                                @.CurrIcon := "drivingHome";
/ p( K" A  S- Z: R; o  ]9 z! t                                @.DrivingHome := true;2 x& p3 a* b, X
                        end;
% M+ M/ i: V- c, D! b) V* c0 }                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 m! d; V; z8 v% v                        part := @.transpOrder;2 D0 d7 R' U8 m% r- a
                        part.move(@);-- load part
  k" O$ P$ \' I! v                        @.CurrIcon := "load";
7 ~: |! x( g5 H) B" o( q" R9 e                        GlobalDistObj := part.globDestination;
4 c( J# g. R: R( X                        assignLObj := rgmanager.rgAssignL;8 ?2 `; L2 j. w2 ^, i
                        row := assignLObj.getRowNo(GlobalDistObj);3 e3 H4 H2 x* u8 ~/ Z
                        if Row = -1 then -- since 70
' Z" A" f  D; e1 x3 s                                if lan=1 then; K3 Z& E+ ^8 K, h4 D
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  c- C5 Y9 @/ q' N. h                                                to_str("in der Andockstation: \"",?.~.name,"\""));: W: ?9 }2 _) j) P$ g" g+ I
                                else
4 q! {  Y# o/ j2 R# {                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. J+ I8 Q$ ]' a1 S( C$ b" G                                                to_str("in docking station: \"",?.~.name,"\""));                               
  W0 `" k' u+ _7 I* \                                end;) _0 B5 r+ t+ t- H" I& R
                        else: d' U+ |! ~) D' ]5 o# P6 u# d6 K) ]7 g  J; j
                                @.Destination := assignLObj[1,row];( P/ t  i- g0 p7 R. n+ v
                        end;                       
6 P- Y+ y& m- u3 v' E9 G: _                        newDirection(@);
3 v2 K( s- s) z* v* X$ X                        @.HasOrder := true;' ^$ u- g  [+ v8 ?& E6 N$ {+ ]
                end;, W( M, E: \' f( x6 ?6 q7 J
        end;& `7 Q8 H; n" P' Q) O- _: S: H: O
end;        -- of the method% w/ e7 N: R- L8 L0 J# _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, c5 Y; G' n6 O. Q  u
8 m# T9 i3 B# B/ O% `- Y这是AGV_putin中arrive的method。
. `; [" f& W7 M$ W9 f7 i7 z- h6 w/ T2 D" Z
当到达物料速度越高时,这个报警更多,* h+ w- o2 z$ e
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ V2 y& l2 z  ?7 u: |1 |, d
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) [0 [9 X1 ~6 F( F+ V1 h* ^5 x9 `/ m0 J7 P
5 d+ X! O3 \6 b+ e6 B
另外一个小建议,就是move,所有的move都可以这样
; {7 w- j: _% q1 Cif not move() then debug end
9 \7 S0 x" h. T+ |这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ g: J9 S: f" T9 }: @
plant simulation中的free libraries有AGV模板,
, E. `5 T% t+ w: e' Q4 g里面也有案例。2 |- ^7 q8 t7 N3 o' `
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  M; V& u2 x% z9 s6 N, }& @
$ O1 C' Y4 P  A. ~我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* Z8 Q- r% E1 W% ?
7 Y8 I  k$ ?* k那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , l( D; n+ m' f# w0 [, S- p9 R
这是AGV_putin中arrive的method。1 r  d) W( @3 |( W. X9 ?. G% ?
- O+ e3 Y8 p7 ]3 A) n! [
当到达物料速度越高时,这个报警更多,
8 w  {' H; }7 M$ N% w% _' |3 o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-19 17:26 , Processed in 0.022856 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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