设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9784|回复: 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'
  y5 ?" f' Y8 M3 V1 N+ g  T/ ^" M*/
, ]3 e/ M; J9 j5 X/ t$ `6 Zis
) i" D1 ]1 X9 ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; S7 y/ d7 k* N5 I5 [do
9 A: d* m! D+ L: n        Lan := rootfolder.Internal.Tools.AOLlanguage;9 t; v2 A+ p/ p1 b8 o0 \/ T
        if current = @.Destination -- else return. l3 g' C, c. d: W
        then
7 X5 N4 X: q  c8 a                @.Destination := void;
+ ^$ F2 g2 j' P3 T3 d2 u                if @.occupied then0 b7 ]+ l& o  Y6 ^
                        part := @.cont;
9 u* \3 G( f- R/ V! F1 @                        @.transpOrder := void;5 R" z+ y* z7 M8 S  J
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 p) A0 Q3 h% R7 L                                @,root.eventcontroller.simTime);+ l, @$ X, T. m
                        @.HasOrder := false;
8 C6 u$ [0 M1 |                        @.DrivingHome := true;# u( ^2 s' \# g! P: x
                        rgManager.tryToStartTransOrder;
, V, F7 w. ~4 P4 O& n                        if @.Destination = void+ v  p, x$ {) e/ ?+ G9 m
                        then -- no transport order for vehicle @
( L7 q+ e" n. r1 K                                @.Destination :=1 q6 E4 M- M' ]5 Y$ |- N4 z
                                rgManager.nearestFreeStation(@,track.~);
3 D0 u* O) b9 ]4 I" X                                newDirection(@);   
# Q$ Y* L9 A3 q7 J& M: c3 O                                if @.Destination /= void then
( s* e3 T' n" N, C                                        @.Destination.NumReservation :=* U" M5 s: x( z! d0 \
                                        @.Destination.NumReservation + 1;
. y  c4 U, I) F0 N1 L4 \                                end;
3 O) U( {* x% e6 M; t5 H( f% E                                @.CurrIcon := "drivingHome";
% X+ ?2 x6 a+ p0 Y8 ^( r7 V. p% q                                @.DrivingHome := true;
2 N% C' F: H6 u                        end;
1 Y# E0 g6 E" X/ |1 W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" T) |3 v2 E; V: v
                        part := @.transpOrder;
- M/ W! z, u6 K  z                        part.move(@);-- load part
, b' Y! n+ A, H                        @.CurrIcon := "load";: K& p' R1 J0 ~* T/ y
                        GlobalDistObj := part.globDestination;
% b5 m/ ^/ R% p! K                        assignLObj := rgmanager.rgAssignL;
: b/ x' v1 R5 R8 l* T4 X2 p  g; D                        row := assignLObj.getRowNo(GlobalDistObj);
: L9 Z5 ]) H& N4 k                        if Row = -1 then -- since 70
  K" P& H6 i+ w" I0 g% |: ?                                if lan=1 then
+ i$ p+ Z8 e8 o4 g                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& \7 V6 |# T- j5 ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));& K# ?$ L4 ]1 @% ^. x) \& |
                                else, C3 n( z1 e" ?) ?( }) S8 Y. r, z/ [
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 O/ J0 }) Q1 S+ y, B. M
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 \4 @" U. l6 j. Z                                end;* i% L  H3 j3 a, q+ o8 V8 ~
                        else
$ z" M  ~& O) Z- [. f) t0 X- l                                @.Destination := assignLObj[1,row];
. k! S$ S+ A! Y; S* `" i! k( c                        end;                       
  I) j6 G: V* c  ^2 T                        newDirection(@);' P6 Y4 ]- L3 u. k+ y% A8 v
                        @.HasOrder := true;
7 j7 q2 W$ ~! q5 `& g$ \2 o                end;
! ~0 T3 @2 n2 E  z. V' K        end;
3 a. r3 z1 z: `  dend;        -- of the method6 c0 C( g' d/ N1 d5 }4 N$ |: Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; b; n  Z6 C: g) K

6 U7 h1 N* |) f. A2 s+ x& m这是AGV_putin中arrive的method。
1 e  |2 b/ H, k9 F
% Q" U' P2 n3 t8 K3 S当到达物料速度越高时,这个报警更多,% E" S% P4 u- i1 R# t
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 P' Q: q$ _+ f2 ^1 g4 M+ L2 J程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, n" Q  h- G' Y7 k9 ^, m/ Z
7 ~- [! V6 e! }) m2 }另外一个小建议,就是move,所有的move都可以这样2 G) y$ X0 y) l  w* a
if not move() then debug end
% f1 `2 F; u- ?( b# W1 L! F这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. t$ c: I- R! Vplant simulation中的free libraries有AGV模板,
5 ^& E- k) O5 l' e! y& A  Y里面也有案例。. X% l, [1 H* _
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& \" a/ A( ]( y7 S5 b
& ]# b5 D- Q. E2 i4 w* X
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' B; W4 O% c$ S5 r) N
: b' O# K, W8 q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& S' p+ l6 M# C7 D% r) x这是AGV_putin中arrive的method。
9 u% W' m# q% T2 _  F
! ^2 [3 i! F& ]& n/ _当到达物料速度越高时,这个报警更多,
6 E! W6 w8 w6 y, a" w. n( ~
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-24 22:37 , Processed in 0.022537 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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