设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7915|回复: 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'- j( J$ J' X* e) l. g) p) p% z
*/
; N; l+ [% X0 E8 H" |& Bis& t5 G$ Y$ [0 B/ u
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( W* Y1 ]) J* B# r$ G0 ~
do
. K: p* o2 J! p; |/ Z0 y' z: R        Lan := rootfolder.Internal.Tools.AOLlanguage;$ e0 H9 K/ h  V2 O- ]
        if current = @.Destination -- else return
+ U* ^/ e1 b+ P- V        then
- \% U: Y" H7 f4 l                @.Destination := void;# z/ z7 `, B- T6 E2 O0 S
                if @.occupied then- n, n9 p( b/ o+ e
                        part := @.cont;
) E0 X! n" x2 ?! P' f  \                        @.transpOrder := void;
4 J9 G# s( |! v$ u  c                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ C  y' y2 [2 J  [2 m8 d                                @,root.eventcontroller.simTime);3 |$ ?0 ~- @- p4 {( }
                        @.HasOrder := false;! u7 g: c# h) o+ g; w
                        @.DrivingHome := true;
% e6 N% X. |- B                        rgManager.tryToStartTransOrder;! L+ j8 {( l7 J
                        if @.Destination = void! ]' m) l! C& e3 h+ c& C4 u$ z  m, Y
                        then -- no transport order for vehicle @
$ {3 c7 @' ^+ z& {  u& Q6 s/ u                                @.Destination :=6 P# Y9 B7 |) U5 ^+ L
                                rgManager.nearestFreeStation(@,track.~);
: F, b3 u# W$ F/ \( `                                newDirection(@);   
) u0 t" J, }+ {" c1 i0 S                                if @.Destination /= void then3 q- F; P' j3 q- o
                                        @.Destination.NumReservation :=' \7 v4 l$ i7 k5 N
                                        @.Destination.NumReservation + 1;
# _: g, e" N4 z5 j2 @  ^0 _                                end;) t, r; j7 A8 ^) p% g
                                @.CurrIcon := "drivingHome";/ Y3 x- E/ _. Z" J4 f4 L; Q
                                @.DrivingHome := true;
$ {( T; y' W. A7 ^) F( Q5 `                        end;
: W. O- ], {  s4 l6 ~$ j! H2 _                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ y* d: W! b3 D/ M                        part := @.transpOrder;
. l8 `: |6 ]5 Z8 v1 v" u                        part.move(@);-- load part
0 ?) t6 Z$ J/ C9 V" `                        @.CurrIcon := "load";
- G! w3 r' w5 R* f6 f6 _$ V, I                        GlobalDistObj := part.globDestination;
% ^3 q" @3 Y8 s& \. O0 {4 t                        assignLObj := rgmanager.rgAssignL;
" n# F: d) K- J/ t  N/ T: N                        row := assignLObj.getRowNo(GlobalDistObj);# k3 _6 D# T: [! W  b
                        if Row = -1 then -- since 706 C7 \0 R* t7 w6 Z9 d5 p" C# W
                                if lan=1 then
( w2 X; t; r4 \0 ]1 Y# y  J                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; \2 ~3 z+ U1 l: O6 [5 K) E# @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. d% o/ M( ^7 e' @. {* |                                else
) W, p' z7 }% F9 N8 H" I                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 U6 T& c, e( E) @# b5 _' q1 I
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; r- U$ F; k; Y' o: h; t7 t' R& o                                end;+ C- f, e3 D9 i  l! I
                        else0 ?: Q, j+ R$ \0 G
                                @.Destination := assignLObj[1,row];/ G1 i6 F/ |" g0 F: |9 O
                        end;                       
$ R" M& J4 ~1 h- B# [) W                        newDirection(@);
" s& p- O1 \; o- ^( ]* Z# U. h                        @.HasOrder := true;3 ]4 h% Y; c  ^' u  T
                end;$ r9 Z- w  N6 B  }; b0 C$ P
        end;$ q4 Y4 u8 x1 k% G4 g( e" |# r: M
end;        -- of the method$ b& j' ?/ z; h, V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! b$ e( C3 t" O4 @# @7 u* u- e4 U! K
& X! P9 {4 V4 Z5 `, P这是AGV_putin中arrive的method。& h9 A, ]8 v  U
+ q# S8 j; [( s5 T1 z: i4 l
当到达物料速度越高时,这个报警更多,
( R( B) X# i$ r: F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! \8 m! ~* ^+ e3 ^  n- f. D
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 q+ E9 H# J) L) T3 E3 m

6 g5 ^/ d; i& r  N另外一个小建议,就是move,所有的move都可以这样
; X9 A) p- |& v( S( Y4 ]* cif not move() then debug end- z" l& e) T' P1 D; M1 V, J+ p2 j
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 i2 q# N  ~, E/ w
plant simulation中的free libraries有AGV模板,
6 r# J, S+ [3 `# b) e里面也有案例。
8 j1 }; O3 s/ [6 x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 C  L9 X9 o- G% N( V2 U& h% |0 K. h  F! C6 R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( l1 _; ?: B$ B

0 g2 p7 U, L: B* u那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 N( I, j% d! z$ C( m5 o* f这是AGV_putin中arrive的method。/ h- Z7 f0 P/ e% _. ^
8 ]1 l, u4 A! B; ~1 o+ ?* X7 P8 }2 \
当到达物料速度越高时,这个报警更多,

- t8 a0 {3 N: X另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-5 10:44 , Processed in 0.017807 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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