设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5954|回复: 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'9 C2 x2 g) }7 ?$ T9 J
*/
* L& ], n7 R% @' A8 M8 Yis  u. [) p) a2 |9 T
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 \: f, ]3 j6 g3 T7 {
do0 j7 p) N; w8 ^4 D5 V. O/ l4 p
        Lan := rootfolder.Internal.Tools.AOLlanguage;; }( k* i2 x) L1 Q4 F$ R* S
        if current = @.Destination -- else return
3 W& t+ i9 z* l- J* V        then
8 l# i: i, U- d8 }" c                @.Destination := void;
6 y/ r3 R' I$ V0 H                if @.occupied then/ c- w; b; {  D' {
                        part := @.cont;
# ]  U' G2 q0 X0 _8 X+ e# W% A$ [' M                        @.transpOrder := void;
& W0 j2 Z8 P( \, X+ H2 _, B                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ r5 j, e& c- x% a1 ~                                @,root.eventcontroller.simTime);1 h4 ~2 }- O( y7 D2 F) Y4 T
                        @.HasOrder := false;& o6 r$ Z5 E" N& m1 F2 d" A6 D1 f
                        @.DrivingHome := true;  g/ x9 {6 G. ?
                        rgManager.tryToStartTransOrder;* D5 P4 G: S: T5 w/ b$ ]
                        if @.Destination = void# W, ~1 G6 ^! s. q& [
                        then -- no transport order for vehicle @
; Y: `$ ^- ~$ k9 v2 W' W. ^                                @.Destination :=* ~6 l) j/ N0 \) K
                                rgManager.nearestFreeStation(@,track.~);
  t& A& T! b* T" A3 s3 M; S% L                                newDirection(@);   / h2 w- k4 \9 I
                                if @.Destination /= void then
& Z6 j6 n5 Y8 |6 ]6 B0 R                                        @.Destination.NumReservation :=
6 f7 m% @- ~$ E7 |                                        @.Destination.NumReservation + 1;' p% w# k8 d+ l! r+ Q& I# _  G
                                end;
) n7 _7 O( N1 x2 i$ w* ]                                @.CurrIcon := "drivingHome";
1 O* a& J7 f" k; P                                @.DrivingHome := true;5 ?* r5 y' Y! o$ J' G% ~
                        end;+ K, A: s4 J% d" b  d$ J( U. m
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# }1 X. i8 w' N: w: B' a& `
                        part := @.transpOrder;
9 M, q% W' f' ?: N! V9 P( _* z0 K; i                        part.move(@);-- load part
+ ]  r& q* `1 S7 t% U/ d                        @.CurrIcon := "load";
$ a: O  P2 @2 t: s8 g* f% C- a                        GlobalDistObj := part.globDestination;7 K3 k) U, M, }& i
                        assignLObj := rgmanager.rgAssignL;5 W5 F: G0 l8 [7 Z0 u
                        row := assignLObj.getRowNo(GlobalDistObj);
% T+ M. s2 g) w' ?                        if Row = -1 then -- since 70% i- a- w- m6 b: d4 e5 S2 P/ o
                                if lan=1 then
: b- w) b( }7 c; l4 e& j                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; ^, b; o! K- j% S) Y7 J' w( j2 I' B
                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 t! z" b, H- ^2 f( O, H+ X2 K
                                else$ Z: D# I2 ]' }, d2 m1 v' G
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: s  g5 E# h5 g: o                                                to_str("in docking station: \"",?.~.name,"\""));                                5 y7 l& a7 i* J7 {3 ]0 C) V
                                end;% }8 z- H; `! [$ g0 g7 T
                        else
0 V( R" m/ o( M! I# n1 `                                @.Destination := assignLObj[1,row];
5 v/ W/ U8 r6 }8 I                        end;                       
/ _) ?! \* p9 I8 F, S                        newDirection(@);
9 `" ]$ {7 T, y9 ^3 P+ [                        @.HasOrder := true;2 ^1 F6 O! s# P
                end;
9 {( A: c3 [+ }* d2 ~5 C+ X        end;
% I% v- f2 N& P9 |; q1 Gend;        -- of the method
- ?. u: P& @+ }
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 * l( a+ z' U: k, A( W

1 x7 U9 \; G1 X; ]  ~这是AGV_putin中arrive的method。$ W: T7 j) N. O' Z

/ e0 s6 w: q* _% n8 G当到达物料速度越高时,这个报警更多,
# t" v8 F3 g9 _; _# x- f3 _可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 R. W2 {1 O9 |0 y# U
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ p/ ?, c( t+ _8 x- E: t* F% L' K% r/ J* x; D/ x4 ]
另外一个小建议,就是move,所有的move都可以这样# q! M9 N  f1 o$ y8 K$ p9 z. O
if not move() then debug end2 l, v6 A6 q& A$ Y7 A" T! k3 S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。8 A1 I0 a- {/ q: l  X
plant simulation中的free libraries有AGV模板,
" K! O" g% [( n里面也有案例。
: h: y) V& [7 N( q我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# |; o9 ~& W* K# h  d! m) I

  ~: w# s8 A8 w* p我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : \+ Z$ k9 H9 ]
" j0 k/ i1 W! I! \) e3 `3 k8 C
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * w# y& [9 B5 N6 H
这是AGV_putin中arrive的method。
9 N3 x( L, C: D  y/ X; X6 C: i
2 n9 \, k% S5 A9 T/ T) C" J当到达物料速度越高时,这个报警更多,
  t. e- T4 D8 b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-7 15:33 , Processed in 0.025573 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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