设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8994|回复: 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'
* t6 p! E( h0 H( p*/
# H/ U; G2 [' X2 [  B9 Kis
8 R, l# i# F+ P2 C. G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 u) o: S3 H2 y& [# r/ p& Wdo" N/ O8 O' Z/ H& T6 P6 p
        Lan := rootfolder.Internal.Tools.AOLlanguage;
: y5 W; q6 k6 Y. ?, T4 U1 Y        if current = @.Destination -- else return7 \) T! N, i% ]/ I: b; t9 l
        then5 P0 `0 v# Z0 C: x
                @.Destination := void;
, j, w( ?" C2 l: C) X8 U7 @1 P                if @.occupied then7 e$ ~8 }, G, K7 M
                        part := @.cont;* x, ?2 b! V& D0 m
                        @.transpOrder := void;9 B0 e$ F+ O  V( m
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- f0 A& [8 t2 r: u: ?& C9 Z, _( M  |
                                @,root.eventcontroller.simTime);
9 J9 s2 T- b  V! O( e% e" h' w- [0 A                        @.HasOrder := false;
# A. [3 Y  f0 E5 Z2 U4 h. m! G/ o                        @.DrivingHome := true;
8 i! b1 Q- r+ ~3 a: l                        rgManager.tryToStartTransOrder;3 n" h4 E/ O6 r
                        if @.Destination = void. `' ^  r1 T3 ~: w5 a
                        then -- no transport order for vehicle @& k* R! _, y% M& m
                                @.Destination :=$ {$ {3 C' ~9 A& a+ N  l4 k1 |
                                rgManager.nearestFreeStation(@,track.~);. H, a$ x, a4 G( K2 G% m# P! J
                                newDirection(@);   ; L' V* T1 x2 F9 {9 m3 t, H
                                if @.Destination /= void then+ \$ K: T1 u$ r$ U
                                        @.Destination.NumReservation :=
- T( ~# j! f$ l* O1 r                                        @.Destination.NumReservation + 1;
; h" w; g* P; g* [1 J                                end;3 Z' y1 X2 m' K1 p- e
                                @.CurrIcon := "drivingHome";* {9 N5 d& a0 @# {( V
                                @.DrivingHome := true;$ j  P; m9 T$ }# Q, X
                        end;# Z5 B4 h/ J) @/ b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) F* k, z+ c  W$ l
                        part := @.transpOrder;, v/ u7 b8 q& a( V" U, ^) v( w, d
                        part.move(@);-- load part+ A" y$ a' {2 G6 C$ |) P/ M- c
                        @.CurrIcon := "load";6 f8 ~6 x3 G- t3 v$ O3 o
                        GlobalDistObj := part.globDestination;4 K2 Y$ F2 Z7 [9 Y, E7 V
                        assignLObj := rgmanager.rgAssignL;- @8 a: D6 B4 @4 G/ e3 f) p
                        row := assignLObj.getRowNo(GlobalDistObj);
/ _5 S, k1 }" B, Z' Q                        if Row = -1 then -- since 70
2 F8 N% t8 T6 ~1 M: Q                                if lan=1 then& z8 \  T8 y4 Y9 H+ u* a  w( t  {
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- G; Z" @" W- C& C                                                to_str("in der Andockstation: \"",?.~.name,"\""));& ~2 y1 p  @8 q( [2 l" @" e
                                else
2 M5 r+ @& ?- Y  ], X                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 a7 j/ O6 U; O( j' F, o                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 v# \& |  w  s/ F& N                                end;
- I( J2 ~/ E$ S0 n2 m1 ]                        else
5 U7 \9 G1 T2 J' N* B9 K                                @.Destination := assignLObj[1,row];6 L" _- F7 A; g, R
                        end;                       
% ]& L* O4 @3 S1 X# E$ y                        newDirection(@);8 J, y: L+ X3 d3 [/ P4 Z  s2 \7 N
                        @.HasOrder := true;
9 ~6 X* k  R- w' u                end;6 ]" k  G. ^% c# I! _
        end;' s# d/ M4 |' f9 o4 C9 d& n. b
end;        -- of the method; V, ~- g1 G& {1 I) _3 f+ M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 w% r* n6 @+ X# k. a) N6 ?: k7 m1 [$ `1 I
这是AGV_putin中arrive的method。
- s2 U5 `) x) M* w- }; m0 x8 y& z
* f6 Q" M% Z$ E* K$ c) ^8 ^当到达物料速度越高时,这个报警更多,
) f4 R% M9 s. I+ t& }! M. s可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" K3 N; q; {3 P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; E7 t' t6 H/ |0 m$ Y7 i5 G; C. K
, p1 ^* ]' p/ X7 ~6 S7 k! {$ M/ L
另外一个小建议,就是move,所有的move都可以这样% ]& b. x! f$ ]% G: J0 a  M& J( w
if not move() then debug end5 B7 `% p( A: Z" z7 W0 B
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 u! E- @% O3 Yplant simulation中的free libraries有AGV模板,
  X$ Y7 Y4 T7 J- S里面也有案例。
+ H$ T; s3 R0 v3 z$ ]我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; g. m# k9 ]  A  [
% x! @& R9 N8 n/ w: `
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. i0 w" U+ v/ S9 Q
5 @! H- L$ u, Z$ X那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' d0 n- \# ~" t9 A
这是AGV_putin中arrive的method。
* m' @/ m+ F% j* N! ~1 r* ~% T7 R0 s0 `& O& D1 J, p9 }
当到达物料速度越高时,这个报警更多,

1 U" F6 I2 a; `8 G& t另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-8 03:16 , Processed in 0.015638 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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