设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7791|回复: 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 Q+ \1 r! O+ B  b% G6 v*/
# l; @: [7 ~. u; Pis
7 j8 \; ^( n3 |: }        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ m* {1 C  o3 m/ \* r
do
' M5 [% z2 s! I  D2 s  F  F        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 l  k# R& f! i/ ~        if current = @.Destination -- else return
: S  I  \% Z  L; L0 `& g3 F        then
1 Q& X# z2 g2 T( v3 g1 c                @.Destination := void;2 _+ `" D  X2 O: x/ j8 ~
                if @.occupied then
, V6 V9 W8 E6 [2 d, q# }                        part := @.cont;- @" c6 D7 R, C# j: q, G
                        @.transpOrder := void;. Q: z0 y3 M! o0 e
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* X% o! V6 n0 U- {4 G                                @,root.eventcontroller.simTime);
# ]8 T( h3 o7 g                        @.HasOrder := false;
1 t8 {1 U1 q% }! U( {( @: G+ s                        @.DrivingHome := true;3 N+ Q! f- c6 z
                        rgManager.tryToStartTransOrder;# e$ e0 J; S, z1 ^' \
                        if @.Destination = void
7 m* ~$ [* H, c3 D                        then -- no transport order for vehicle @
7 h) F5 v$ m* ]2 k                                @.Destination :=. U! |1 m7 I7 n) @! |, ?
                                rgManager.nearestFreeStation(@,track.~);
- r0 Y- v# y' O- @) m: e                                newDirection(@);   
' {/ H7 N  ?% k0 \  p" k                                if @.Destination /= void then* a: @# g3 `" A# {$ W! D# b
                                        @.Destination.NumReservation :=
% r" U( X) C. P" f; N9 s! j                                        @.Destination.NumReservation + 1;
6 C! W$ m) j3 j0 p2 i0 i8 e. D                                end;
7 a9 F) h- L- E' S5 {# {                                @.CurrIcon := "drivingHome";
* a, w$ o9 H6 J) Y* P: }5 V$ Z5 p                                @.DrivingHome := true;) H1 Q; Z& M5 l
                        end;
5 K+ w. o  h/ [- v                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& ?/ T3 p5 m7 y! `3 l  v4 ?* S
                        part := @.transpOrder;
4 J3 B& d; h1 x3 L                        part.move(@);-- load part  h* Z* r8 \8 q, e7 T
                        @.CurrIcon := "load";6 g8 {, R' E5 }( V. G2 \
                        GlobalDistObj := part.globDestination;, y, d- N% q+ F8 y7 [/ j1 D- x
                        assignLObj := rgmanager.rgAssignL;
' c! R1 i" f2 x3 b! ]: H& I; I                        row := assignLObj.getRowNo(GlobalDistObj);. O, U% c2 S% }6 l7 g
                        if Row = -1 then -- since 70
8 F8 a/ |- P( t* h+ e. K                                if lan=1 then  x4 ~/ E9 u' l8 ?& j* i
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# x) X) a9 ?2 h
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ x: H* x+ @1 ]' ^7 X                                else
8 k, `; p/ g" W8 d! ^                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 ~$ p, [/ K* f! V                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 ], F* }- f( v, v                                end;
% e7 V3 t8 V4 j1 V& H# M* Y                        else# w7 a  L- ~  s
                                @.Destination := assignLObj[1,row];
* W, |$ v) z  X- n  {- E- ^% t' R                        end;                       
. q4 v9 @( Q- ~9 a/ [. Z" |0 @$ ?                        newDirection(@);
6 {. q* M0 G4 e, V2 Q                        @.HasOrder := true;! d1 S3 J" Y( `/ b  r: \
                end;
8 ~( s5 a0 h  L$ }        end;
3 w& ]4 Y+ [+ |, z9 M0 Iend;        -- of the method
7 D) \! {. }/ M! m% J/ C4 u8 H
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , Z2 ^2 m# o& d$ p5 g/ u3 P- R

, V) u$ b% [2 b' i- P) U7 l这是AGV_putin中arrive的method。8 a" K, j8 i. }& g4 V

5 {4 v) a; J" [& y  p  ]+ G当到达物料速度越高时,这个报警更多,
+ }4 S8 z& `% q% j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! w+ t% u' f2 _9 b" B  N
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ F" `# r; ]% e+ ]4 Q: t2 ?  B5 z, c- Y* {1 J
另外一个小建议,就是move,所有的move都可以这样
+ F3 q3 z7 Q: ^& Uif not move() then debug end
* H+ R, C3 J7 K  X0 @; K- K* @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- i- c0 C6 ]/ a; dplant simulation中的free libraries有AGV模板,0 S4 c! ~. ^& |5 B: P# o4 Z
里面也有案例。" |1 [5 m3 q1 ?% q- J
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 d$ X0 h& L' y5 s' _

5 x0 R% `* [& y, ~0 _我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - W5 M5 r/ {, K! `+ ?  m

; I2 V7 C; O, A3 E那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; g" c/ U9 X1 `' Z/ R! ?% f这是AGV_putin中arrive的method。
( C1 P4 Z2 K$ u+ L$ h) B0 N
# S4 ], Q' \5 i% i当到达物料速度越高时,这个报警更多,

0 [. J8 ]! I( x另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-29 12:57 , Processed in 0.017868 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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