设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8708|回复: 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'
/ S' I, [9 x: z1 h% Q; v*/
* ?  t1 }1 X  @7 G6 q3 J3 Jis
- W+ ]( A2 j2 u2 `+ j2 t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- y; \# k2 V; \$ c% X4 z) d+ G
do
% S) w+ V2 i( u: D        Lan := rootfolder.Internal.Tools.AOLlanguage;/ Q( ?  [# a7 Q2 |7 G* O0 d2 Q
        if current = @.Destination -- else return" q( P- K, Z- Q' \) y
        then
5 w% F$ h+ o, }6 |" V9 v9 z; Z                @.Destination := void;% P( \5 x2 ?" X
                if @.occupied then
5 t8 H# J* i& L: U9 H; f- Y$ t$ p                        part := @.cont;1 ]+ X# g% N/ M# E
                        @.transpOrder := void;( o$ J' e1 P. w2 S
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% L* e! D& {1 O/ V. U9 k: R5 P1 b                                @,root.eventcontroller.simTime);1 e; n* g. |9 d0 s- `7 @2 q; c
                        @.HasOrder := false;3 l+ c5 X' f0 h% o; w
                        @.DrivingHome := true;
/ p; r  d* v' b& G- F+ h                        rgManager.tryToStartTransOrder;% d1 s9 k  K; ~. Q' q# [% @
                        if @.Destination = void
3 v8 m$ n  A: v6 ?! h, ^; ^                        then -- no transport order for vehicle @5 Y/ V6 Y1 m6 k/ ^
                                @.Destination :=- r+ x7 ~& i8 |2 [
                                rgManager.nearestFreeStation(@,track.~);
2 W2 F9 N4 y! w' w4 `3 m9 k0 h                                newDirection(@);   
9 O- T% E, _, B- J) N                                if @.Destination /= void then( D  w; l2 o( H; q& G; f* y
                                        @.Destination.NumReservation :=8 K: Z3 x8 U4 h2 Z9 f
                                        @.Destination.NumReservation + 1;
+ X' ^9 N& t0 @* ~' i                                end;
# v5 h# E4 k1 [8 O% }                                @.CurrIcon := "drivingHome";
  [& ]( C/ S7 X$ N7 c/ C  e8 Z. [! B                                @.DrivingHome := true;
' o$ l& y8 k# n% y8 m                        end;
  D9 @: U  W' b6 H: b) c                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 }/ f4 k3 k  ?: Q! h                        part := @.transpOrder;. o9 q* M+ z! s6 d0 h3 S& m
                        part.move(@);-- load part: \/ V& V) ?3 X5 G( ]3 \: y
                        @.CurrIcon := "load";; Q( R0 }$ o3 I
                        GlobalDistObj := part.globDestination;2 B% J- i1 \4 n
                        assignLObj := rgmanager.rgAssignL;
: t' X+ b. z3 R  d5 @$ J0 g                        row := assignLObj.getRowNo(GlobalDistObj);# s/ s( l5 t' _. a2 O6 _6 s
                        if Row = -1 then -- since 707 T* m4 O; Y2 Y8 O# b) c. q5 q
                                if lan=1 then
; p$ i3 B" O: L" T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),: @1 P5 \% h5 }* m- y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));! J) _* G: C4 U* E: Y% n" i
                                else
7 I9 e) Y# z  X7 F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 V4 [7 \) n$ _                                                to_str("in docking station: \"",?.~.name,"\""));                                2 c, F" W/ {. w. p, g( h( D3 O
                                end;$ f9 D5 a4 C  d' M
                        else$ c6 S9 ^2 G9 L) w
                                @.Destination := assignLObj[1,row];" \" U0 [# @4 I9 f5 R4 i
                        end;                        / P8 y+ {; j$ y6 L" R  I2 `
                        newDirection(@);- U, r5 ^$ m6 j; G6 ]& B
                        @.HasOrder := true;3 P! T* I: `8 K7 h
                end;0 W$ N$ S% c: R$ m" r  P
        end;
; ?9 r+ u( Y2 Yend;        -- of the method
/ ^3 e! P/ ~, [" l) X3 X+ Q% {  K* A2 B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 ]& r0 F, t2 ?& b' ?/ e9 @: H* a, `

6 }: i8 N) O/ ?2 H1 q4 u& c/ ~  u这是AGV_putin中arrive的method。1 y7 y/ j  O, I- e; [7 q6 E
1 `/ G8 S2 s' \- z3 `0 B
当到达物料速度越高时,这个报警更多,
5 U4 }: X) k3 J& [可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. |3 D8 [; |0 g, W0 U
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
1 S1 i" @9 z8 M9 O% F+ h
" T0 d, d4 U2 ?, F另外一个小建议,就是move,所有的move都可以这样, t% p9 t  @* L, H/ e7 ?; c
if not move() then debug end3 o, o& W& h7 s- P3 }" S8 w, e
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. I$ W0 G: ]& ?5 a- p3 kplant simulation中的free libraries有AGV模板,1 h( b, U: ?5 D9 c( s8 k2 J
里面也有案例。5 Q7 D$ P7 c7 u: y/ N8 `
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。5 j" }: q: a$ L6 r4 D% H
$ O! g( k# H$ w/ j! [2 a; D( Q% p
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 c8 f' k9 N$ |; }$ z3 j, v; Z" y$ W* I8 Y# D4 o
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , _. y0 E# \8 V! m2 ~4 X; H
这是AGV_putin中arrive的method。
+ N' K5 j  g9 ^7 S" c+ P
% z" h9 @0 m" J- Q# I9 l* ~当到达物料速度越高时,这个报警更多,

2 j& O# j" Z. J另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-21 17:57 , Processed in 0.017122 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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