设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9648|回复: 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'
% E* k) k' x' V6 b* l5 j8 [*/  [7 l1 v# O) B9 _
is
0 n% j8 I* P, Q6 _$ k4 P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ a; W" m' |6 h9 K! Y
do6 @# v- a( {' s1 |# \% p# `
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: b( W- s2 K5 a/ N* E  M        if current = @.Destination -- else return
3 S- O* b2 T- v        then
/ K3 P) n9 C$ X2 l                @.Destination := void;9 |- A( x9 S) d
                if @.occupied then( K" r- a0 V8 ^+ Z0 G" Y
                        part := @.cont;! v" Z. C8 E  r1 }8 F* r
                        @.transpOrder := void;
( d! r4 K5 k. c& `. u- \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 {0 e) x* y# k! M* R) j! z                                @,root.eventcontroller.simTime);1 m/ y# n' t* F4 D& s' g7 X/ _
                        @.HasOrder := false;
+ P: E; k0 j2 q- \                        @.DrivingHome := true;" h# U. D) b% Z/ B  ^, e3 s# H
                        rgManager.tryToStartTransOrder;3 F" h% z5 @! O& P4 l6 F5 `; b
                        if @.Destination = void
: d4 f. Z* `- U                        then -- no transport order for vehicle @
' Z' l& D1 l6 t2 c                                @.Destination :=/ c8 p3 C* g/ D- w6 w& d' N
                                rgManager.nearestFreeStation(@,track.~);" Y9 \' n2 G9 ^
                                newDirection(@);   2 k/ ?  L0 n6 k& |
                                if @.Destination /= void then! Q& Q+ {, t" \+ F
                                        @.Destination.NumReservation :=5 {- f' P6 a% i! t
                                        @.Destination.NumReservation + 1;
( X0 O1 m! t0 h) H3 q                                end;4 u" x5 C4 o0 t# |
                                @.CurrIcon := "drivingHome";
) e. a) U, z1 a- P                                @.DrivingHome := true;
% z& @8 `& ~( F                        end;, v1 m7 K6 z& Z4 s8 v) A) j9 }
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
  X/ W" D5 t4 h                        part := @.transpOrder;
. c8 P" N' Q) _# Q' z                        part.move(@);-- load part" ]" m+ N) A( a$ d( j7 v( {
                        @.CurrIcon := "load";
* W# w3 c1 B$ p, U. D0 @" D" }9 |                        GlobalDistObj := part.globDestination;3 Z4 I5 `/ Y: {& e! l0 s% i6 k
                        assignLObj := rgmanager.rgAssignL;
1 U# c3 m. r: \- I                        row := assignLObj.getRowNo(GlobalDistObj);, O( x3 z% M3 U; f+ D/ {
                        if Row = -1 then -- since 70
4 A: ~6 r+ |  E& u6 ]3 Y9 e( U                                if lan=1 then
; ?1 O3 a5 D- b+ \- U: g$ ~- k# V                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ S# L6 P5 b2 @2 Z! Z0 [
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) u8 }; i6 y: a' O, g* Y; X# I                                else! L% F2 f& K" X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  |" z6 z0 l! j: z                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 b* \) b) B) W% p' m4 U                                end;
( W0 w0 G9 ]7 {! ^6 K                        else
7 i8 r; ^0 {" r% D- o3 j                                @.Destination := assignLObj[1,row];
+ y. z' A2 H2 C0 Y' W6 j! E! [: M                        end;                       
3 J  M0 T& @+ Q- N0 N                        newDirection(@);
- ?9 g; P8 q9 d( j5 ~4 Q0 v" U+ D                        @.HasOrder := true;4 ?0 S! n* f$ o% |; t( a. M
                end;. M8 d$ m/ ^7 {* K" A
        end;$ I0 |3 z! d2 P+ v# ~
end;        -- of the method
3 k8 p1 G' d6 \) a4 ~' H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 q  R' @: k2 G& d& j% o/ z9 M% Q& ^
这是AGV_putin中arrive的method。  x/ d; K5 f* _% O0 e

4 p7 P) I4 M: m6 j8 b当到达物料速度越高时,这个报警更多,
! z. N% P. \$ j% c9 b- t; l9 u可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 c# w8 N) x$ X: r$ k
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 Z" G4 K. V& [0 x' }" t1 O/ z

9 C3 ?: G- r  Z* H# P& m  w另外一个小建议,就是move,所有的move都可以这样
* n2 M. ^0 C, p. c- Y$ }8 `  fif not move() then debug end* L! v2 i6 e7 x$ e& ~1 G
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 K: o; f; ~; n4 M0 J/ I
plant simulation中的free libraries有AGV模板,
7 X# I1 ?. x9 }3 d0 K/ L% h7 Y里面也有案例。
0 ?1 n# Y% ]% g- y2 p  }% Y我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 R. S5 Q- S3 Z$ K2 i3 J
( {9 v0 H# v( J; C7 E我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; k6 l9 w, B( [5 G
: O# b$ o7 U/ J7 e  }
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # \9 L- i5 B6 G, F+ q1 A1 x' q
这是AGV_putin中arrive的method。2 ^% H. S- l) Z+ R
( m1 A: t7 k6 F) }9 T% L  N
当到达物料速度越高时,这个报警更多,

1 {3 p/ u# F' I1 q5 U2 B) d& D3 `1 ?- h另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-14 12:33 , Processed in 0.023785 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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