设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10241|回复: 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'& E7 @5 ^' N$ I4 [) A- G# e
*/. P" D2 r6 h" g+ k, w; m
is
5 b) D% `: {. C3 N. M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;4 o! l5 C) }7 L3 X9 t
do
4 z- }7 j' _) k( v2 w! m! q        Lan := rootfolder.Internal.Tools.AOLlanguage;3 o* i! }  Y$ Y) X, ~6 ]
        if current = @.Destination -- else return
* f6 v( n" L! U6 t$ n3 d" |        then) J4 Z4 ]2 f$ b, @+ a; r" X
                @.Destination := void;
" ?/ T1 f& ?& H% y3 a                if @.occupied then# P$ E. x3 A6 v  e0 N2 b
                        part := @.cont;2 z; M7 V: g9 K# k
                        @.transpOrder := void;) k& I9 ^1 B; i' @1 G9 E, U5 B3 Z8 R
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ M+ t# F) {4 g/ V                                @,root.eventcontroller.simTime);0 A( ^- C9 a# M' u. w
                        @.HasOrder := false;
. P$ R# o& t; Z7 M& m  ~                        @.DrivingHome := true;1 g6 A3 a$ r% X4 _; W' V1 C
                        rgManager.tryToStartTransOrder;" ?$ C! I& H8 F% {( f4 T6 R
                        if @.Destination = void
2 m  Y! X8 s) ^- y                        then -- no transport order for vehicle @
4 ]4 V, ]7 a1 B7 S3 }                                @.Destination :=
$ D% v0 e8 v) b" D                                rgManager.nearestFreeStation(@,track.~);0 |" r6 H- x" j' d) G# N# G! L% c: ]
                                newDirection(@);   
, a* \# Q% v) N+ ]                                if @.Destination /= void then- w* ?3 S3 h; [( V/ w1 x
                                        @.Destination.NumReservation :=
. ?5 \' g2 \& s) X3 }' M' J4 h                                        @.Destination.NumReservation + 1;; \$ p# V8 B( R3 i' Z! x
                                end;) W9 a5 W# a) `8 ?1 }
                                @.CurrIcon := "drivingHome";
" G+ U  u& ?/ k8 S6 O9 D3 c                                @.DrivingHome := true;) H0 c3 N6 R& G8 `' d! i: D& m& A
                        end;) t/ I! v0 f% ]2 N6 \, j8 F; Y
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* |1 ~: v% C8 n% O                        part := @.transpOrder;
; @/ A1 E" S- @, G9 b$ @                        part.move(@);-- load part
# W3 L, F4 S' b* P9 V                        @.CurrIcon := "load";
6 L( U, v! }' u9 X! ?9 W                        GlobalDistObj := part.globDestination;; _( d, ?$ L8 ?( \( F- X  i$ D
                        assignLObj := rgmanager.rgAssignL;3 y( |' ~! C1 N% n
                        row := assignLObj.getRowNo(GlobalDistObj);: i  K! p* f2 n- v
                        if Row = -1 then -- since 705 U7 m! E" v. C9 k2 a' J" }/ [
                                if lan=1 then
$ j! t5 B$ B: h2 q6 O3 {  [                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& i/ T+ `9 k1 N
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 e  j0 u* k/ o$ l3 u                                else
9 S+ y+ T& C% Z- X4 t/ V                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ D% w7 {" K4 c1 a% F                                                to_str("in docking station: \"",?.~.name,"\""));                                . s: O( d- r% i1 @: V$ k# T
                                end;, h$ P0 Y2 t: \0 f/ I
                        else  F( t8 ]$ O/ [" c; s% G3 s
                                @.Destination := assignLObj[1,row];! }$ R! A& j. ^7 P' L3 q6 V
                        end;                       
" |8 S. f4 S& V, G( x+ W1 I                        newDirection(@);
8 L- V' F( W- V# W; |                        @.HasOrder := true;3 g1 a) c' U& \
                end;- V. H9 I% B- b  k/ O
        end;9 F6 e7 {2 C8 Z4 R# i" D
end;        -- of the method1 x! z1 M5 g5 @5 _' U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) O1 m$ F- r2 G8 {6 E0 o0 b- u' X
这是AGV_putin中arrive的method。" P" k* p- I( T

( b2 D% `9 \, u- |& F当到达物料速度越高时,这个报警更多,0 e4 T! k) q4 D7 S/ E  E; n
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' A& O! }$ [* d  x* N3 y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 `/ O+ H& l( e+ H4 P2 Z8 B+ W7 W9 K  k( g7 T. |* u. _
另外一个小建议,就是move,所有的move都可以这样) p  _7 F6 F% A: H) C
if not move() then debug end4 l! p6 F% M/ E9 K, x
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& E! M& C5 \0 m- B  [+ F; V9 a& [plant simulation中的free libraries有AGV模板,
. e9 s! I: b4 C6 S. |里面也有案例。
" V& R" d( p2 p: J( w( j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% X+ G' v- O4 J' Q  F
# I2 t* M$ L0 I4 U$ c- ]- n: l# ]) S我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 f1 e+ `4 @8 |9 Y

# F- E% j* d2 m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( l7 I( y- ]2 \! o) p
这是AGV_putin中arrive的method。' L) `# {( d) V6 T

2 A+ N5 ^: d- y3 F当到达物料速度越高时,这个报警更多,
* {5 a# a* F, T- e$ O4 w7 \
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-22 02:29 , Processed in 0.019723 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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