设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10298|回复: 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'
# q! ~8 O4 M: Y- e*/. j1 z- H/ F( }* f5 \7 h  l
is: C8 |; v8 o( }4 g/ A3 s2 w2 u
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" Y  w$ C' T2 _, g4 A3 E0 N$ g8 C
do
% H! v9 O' W4 p3 {        Lan := rootfolder.Internal.Tools.AOLlanguage;  D$ ^7 \8 N9 M5 ^9 j$ J
        if current = @.Destination -- else return& U5 @- h6 t8 Q5 m
        then
& i& d  M8 [$ m, c5 {                @.Destination := void;
+ \; p, z% Q9 B                if @.occupied then4 a1 Y5 [% C4 y" k) Z
                        part := @.cont;/ \$ I3 @5 }' a. M: z
                        @.transpOrder := void;, y; b, f% a) [' Y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; ~3 n" j  }! n
                                @,root.eventcontroller.simTime);; X% M- o8 O/ t: ^+ |
                        @.HasOrder := false;
. ~: n, Z' {3 t3 w                        @.DrivingHome := true;" ]" ~* K0 V3 x5 Q1 m8 i: \
                        rgManager.tryToStartTransOrder;
1 d5 G1 [0 T+ x, _7 x                        if @.Destination = void: U; v7 r% E8 L  L! U
                        then -- no transport order for vehicle @
& F1 a8 o9 E" k  [                                @.Destination :=
3 a6 b* b0 e6 [* U0 ~) h                                rgManager.nearestFreeStation(@,track.~);
8 d" m: z( s+ Y) M* G/ `- R3 F                                newDirection(@);   " z  A" G3 l: M( `: U
                                if @.Destination /= void then
4 _& o, m& Z& p4 u! e/ u' N                                        @.Destination.NumReservation :=1 D# K+ h; i" K/ `- ]
                                        @.Destination.NumReservation + 1;
+ Z; X3 {5 G* V: ^" I, r                                end;3 a! _  z8 z/ S% n  D
                                @.CurrIcon := "drivingHome";
" g) }' S6 U- p) [0 I- F                                @.DrivingHome := true;
( V) }4 [  l& |                        end;
2 V2 O1 S; z8 }: Z' Z  \9 w' }- h/ b  }                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! J2 |! Y& z. b6 }! ]" W                        part := @.transpOrder;
- w* `$ o! l* A& J( }, A" S# G& A                        part.move(@);-- load part2 k* |0 q/ h0 i2 T
                        @.CurrIcon := "load";8 E# k5 s$ |+ f: A/ S1 S
                        GlobalDistObj := part.globDestination;( z! a. U9 n" @
                        assignLObj := rgmanager.rgAssignL;# K" f; z0 `+ L
                        row := assignLObj.getRowNo(GlobalDistObj);( @1 N8 w' N+ q4 O& j/ l
                        if Row = -1 then -- since 70$ |( f+ A5 o- ?, Q9 R. o5 A
                                if lan=1 then5 h% C% Y9 C* M2 n. j% U5 P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! U- l: n% o! u" q, N                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 J6 d. p/ ^+ Q+ ]
                                else4 ^. O- k+ i7 C: u, I
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& e/ M7 P) a' n5 K: @2 T" l" h                                                to_str("in docking station: \"",?.~.name,"\""));                                5 s8 M' F' a8 ?1 S1 j5 H
                                end;( K; I4 S% G5 M* Q- R
                        else
3 A+ N" r' h2 V" x+ M' `                                @.Destination := assignLObj[1,row];0 O" c2 h6 U, P4 d. n( b, ?
                        end;                       
8 o4 ^7 `4 u% B( o8 S1 \                        newDirection(@);
& l. I* Z) |. D* A$ X                        @.HasOrder := true;# x( w6 }3 P- h( b) m  q) S
                end;  T$ a* S+ g/ H# u7 }/ ^. i
        end;5 J6 K$ H8 U8 r8 L/ ?- A
end;        -- of the method
" _* d5 [, X5 w5 D3 L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 k- ^: y" T5 h  E+ q

! D; G4 H% M  i( J' e这是AGV_putin中arrive的method。' c+ p( f: ]: [( i3 S3 _

' Z8 y4 W6 f6 V6 C当到达物料速度越高时,这个报警更多,1 n2 [* l/ V( t# G- z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: {' T$ n' {+ f7 D: t& [" }9 ]) c) q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 o  @# Y$ |9 ?, k

# {& e( o5 H( ^5 `7 X另外一个小建议,就是move,所有的move都可以这样, x& m; I5 \+ F& Y
if not move() then debug end
+ I$ v' {  q+ w# q8 R: r4 G* i7 H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 A( p" ?6 s( u. a( K1 z# pplant simulation中的free libraries有AGV模板,
. ]' `! ?+ r1 K5 N# E里面也有案例。
- R" O1 u2 c) \$ @+ n我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ o& b3 T: q; |6 }3 g# F& U" \4 S3 t
7 E2 g1 ^+ t7 D* n, C! R& v9 K
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; {1 }( q6 J/ x. Y( y! \, W; e  x& s1 p' z1 l; g" I! g2 H. h
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " w4 X  c  Q6 X
这是AGV_putin中arrive的method。
- l- Z$ y; F0 A1 z# s
- ~) T- B! U8 |当到达物料速度越高时,这个报警更多,
$ }% M2 t  ]! W/ G0 z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-25 12:39 , Processed in 0.984989 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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