设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6271|回复: 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'
% g1 G7 h$ X- h0 v7 K*/
& g  v& i: b) J" o! z- Y0 Gis
9 z* r  u: O4 \+ Z" U, g& B  ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: V4 z. g+ ?8 y- S) r8 N
do
) J5 k6 p: ?+ ]' L) |7 n4 H. Q; l6 J        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 L; T* D3 M3 \  B        if current = @.Destination -- else return. c( J! Z3 H$ F" G
        then( [* L; A6 g% ?6 R
                @.Destination := void;) j$ a" N; Z, T% ]6 E  J5 q9 J
                if @.occupied then
' E+ p! z2 D2 |0 i4 K                        part := @.cont;. u; B) M* T$ X$ x
                        @.transpOrder := void;
' B8 S( ~& X3 |! e. f* F8 u                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" v0 Z" X: U4 m                                @,root.eventcontroller.simTime);
3 @, U5 S7 o0 N6 T8 X0 l$ W+ k6 y                        @.HasOrder := false;
* s0 i. o0 A7 I: h. i                        @.DrivingHome := true;
: p  o& p- w7 n                        rgManager.tryToStartTransOrder;
" K' i6 @0 L3 G' M                        if @.Destination = void  f) O: y5 h, H( `  l  I4 ^
                        then -- no transport order for vehicle @
' @) S! v4 W- P8 }* ~3 a# W$ V; m                                @.Destination :=+ i; O# `8 r6 q
                                rgManager.nearestFreeStation(@,track.~);
5 Z# w3 B2 Z; R8 P, E4 \. D  t                                newDirection(@);   % Z7 }) t" ~1 e8 q, ~7 A2 f! `
                                if @.Destination /= void then
9 g, r1 D8 Y' Y: y3 u/ w* q% \4 ?! _                                        @.Destination.NumReservation :=5 D6 K8 x5 H7 f/ q3 u
                                        @.Destination.NumReservation + 1;8 ]' X* x7 R6 h9 k, @8 N* Q8 ~
                                end;
" n$ T% |, [) c! f                                @.CurrIcon := "drivingHome";. c: z/ j1 d- G; {# P
                                @.DrivingHome := true;
# K( u6 e6 q; @  Q* J                        end;. |1 L9 H; Y& Y6 M# n5 D
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 Q6 l/ I9 y# M
                        part := @.transpOrder;
5 Z/ ~2 [* w3 I                        part.move(@);-- load part
% d6 f0 g: e" {- y( f1 U                        @.CurrIcon := "load";
/ J: L+ D9 l+ j; _0 t# i                        GlobalDistObj := part.globDestination;4 v, y; ]) j; c- N- m, S+ g/ z( K
                        assignLObj := rgmanager.rgAssignL;% D0 f2 _/ i+ g1 M, T& Q2 Y9 \, e3 g3 `
                        row := assignLObj.getRowNo(GlobalDistObj);
+ M# |9 B3 v& f: [+ ^; E# r5 W                        if Row = -1 then -- since 70
1 N. m( L, ^% t& k                                if lan=1 then* e# D  r5 N' ?6 l! c
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ ~* U3 k8 A, H9 G7 Y+ |% k                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% Y) N! ?" P) G                                else8 d# K) A/ l) w! y/ b5 D4 O' d
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
7 u$ H' H& ], A- n! c                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 D+ u* Z" @, t                                end;; p- V& l, v+ z& ?$ I: `) `
                        else! H$ X* j) P4 ~3 w, Y
                                @.Destination := assignLObj[1,row];# U  X7 `0 B& G
                        end;                       
5 @& k* k2 H( ~                        newDirection(@);) h0 o$ v. y8 b8 v8 `( O( y
                        @.HasOrder := true;
4 s0 P: e7 d  O$ g( m- F6 k& O% c* j                end;
  |. O2 B5 e, k0 g& D        end;# o9 r, l$ q' v
end;        -- of the method* l2 i4 a" m/ _6 C8 v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  A6 F3 ~% f: `* o6 L' V" ?
/ Q3 w7 P% G& U' ]9 e这是AGV_putin中arrive的method。6 E5 O4 B% w* l, S

: ?' m( n  X! R; F' {1 C( W( n当到达物料速度越高时,这个报警更多,- l2 z% l( X0 l) O) U5 [) r6 D' D
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。* s2 s1 U5 G; y) d: m
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, c4 J8 w$ r5 t3 T5 x

7 E' ]5 l5 Z0 I/ H6 g- J另外一个小建议,就是move,所有的move都可以这样3 A9 i! x# L; a9 U. Y
if not move() then debug end
. a8 y2 t( p! Q- v, x这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# Q& B) a9 C4 g- Iplant simulation中的free libraries有AGV模板,
7 J$ k4 L. q; E- m* u里面也有案例。1 Z8 V' {; N! T/ H& ]
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& D6 m' Y5 D. Z) F! m* y* _
8 H# F5 G/ U9 b/ j7 T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( V5 S, S7 t5 Q1 f4 h  ~

( i7 h9 w/ C8 J9 u, B9 Y1 I" {那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ a: E; U& ]; |2 t这是AGV_putin中arrive的method。( H4 Q  ~+ @/ f% M* _
$ K* N! v' H) o2 V* A
当到达物料速度越高时,这个报警更多,
2 k! `+ j) }3 J& X0 C
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-28 04:54 , Processed in 0.019361 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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