设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8940|回复: 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 J- c1 Y0 P0 ?# {*/
! }: m; E* L/ A+ u: H: jis. d. {: q8 v: j( F# {! |5 q: ]8 c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% P5 G6 ~, L& A8 P* A# ]( u
do( N9 M: b+ T* b  J
        Lan := rootfolder.Internal.Tools.AOLlanguage;
% W6 [  @% o0 r! b1 o2 S7 x- v        if current = @.Destination -- else return# b/ O3 R& J8 [: ^: o/ t- ^
        then, D% j! G$ d  z  J% u+ s
                @.Destination := void;
/ W2 Y& D; t. J* _5 i3 P                if @.occupied then
  q  c, o: f0 \3 x. e                        part := @.cont;
. v3 ]. b: ?* \! M                        @.transpOrder := void;
& f7 w8 ]) {" N& U" U% g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' m- y- W) t" I
                                @,root.eventcontroller.simTime);6 d0 n6 z8 E6 ]) i7 B
                        @.HasOrder := false;
( l4 O) P7 A* f1 A& D1 n) E                        @.DrivingHome := true;8 j) L2 r& ]# p
                        rgManager.tryToStartTransOrder;' g/ d4 q/ e9 q( v
                        if @.Destination = void
$ y  }+ g/ V/ r" }! l% J                        then -- no transport order for vehicle @  M5 G* l/ G$ W
                                @.Destination :=
" Z) r5 B9 j' |# R$ D' H                                rgManager.nearestFreeStation(@,track.~);
* J. I3 a$ B9 y7 V' W                                newDirection(@);   # A; Z. K% a" l* Y" X
                                if @.Destination /= void then
9 s( {8 c3 X: |9 }                                        @.Destination.NumReservation :=
$ I7 R. p& A0 R% [' Q7 g. ?$ `4 k                                        @.Destination.NumReservation + 1;/ \  m' J& h  ^3 E& r" m+ Y, F
                                end;
% `$ |! I2 W& S: C4 |: r, c& C8 q0 v' b                                @.CurrIcon := "drivingHome";) t7 K( G0 W! w
                                @.DrivingHome := true;; g: W9 p" r# b4 `$ f/ _
                        end;1 [7 h' A9 _9 w+ |5 @/ k
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ P" p8 s0 j5 u  F
                        part := @.transpOrder;
% q# u6 g8 ?) n7 H7 |                        part.move(@);-- load part, e. O9 M+ e& r5 t4 d& w; Y
                        @.CurrIcon := "load";
  O9 {. e( B1 D2 W                        GlobalDistObj := part.globDestination;' D6 S5 ^( H4 ]
                        assignLObj := rgmanager.rgAssignL;
5 C: d; K8 C, m& {5 z8 E6 ]                        row := assignLObj.getRowNo(GlobalDistObj);7 ^3 h6 z0 f/ `4 w' @' Z8 _: h
                        if Row = -1 then -- since 70
. ?0 C$ w* W. ^, N                                if lan=1 then/ p+ w8 |/ c$ ]! a! ^4 \8 ^* X
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" [) U: h) b1 {: U1 m% ~# j! }                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% a: ]1 i# w& `- f  ^9 ]                                else& H. ?. h& q1 \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ ?5 v; e/ _+ X/ L5 o
                                                to_str("in docking station: \"",?.~.name,"\""));                                2 `5 f& [$ G9 b+ K
                                end;
$ b# ^5 Q; V; K4 u$ l# \                        else
. J4 b6 H: Y3 a                                @.Destination := assignLObj[1,row];5 z' }0 C2 c8 H5 w" S& i3 G
                        end;                        6 z, u, ~: s, T- E( s" S0 ]( ~8 {
                        newDirection(@);
- V5 A1 w) U. I% n' S                        @.HasOrder := true;+ G' c0 m0 I# Q& M
                end;
9 g1 m* r0 L0 U& s/ p! t        end;
& [7 ^( ^4 B! p8 e" q/ Oend;        -- of the method
! [$ {% L% y. x' i3 G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   G+ Z5 Z; p9 X. P
7 h0 ]4 t5 H% {+ A% C" G
这是AGV_putin中arrive的method。" E6 g; e8 r8 T2 B

! }$ B+ N6 _/ r+ q7 y2 F8 X当到达物料速度越高时,这个报警更多,  _7 V0 d0 R4 z3 F( B
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, x5 m% c9 `2 I  b3 h5 P; L9 h6 L1 Q
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! A/ w& R$ i6 f$ u3 @. X1 F9 R9 u, x/ G/ Y' p; z
另外一个小建议,就是move,所有的move都可以这样& u  J0 D# K( d; R! K
if not move() then debug end6 V( z4 o5 J0 U0 v
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: I' u; b9 U0 H( d: S7 ?plant simulation中的free libraries有AGV模板,
; l$ F+ f+ q; ?& L6 Z! W% X6 G里面也有案例。
2 i' z) ?$ P3 L5 W3 a" U6 x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 g. N7 J# v2 M

5 Q. O7 l( F( \, J; }9 O我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- d' d% Z+ [) |) z& g
* _* H6 [4 z7 o: d  U那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* N# E9 u! v  ^: B2 d" t% n( m6 S这是AGV_putin中arrive的method。$ \/ ]5 Q" }9 [7 F. h3 G: l8 E5 v: t+ `
$ V7 Q) `) B9 L9 V' Z- Z/ X
当到达物料速度越高时,这个报警更多,
9 C( x: P$ ^4 p0 V
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-5 10:29 , Processed in 0.014816 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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