设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9898|回复: 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'
2 D  Y; z0 B9 j! ]( y/ i1 f. W/ T( S3 I*/
0 f. J, Y$ u- L1 a! @8 v: A" Lis
2 }9 w. r: l# u- K+ E- j- C/ W$ B4 B3 X5 K        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: w( H/ O/ j& W0 o8 T& tdo( J9 }% Z4 R& z
        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 }. v: Z1 l/ V. K4 `        if current = @.Destination -- else return
- J3 D1 {  D9 |* t+ J        then
- A. Z8 {( n3 K5 C' {                @.Destination := void;$ b: s  p$ r; `
                if @.occupied then
5 J$ z, n' M) h+ j# A# m3 s+ g                        part := @.cont;! D- O* P) w! _/ J6 ]& s
                        @.transpOrder := void;* ~0 f6 G8 `* `: A5 _+ v) P& M
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. S8 q) I! n/ {! P                                @,root.eventcontroller.simTime);
2 e7 n: H5 o$ ^- s1 i' o3 o7 J                        @.HasOrder := false;
8 [& o0 \6 W, L. y- D                        @.DrivingHome := true;
# V6 [* s. C- Y0 n7 z/ I7 [; t                        rgManager.tryToStartTransOrder;0 _; K; m$ ^& v/ D1 b1 @& w+ v2 `+ c1 W
                        if @.Destination = void
7 b3 [1 B2 G( C) g( L- P1 E                        then -- no transport order for vehicle @
& r. U, c0 ~! ?9 ]3 @+ S' E: T  I                                @.Destination :=3 U3 M0 d& p& @) A$ H* t
                                rgManager.nearestFreeStation(@,track.~);  w4 J1 ~) K: r' B
                                newDirection(@);   ' P% J8 P/ m+ ?$ `
                                if @.Destination /= void then
3 p) A0 g' Y  B( w( P( E8 N                                        @.Destination.NumReservation :=3 K( {0 M: L9 s, G( z! `+ B
                                        @.Destination.NumReservation + 1;& u7 ]/ [0 P: U( T
                                end;' J8 w$ O4 i/ y# n' o4 v
                                @.CurrIcon := "drivingHome";
/ Y* ?- c" Y/ f- o- j/ Z$ F3 ^                                @.DrivingHome := true;! u5 g" V% o) ~) f) A$ x
                        end;
. N% d' m  m* M9 `! N                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 a+ j4 L. u  H2 q: Z                        part := @.transpOrder;- f- k2 x/ B& S0 x
                        part.move(@);-- load part& @1 x: b1 U  K! e, x
                        @.CurrIcon := "load";
, [+ Y1 [5 m1 W4 W                        GlobalDistObj := part.globDestination;
0 y9 K% `* N& X/ A, A                        assignLObj := rgmanager.rgAssignL;
1 A+ _  ^8 T  a4 u6 i                        row := assignLObj.getRowNo(GlobalDistObj);' L9 u" O3 u" ?6 _! u8 Z: P: F
                        if Row = -1 then -- since 70- y8 u  q& p( z( ?. ~
                                if lan=1 then
$ T) L( k& _' Z5 F2 g                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," Q" t2 C' `: R+ A$ m3 |
                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 L* H% N7 `0 E/ y9 Y
                                else6 V, a5 ?. v) l
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 J: W) e+ s# d2 l/ }, C0 m. J, A$ H                                                to_str("in docking station: \"",?.~.name,"\""));                               
& @1 i( b/ k) w+ S3 }- M8 X/ x$ X/ n                                end;
* d7 T8 L, a; n& I                        else# H# ^( z5 c% |  L
                                @.Destination := assignLObj[1,row];) P( L" E4 X( |% ~8 ]. \; |
                        end;                       
, J4 U8 H3 a+ {$ W                        newDirection(@);
4 b0 H; L! W  h' m6 S) Q( w                        @.HasOrder := true;8 t5 ^  k8 B2 V0 p" M
                end;: E* l" D* o' v8 S6 b! u! P
        end;- \2 P$ w: a( y; a
end;        -- of the method+ B, q3 C7 \0 R( I
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! P" z& B6 ]5 F
0 U6 b3 T! h  q" _' d8 q这是AGV_putin中arrive的method。0 d4 S$ U2 M: W

# E+ f9 P1 L( j) u当到达物料速度越高时,这个报警更多,7 e, `3 \2 R5 d% I+ r4 Z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& Y* ?9 P8 {0 S; t- j, n
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ E9 L/ y7 i# r2 {( W" u/ G6 d

- s* Y( Q: g$ B1 f另外一个小建议,就是move,所有的move都可以这样% o' f& I2 d; A" [. H
if not move() then debug end+ w5 E$ a: y" C: B4 x; F1 r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ b9 W  d% }8 ~" ^/ S
plant simulation中的free libraries有AGV模板,
# _7 @8 p4 i7 h; F0 s# v- X里面也有案例。
5 J, r. N) Z3 X3 C/ ]我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! }1 e; q% B; N. n5 y) `$ [- I7 J- K  H: V# _: L( y8 Q" U1 E/ K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + S! l! N- l8 b9 d
- {; }' e1 q2 I
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " x! j5 x3 d% j  p- a  _4 t
这是AGV_putin中arrive的method。) {3 @* ]) X2 S5 @  b9 `
4 p; j; {. H3 _7 t, @% n0 N) C; _0 k+ d
当到达物料速度越高时,这个报警更多,
5 H" {" V! L# a7 @! f
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-1 09:36 , Processed in 0.020224 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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