设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9177|回复: 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') A$ \6 P8 y, g
*/& r9 c5 n, ~6 P  f9 @, o
is
: O3 K, [" \6 f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 B5 M# g2 B9 n& X6 c) \! ~
do
2 I4 @  i# n* H: K        Lan := rootfolder.Internal.Tools.AOLlanguage;. q; P& R/ h4 Z+ i2 j$ C
        if current = @.Destination -- else return" r( x( }* ^( j% y9 l/ e0 h
        then
. A. `; g2 _5 V  P$ S) q                @.Destination := void;
* S3 P7 i8 C. D1 a* I                if @.occupied then! [! T7 Q( m: @
                        part := @.cont;+ \* S' k5 |: L2 }! p& C
                        @.transpOrder := void;  v  X: c" K: k  m) C
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 y1 Q' T; B0 K                                @,root.eventcontroller.simTime);) h% s" ^1 o  L6 M1 a+ V( \
                        @.HasOrder := false;
" i! Q5 z; m6 C" Q8 H* s                        @.DrivingHome := true;6 }) [' O  ]' M7 x% W( S
                        rgManager.tryToStartTransOrder;
2 p1 D- J6 ]- \3 E. u                        if @.Destination = void
' g5 |* s1 O/ C4 j2 [                        then -- no transport order for vehicle @: ]4 B! p8 J* }
                                @.Destination :=6 q1 i4 r; [/ r
                                rgManager.nearestFreeStation(@,track.~);
7 z* ?' e1 M; k3 {( `1 {6 f                                newDirection(@);   3 _( r" W% n2 A7 s) c
                                if @.Destination /= void then& y6 F0 `  E2 _
                                        @.Destination.NumReservation :=( c3 t" ~! Z6 T* o
                                        @.Destination.NumReservation + 1;- s3 E  j3 s" h" \. C
                                end;
7 [: @' ~4 v& y! t7 Y! A$ K5 j/ P                                @.CurrIcon := "drivingHome";7 {+ D" G/ S1 c8 d
                                @.DrivingHome := true;
  t+ o* M7 }" m! Z4 g                        end;7 I7 B, G5 O. ~  _4 P+ ?2 y" D
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station, i7 s6 L( k6 x. T; y6 U9 O; E
                        part := @.transpOrder;0 [9 d$ V. e" d! v
                        part.move(@);-- load part2 o5 x6 u: L+ C: ~3 P! F
                        @.CurrIcon := "load";3 J5 t) G% Q% @% h
                        GlobalDistObj := part.globDestination;3 O0 Y) w3 M4 z, X  z0 }0 g
                        assignLObj := rgmanager.rgAssignL;5 ^2 b3 F  L2 b: o
                        row := assignLObj.getRowNo(GlobalDistObj);
9 _- q4 D5 ~, P; n  i* N" @  h                        if Row = -1 then -- since 70
; ]1 A4 V$ w6 `  w                                if lan=1 then4 x5 U7 U2 u& e# E& P$ m
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," @  |. i& i/ e, V! ], s
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' e' K2 b0 a  j; X3 Y                                else0 ^2 N# ^! @) F& T" A/ E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," m3 P& z0 s( j0 E
                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 t# ~' z2 x) T$ O+ w                                end;
1 ^# y5 M4 k+ a7 Z0 z                        else& T) R3 H" D) t& M+ X
                                @.Destination := assignLObj[1,row];
: K9 _3 r' z: S* [% H$ k8 Z                        end;                       
) p& T" Q: ~& o0 f& j                        newDirection(@);
* R! A) n* o2 t$ j                        @.HasOrder := true;+ p3 [7 }8 o/ n2 e) B
                end;
, ]* e8 t: B  Z: J        end;( n8 S6 W4 p  o/ o( H
end;        -- of the method0 N1 I5 ^2 u$ J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: r7 c' c/ m5 F# d
6 m0 V+ K6 a7 x" Y这是AGV_putin中arrive的method。
6 N  c4 a' m! G% z6 k9 w9 O1 ~) P) d- e, s$ N3 n2 [
当到达物料速度越高时,这个报警更多,
0 @1 G- C/ u( G( }) d1 Y2 k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) }: `% U5 u# Y$ f7 Z( n
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( [& P9 }/ p8 K5 w) c0 A! B

4 p8 N1 h1 `, @; v另外一个小建议,就是move,所有的move都可以这样9 k9 [. J. K- D% I+ K, x2 D* l& E
if not move() then debug end
$ G9 v+ Y1 K' ]这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ ]* i; y" @- G) |( o& D- k( O* A, m
plant simulation中的free libraries有AGV模板,2 X) \$ B; s6 B3 p7 B
里面也有案例。$ M; f, y, H. ~
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。" s% I" B. S8 @9 k% ]0 P
& B: f- k' |0 u' x5 M5 `6 ]7 X7 [
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" H( l; [' n  Q! a0 }& p5 @# L' O( C( s9 L* W7 ^! f( H
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 & r( \+ R4 k' K
这是AGV_putin中arrive的method。6 X* {$ F3 i' h# m/ I' ~

5 O' Y5 H. q2 n* M/ v+ U2 o当到达物料速度越高时,这个报警更多,

+ k5 L7 T$ d3 j' D; c另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-18 04:42 , Processed in 0.016640 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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