设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8006|回复: 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'1 F# N- c( J* K' Z' U- w
*/) K; E( ]1 T# N" d7 Y
is3 d: @( ^/ r% o2 l" q$ \
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 V0 k# g* C) E8 z8 C
do/ k! @) v5 r/ L/ C( p) @
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 N  @, @' D! Y8 l5 ?( u3 r) A
        if current = @.Destination -- else return
: F3 p: b+ e* P" Z" @- L- M        then0 \& {( h1 D/ s. h6 x3 [
                @.Destination := void;
2 N+ n* Y( l$ e  J* {                if @.occupied then
# w5 K+ N. Y  o7 I& L: o                        part := @.cont;
4 P9 r0 o& W; }' j# ~                        @.transpOrder := void;* R: W7 v& @4 ~: j
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' V: T# z" e) s
                                @,root.eventcontroller.simTime);0 u4 _' M7 I3 Y) V+ P* O
                        @.HasOrder := false;
1 {6 d6 O3 P7 a- }! _# U2 j6 e) B4 m                        @.DrivingHome := true;+ b* {6 m% D! q" u# Q+ t* m- E, B
                        rgManager.tryToStartTransOrder;+ h: ]7 h& }5 L% @2 Q- U2 c
                        if @.Destination = void! e# @6 t" A3 ]" e  Y0 `) I
                        then -- no transport order for vehicle @
$ I, S8 c$ v1 r# @$ i                                @.Destination :=
; s! t& B9 B7 G. ], k                                rgManager.nearestFreeStation(@,track.~);
0 m) u; z) y* m) [/ o  x' a                                newDirection(@);   * m9 K, l6 j$ [- ^6 L" C( \5 b
                                if @.Destination /= void then  E2 |4 `: [( i
                                        @.Destination.NumReservation :=% i4 R, K4 O& [. x
                                        @.Destination.NumReservation + 1;7 ^+ M  m8 s, [# a2 {
                                end;# T% `7 J3 O0 a# E
                                @.CurrIcon := "drivingHome";
) Z/ @' n- O( m! z7 W) O                                @.DrivingHome := true;# S1 E# K! O( i1 X- t
                        end;
) {: ], }, B8 {3 Y  E3 Y' g+ \4 n, k                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 E" v" [; B0 p8 o1 k0 d
                        part := @.transpOrder;- n) R  O/ ~' `! D4 a1 U# e0 I
                        part.move(@);-- load part
2 u/ ]% H3 S7 A4 n3 y4 F                        @.CurrIcon := "load";
6 {- w3 S$ C6 N& ]  G                        GlobalDistObj := part.globDestination;
4 m6 L, F2 A# ^: o% F% t+ P$ E                        assignLObj := rgmanager.rgAssignL;8 K8 \7 K% u% w3 u5 L( Z
                        row := assignLObj.getRowNo(GlobalDistObj);5 ?7 l" A! |0 n% h8 k
                        if Row = -1 then -- since 70
" l- l: g/ n5 ]* |0 T$ u7 l6 @6 x                                if lan=1 then: ]% U. s) t- f" b3 o' h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 ~/ h  I% T) U2 F; c$ {' l
                                                to_str("in der Andockstation: \"",?.~.name,"\""));& |& z% g! f& J* f4 ~" O6 {- D
                                else& _* d# M( d1 Y6 n2 U, P# p
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 y, {5 J2 S' B: k                                                to_str("in docking station: \"",?.~.name,"\""));                                ! ~3 R" |# c" K9 S1 \7 Z
                                end;+ I% r9 y3 p/ N* I! k
                        else' B2 K9 F$ a0 D7 g1 y
                                @.Destination := assignLObj[1,row];$ m5 A' v! f1 }. q. C- s' V
                        end;                       
" ^+ g6 J4 y) r/ T, H                        newDirection(@);. ^4 Q* }. S1 Y) Z9 \
                        @.HasOrder := true;
. S( c7 ~- B( L% x+ }! X                end;
. W2 ^8 a' j6 K, `" Y' `* F' s' \        end;
6 x4 P, d/ @* p0 U- I: [' L4 fend;        -- of the method
5 w; ]$ V1 ]* C" y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " T3 u" @  X+ T7 A- g
) y6 t0 p- _6 |' d: L
这是AGV_putin中arrive的method。6 O$ O5 h! z2 C/ L% }$ K$ k- i

# G; a% j! U. I3 _当到达物料速度越高时,这个报警更多,
8 ^0 D/ @- l; R" A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。$ p3 [2 }+ N. `! w3 z2 g! V) ?
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 p6 I/ V# |5 U! L, S$ l) J" G' b3 p$ j+ a0 d, l5 S0 T; O
另外一个小建议,就是move,所有的move都可以这样
# t4 K# H# g5 T4 ?4 t8 Nif not move() then debug end6 ^- `+ W# A0 _" \6 T" b
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, K+ \( F; S; l9 s
plant simulation中的free libraries有AGV模板,  M% D. }7 _1 X* y* ~2 D  a
里面也有案例。7 g. u% S( f: K9 }; I) T0 V$ t) z6 }
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 M8 Z. l( Q9 \8 a
( _# ^4 |+ L$ A. C% O我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 & C$ H6 _- F" s. b8 e; ~, I

) i+ I# v$ M! K4 C那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ( ?/ c8 ~+ c1 X$ g2 a
这是AGV_putin中arrive的method。
& D5 J" q) b! u
, N- d  P" |! w- c- L当到达物料速度越高时,这个报警更多,
# j7 v/ P( a  f% K8 Q! e- R5 j
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-10 17:40 , Processed in 0.017995 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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