设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7051|回复: 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'
$ M  q9 `# W9 X5 m: P6 }*/
( _6 T  @: I. y& Q9 u+ O1 r/ Ris/ d  k/ N2 z* c  f  k7 e
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 s, k& }% x0 ?/ o7 Y$ rdo* L/ l& S0 i7 H- ]# O6 F
        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ @! k1 @- O& ]2 A; u        if current = @.Destination -- else return
/ W  P7 d( a$ O9 ?6 L3 A        then1 q; G2 N# A0 m0 ~/ R
                @.Destination := void;! f/ O, `1 C$ f
                if @.occupied then
* P( L  J; \0 J; N1 m0 C7 [                        part := @.cont;
3 t* p; X0 f- h$ {8 o6 B/ Y* g                        @.transpOrder := void;4 ]; @+ i( _; a3 [  h+ I7 ^
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: h8 P6 ]9 i9 ?5 ^4 r! h  K                                @,root.eventcontroller.simTime);
5 g; U. [6 H. v! `5 {                        @.HasOrder := false;
7 |; J2 g) o3 x( j                        @.DrivingHome := true;& f: i/ i7 q, ]* C) E* j
                        rgManager.tryToStartTransOrder;
5 k: I0 }3 H8 K* E& {                        if @.Destination = void
) G% U. J2 \: N; @8 m- t% }                        then -- no transport order for vehicle @
& ~0 |/ w. I2 ^: |8 I. I: q8 M) r                                @.Destination :=
. z/ C& w( @  M; ]' I* V0 b                                rgManager.nearestFreeStation(@,track.~);
- z7 a+ a: l1 k* O. p4 @/ Z                                newDirection(@);   ; G6 X/ J$ [1 f1 s4 v6 ~" V
                                if @.Destination /= void then2 S5 ]' u, Z3 F8 u" P3 o6 p  }! z1 _
                                        @.Destination.NumReservation :=
; h/ e5 O5 v+ J$ u5 t                                        @.Destination.NumReservation + 1;+ l& \" v1 |: ]: h/ O2 C1 Y. d
                                end;) [+ @# L% V% }9 H
                                @.CurrIcon := "drivingHome";5 a: C$ y$ \) o8 z( d
                                @.DrivingHome := true;$ }* z# a8 g; S3 X/ P
                        end;
( y+ o. v- C8 E; |                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; M$ a& e5 T4 ~; r3 X  X                        part := @.transpOrder;
/ B) e% H6 D+ E/ g" J* x, o                        part.move(@);-- load part
4 |" M" u* R5 @/ L                        @.CurrIcon := "load";" f# e/ }, [; F, |: I: T
                        GlobalDistObj := part.globDestination;
( O! Z  r  z: E+ {# M1 O                        assignLObj := rgmanager.rgAssignL;
0 {* n) S6 \7 h% i                        row := assignLObj.getRowNo(GlobalDistObj);- \8 c; v0 M: H7 d. \7 V
                        if Row = -1 then -- since 70
% |  q4 w! a  h7 |2 O                                if lan=1 then- T- v2 w1 c" A0 ~
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: O2 c, l8 `  j; e$ B                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) c: o  J" y9 Z: k9 j& i3 U                                else/ Y/ v9 s. m" p  Q6 Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  v( p* E: S% [2 o3 h0 N                                                to_str("in docking station: \"",?.~.name,"\""));                               
; o' K+ P8 y2 [) N+ v. h5 T                                end;5 o; V6 [$ @: k0 i$ j) l9 I
                        else
! h9 W0 l) x$ [' j6 Q, u5 k! L                                @.Destination := assignLObj[1,row];
# u: s# ?& o, a* i# d3 r! A. A# V) l4 W6 T                        end;                        8 C4 L6 ^- M& q: E3 e  x
                        newDirection(@);
+ G" M- @5 b- Z* k5 ^                        @.HasOrder := true;
! G5 B( ~2 G& o0 t. U4 }/ e$ o0 k                end;
' ]5 z& F  g0 N        end;
& X& d! [% C! L) ]) _- Q: |7 b/ kend;        -- of the method% r; n, ?  [/ ~- |5 S& Z$ d
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( Z8 L7 A% Y4 m  c, T: l; i" E: ~/ u! R  B; v7 j
这是AGV_putin中arrive的method。
2 T: w, t3 {7 u6 A
( |0 F8 ~( A7 p( x; r- G/ d/ {当到达物料速度越高时,这个报警更多,) y5 Z6 h0 B2 q* {0 D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ g# `2 I' Y3 h  O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ ^& o  f9 k" n/ Z; \7 o. {/ {0 O
另外一个小建议,就是move,所有的move都可以这样
2 a* S* a0 M6 K" W3 lif not move() then debug end
8 x" \8 a* r0 l6 c这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 q7 @3 j' q+ ~! v+ Wplant simulation中的free libraries有AGV模板,
  _0 d% J7 a! @8 p5 ^里面也有案例。
% `) t  A1 {2 x- V我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* ^8 J8 g6 |, g( [9 @6 ~2 e
% `! u6 Z1 G7 B# c
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 ~: H' |7 ~, B% O5 v; D* R
3 q* W( @+ l0 c' V0 L6 R& p
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 y3 Y: O* [" }3 @/ G" \" }, T
这是AGV_putin中arrive的method。$ E7 Z" ^4 v* x4 G! _) ?3 l  [' Y

  [" P7 h/ [, D9 i当到达物料速度越高时,这个报警更多,

5 }: T" u6 Z! A, H另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-13 12:34 , Processed in 0.016656 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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