设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9920|回复: 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'
" K1 z4 F& h# `# J1 P! V1 S*// o5 Y5 i# d. c$ o( [3 i
is! J2 A5 i, |0 V* ~
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& _* \2 w& c" u# `/ `/ tdo& J9 n6 g. ^* s2 [  D
        Lan := rootfolder.Internal.Tools.AOLlanguage;
& g7 m6 F( g$ t/ Y        if current = @.Destination -- else return2 S- i( G. Z) X) C+ d' B; \. v: \
        then
8 f: [' M2 Z# M% M" e3 `8 |                @.Destination := void;
! l$ U6 a2 D  @% P8 d# K                if @.occupied then
, h" Q+ A- B: {! ~8 |                        part := @.cont;+ ~- ]" H0 e0 ^  ?
                        @.transpOrder := void;
0 ~1 [& D3 p! z4 \; J# g                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, N# S. w! h7 L6 }# a. @6 R$ ~7 t                                @,root.eventcontroller.simTime);
4 [' ]/ D  R! r                        @.HasOrder := false;
$ W8 D6 B# W8 `6 R                        @.DrivingHome := true;/ ?8 U7 b! P- b% T. h
                        rgManager.tryToStartTransOrder;
" e8 f' a, K, g* V6 ^                        if @.Destination = void3 y) ]) ^6 j! J2 t! A
                        then -- no transport order for vehicle @
4 Z+ q2 e" e2 n( L                                @.Destination :=8 a$ C1 `+ [' v
                                rgManager.nearestFreeStation(@,track.~);
2 H/ N: v  ]. W, V+ k3 o                                newDirection(@);   - a/ E* f9 L/ D1 x% e8 d) L
                                if @.Destination /= void then2 {( f3 Q3 Q& \
                                        @.Destination.NumReservation :=& u, b6 o  C% W3 Q4 z
                                        @.Destination.NumReservation + 1;: O5 ^, U& k( O% ^
                                end;
1 o$ [  A7 H$ g                                @.CurrIcon := "drivingHome";
0 T9 f+ z* {9 z5 c9 a$ f! ~6 K2 l+ I: u                                @.DrivingHome := true;4 n4 ^) N% g2 H/ g* M9 B
                        end;
9 a# g; F0 N$ x  J* e% [$ y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& }# O4 U5 T# Y2 U1 {$ G$ y) R4 Y- t: z                        part := @.transpOrder;
# z2 h( x+ R, `1 K( P                        part.move(@);-- load part
) C) \3 A4 t6 b( D% p                        @.CurrIcon := "load";
/ w- p7 ^# i9 T! y. q, {2 z                        GlobalDistObj := part.globDestination;
$ \( Z  I5 J, O# \& ~5 e                        assignLObj := rgmanager.rgAssignL;6 t, Q, }; G/ `
                        row := assignLObj.getRowNo(GlobalDistObj);
2 `8 k7 ^+ T! h, G2 F$ `" v                        if Row = -1 then -- since 70
3 q- V! n" x% w  [/ F                                if lan=1 then; f% _. f- _5 N" L" W
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) h$ p" H4 q5 j' j$ \' C
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 I6 W5 B1 `* K* T7 ]5 t7 q                                else
& y. W* B& l+ a, @" L( w                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, s6 S% d% J( v" J
                                                to_str("in docking station: \"",?.~.name,"\""));                               
: c: @# J4 @2 B+ N$ w                                end;9 q$ s1 ]+ u% S7 |7 h6 s, m! d
                        else
* {% z# L+ I1 D; R- `. e                                @.Destination := assignLObj[1,row];4 n& h. v! |$ t( y7 Z! D+ j
                        end;                        % e6 z! p- i1 S3 D% f% {& z9 Y+ I
                        newDirection(@);
* k. W1 k' C) S# G8 v                        @.HasOrder := true;/ n% X0 @; n7 B* z. Z& W5 }
                end;+ h5 J; w+ D: f
        end;
/ ^8 o! E5 O. I( s; s) tend;        -- of the method
3 [, l9 H! v" W. x  Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 S  g" X, O  [6 P4 A% L) a2 w: f7 U. V2 i4 [6 ]. D
这是AGV_putin中arrive的method。/ m8 X" \' i7 F- n5 p

/ |1 m$ e* V. T1 a8 l. g: D* {当到达物料速度越高时,这个报警更多,$ L- n1 h  _. T& |
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 \3 F$ _$ k5 b2 P- i: K& x1 |* l, ?
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
* I" ]" p/ p. X* r8 S% _7 k
- i5 T& ]- c( _/ b8 q另外一个小建议,就是move,所有的move都可以这样
" z0 G2 j" I& }6 h( E! Y  wif not move() then debug end/ I* Y& i9 @' y: B; i" N9 v+ a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! B. K% }8 D- ^& C3 D
plant simulation中的free libraries有AGV模板,7 w! Y& h# x$ W0 F. ^+ G0 g
里面也有案例。
0 k& h  U1 c$ f0 d( z( ^$ l# {我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 |" f1 B& y  J' M( S( P

3 l1 K+ i, s+ }+ _; _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ u4 s, l7 _) G# r: J3 t+ H# ]) J2 ?9 v0 J% r
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# h" b/ W' k5 ]1 V3 C% A8 }! U这是AGV_putin中arrive的method。# j" Z5 v6 D. z9 o& x- `0 x
) i8 i/ M1 ~! |) G8 {0 E$ y% Z
当到达物料速度越高时,这个报警更多,

6 j4 l4 l+ A( x5 O+ H另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-2 21:53 , Processed in 0.019295 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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