设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4627|回复: 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'
5 b* D6 p" \7 z4 H1 X*/
( R( p* Q, V& C( b# dis' y$ Q! t7 y8 A' Q' C* }
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( I6 Z2 v5 Z( ?" Z/ r4 |: b
do
* R" p# B" ?3 ]) @1 ]4 [% n        Lan := rootfolder.Internal.Tools.AOLlanguage;
! V/ t1 B- e! `1 _- L8 H        if current = @.Destination -- else return3 G3 N$ n" m9 d0 @
        then
2 k  g. R. A0 f( R9 D                @.Destination := void;
2 k0 I4 i1 l5 @' y% I  W# ?8 g                if @.occupied then
; ?3 c& K/ m4 P: n3 m                        part := @.cont;. ]# W! P- v+ r+ z
                        @.transpOrder := void;5 }1 f+ ~1 _! |
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# u! V8 _# ^+ x5 Y                                @,root.eventcontroller.simTime);' O3 }4 g: [% V) \: n% d0 e6 }# \
                        @.HasOrder := false;
" E# N4 g3 \, z) [" R+ Z                        @.DrivingHome := true;& m. t& i3 l' u8 B- m
                        rgManager.tryToStartTransOrder;+ `! F& S. w" s  s' Z  O
                        if @.Destination = void5 Q; N( s6 P/ l/ Q& S6 H
                        then -- no transport order for vehicle @  \, q) ~3 V+ C4 c" y
                                @.Destination :=
) p4 @) w- q1 J2 v                                rgManager.nearestFreeStation(@,track.~);- G& v6 I% u$ o  a6 Q
                                newDirection(@);   
! B# u% i; s( y4 q/ C  w                                if @.Destination /= void then
& }0 v" Z0 Y$ \2 P                                        @.Destination.NumReservation :=/ p0 f  X( }" |  @# n9 @( v5 V) N
                                        @.Destination.NumReservation + 1;
; }3 G8 j  u  T( ]                                end;4 _$ |% V1 J5 u- _* |
                                @.CurrIcon := "drivingHome";- E) A$ x% t9 n3 S; g% v. P
                                @.DrivingHome := true;
; y" r* J1 \( q* l; \; m. C                        end;
+ P; t% n# b# Y/ v: k4 @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
- y6 a! ~, \) M7 E                        part := @.transpOrder;
- k* B$ Q9 \0 g; K! V                        part.move(@);-- load part. W. s! K8 {' w% [  }# w
                        @.CurrIcon := "load";
* j) M5 H' O' i6 g- q5 `1 M                        GlobalDistObj := part.globDestination;5 j6 W1 I0 Q1 f7 M: x' J& T: J/ U
                        assignLObj := rgmanager.rgAssignL;! k# T; L2 O: H9 i- P% {1 G
                        row := assignLObj.getRowNo(GlobalDistObj);
* w- E+ x% J9 H3 q9 R                        if Row = -1 then -- since 70
' w* H$ d) e# {6 q2 }                                if lan=1 then( q$ K0 N6 I. f2 ~: w
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 D2 ~( p5 x3 v1 H, h/ s1 K/ d7 Z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ b# D& Y! _+ C" V3 W* d! Q
                                else0 U, o( }3 V  m; K# q* q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 J3 O5 v" K- L# ?. U/ E                                                to_str("in docking station: \"",?.~.name,"\""));                                3 f1 e( B  M& A$ K! J6 Y; Q8 l
                                end;
. z- O7 |' z) j+ m- h: m, s/ Q                        else
! r/ {1 D+ l/ T" x' `                                @.Destination := assignLObj[1,row];/ |0 U! B; d: Z
                        end;                       
3 a1 ]2 H! |& U3 x; d                        newDirection(@);& `  E7 F/ t, X( Y9 @6 V$ M0 F, Z
                        @.HasOrder := true;
5 S( z4 g6 S  b! F2 D                end;
; K1 |2 V% S7 D        end;  q- W6 O7 V1 V: \; a' I$ U
end;        -- of the method: p  Z  u" p5 B, v# Q2 a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 K, ~6 I: q- r8 L% b
3 L  ^8 d; e7 D+ j6 g
这是AGV_putin中arrive的method。' C/ {0 L/ a6 [: ]' h4 d0 P
. _  X* j/ |. x
当到达物料速度越高时,这个报警更多,) o6 r) w4 E; `5 s/ Q) s3 t
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" i8 Z8 K! S- A0 j! g1 k
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 \- p1 ^( o2 n' L# d, S9 B- Y6 G9 p8 x* ~7 D8 D( T
另外一个小建议,就是move,所有的move都可以这样
( ^/ m1 j: \7 {' q$ s9 X, @2 _& y% cif not move() then debug end
* G$ x; n. h6 A; @/ G) c! L* T+ P这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" ^) k' N& C# Oplant simulation中的free libraries有AGV模板,
/ a6 L# s. C& n4 T, d4 T里面也有案例。! [; Q3 m# S  T" {, Z: f
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 t! _0 Z7 w. ]( Q

# @" b( s: N* O2 c我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% D' p& h! @- u+ o& g0 b5 a% [
7 q1 C. L: B( L" _那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 5 A& {! Q. D6 S: ^  j/ ]* o  x$ y" D
这是AGV_putin中arrive的method。
7 n; g& x) [8 F# |# \/ E# S3 z  E; Z  U, n7 `8 J4 A2 \$ s
当到达物料速度越高时,这个报警更多,
+ f3 Z8 s' S5 X6 W
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-11 21:08 , Processed in 0.019930 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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