设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6403|回复: 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'$ V: [. |, D/ D5 m/ ^  q
*/3 q" r; X2 X6 ^5 k
is
5 G) a, I& L# r" {        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 B. T+ b& {6 q, odo! ]3 ]. y# _4 |, P3 k
        Lan := rootfolder.Internal.Tools.AOLlanguage;" s7 z/ O1 J1 P
        if current = @.Destination -- else return
5 ~! q9 X# \' e- i! H1 y        then
4 y! o( `# _+ c! k9 l5 n2 `                @.Destination := void;6 x" i6 t7 O- w1 ?+ {% @( s: X
                if @.occupied then
$ V% ^; `- F1 P+ Y7 E9 Z                        part := @.cont;
0 u  w" L5 a9 R5 e% b                        @.transpOrder := void;# ]& {3 G* d9 Q1 _+ d# i  d
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ Y' }) y' P5 m8 _" i: ]" f6 ]
                                @,root.eventcontroller.simTime);
7 `# P+ P: V5 R                        @.HasOrder := false;
8 K/ V. X9 j* N                        @.DrivingHome := true;
, I% P# r( l6 L' f3 t' n; u# P                        rgManager.tryToStartTransOrder;
. Z7 V& Q2 l; b) Y/ T1 w                        if @.Destination = void
( {; B- c2 }* h% r                        then -- no transport order for vehicle @$ ^" [/ M: p9 R( A( u
                                @.Destination :=
) [, {3 T% U9 z$ H                                rgManager.nearestFreeStation(@,track.~);% t9 U  m4 T% \* i1 p0 ?
                                newDirection(@);   . z9 D5 N! d' K$ B4 t' i1 f
                                if @.Destination /= void then
3 M4 o% b& E' R                                        @.Destination.NumReservation :=- ]1 B0 t6 L/ w7 g  L# W) o3 c& c* B
                                        @.Destination.NumReservation + 1;
! i0 C! I$ F. q; A, t0 u, M7 k                                end;5 Q9 u; f5 D; f" V. @$ J
                                @.CurrIcon := "drivingHome";
" u: ^- {5 L2 X; w' J0 `, v/ P                                @.DrivingHome := true;
! F2 F+ P& B6 V                        end;
! a& X& Z( ]- g" C. @2 Z                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 f7 B8 u6 z# r& l* S) E- |  u$ i
                        part := @.transpOrder;
% A2 ~6 n5 w- @# o                        part.move(@);-- load part
3 y% I( s- F& K4 S1 m                        @.CurrIcon := "load";8 a. p4 l: n( v1 l7 Z% l  |
                        GlobalDistObj := part.globDestination;
/ V9 r- o" C0 }* c$ _9 T' N1 L                        assignLObj := rgmanager.rgAssignL;
2 \: G9 ^# ~  @# \6 P0 k: u                        row := assignLObj.getRowNo(GlobalDistObj);! }1 E+ B" ~  X5 ^  O
                        if Row = -1 then -- since 70) W% f, d0 G7 m! ]
                                if lan=1 then
% a8 D* u7 x: u8 ?5 q                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# F, J" [( f' M& R" |, X. u1 ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; C! o" D, g/ @% N                                else
; @" u% g" W. L# m                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; W0 g2 T8 R. X) |! S( Q6 w
                                                to_str("in docking station: \"",?.~.name,"\""));                                  A2 U5 X. e; a
                                end;
. D& ^8 W% g$ @                        else' T5 i+ W7 _0 W- \5 h8 B" h& C
                                @.Destination := assignLObj[1,row];. t8 ]& V. m1 q5 e
                        end;                       
$ f4 Z' a2 c) k) D2 |                        newDirection(@);
9 P  c# C! D# w* Q( ~                        @.HasOrder := true;
7 I* s" C% N5 l; _% N( ^+ t3 H                end;
1 s" |: P8 J% V" G* O# `2 j        end;
; V. i/ P' b1 J0 }, E9 O4 Uend;        -- of the method0 t3 a! n8 ?; X. Y8 J; V3 \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 V/ x- d* x) w- j# X/ @5 x6 D

* ]7 t$ E$ Q/ s# B2 f7 B1 T  E% f; X这是AGV_putin中arrive的method。
3 X" P! T! y. b3 h3 E" T% @7 t2 [* [
当到达物料速度越高时,这个报警更多,6 m) [9 x3 }: G/ k- F" G  d6 W$ n0 e' P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。% ]0 y. z% G4 h; O
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* L6 Q- E, X% {% ]+ P5 ~& K- A
; o  T" o* o: ]' d) A
另外一个小建议,就是move,所有的move都可以这样2 Z" V  x" P9 f  a$ K
if not move() then debug end8 I, t) j/ J3 d: B' D
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
6 I5 Y! D* A) o! p9 \# K. }. wplant simulation中的free libraries有AGV模板,, }. z5 v. y2 y0 C4 `
里面也有案例。/ @7 l, R3 \8 L
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 G3 k  A1 a6 ~' W% ~

/ L6 Q8 e9 b, y8 g0 m我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" ?) P4 {  w8 [( C
' u$ K) t0 I2 B" ~* [; Z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " {+ x; _( V8 i  W$ s7 a
这是AGV_putin中arrive的method。3 l+ H- L8 V* f9 M
0 B1 r1 T8 N. U  S9 f2 k  y: q6 f
当到达物料速度越高时,这个报警更多,

& B3 t% F( @  H( x) U) t! h+ s另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-4 20:30 , Processed in 0.902031 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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