设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7940|回复: 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'
5 A, T+ m9 W' I. L7 G# m1 y: d*/
3 s1 Y: K8 p! k0 |6 V* w$ ~: mis
, B& w! x) x- k. E2 E        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( U- X+ [- g3 L* [* o3 }do9 k' `3 L8 u/ Y! L6 F9 r. f, b2 o0 p
        Lan := rootfolder.Internal.Tools.AOLlanguage;' }2 ]+ o6 Z# }: y# A! x. k: R
        if current = @.Destination -- else return' _* n' v9 z- L2 o. N4 _; ?
        then( f" P2 f' \" i3 _
                @.Destination := void;
- [5 `& ]: d/ s* r8 O9 @) S                if @.occupied then
3 S7 C/ C# r2 W! b& z/ w  B                        part := @.cont;9 D  ?' c" S6 z) U0 J: {% o
                        @.transpOrder := void;
9 W0 b& n3 b0 R                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! w% ^- o( t0 s                                @,root.eventcontroller.simTime);' A2 B5 a- o) U4 o" X9 N
                        @.HasOrder := false;5 M; G6 G: g& t& j1 K
                        @.DrivingHome := true;
& B- ]/ ]# u7 V: U9 [                        rgManager.tryToStartTransOrder;- A$ R; L; q$ K1 s/ X
                        if @.Destination = void  n) p" |( S& ?3 V  C+ _4 A$ {  N
                        then -- no transport order for vehicle @
3 c% u' |% r, W6 ^9 J% i* j" ?                                @.Destination :=' C, l" l. F! Z4 f) \8 g, f
                                rgManager.nearestFreeStation(@,track.~);
+ p& E7 A+ ?$ H; G                                newDirection(@);   
" G  `  n( E% {- [1 f$ w; i  R                                if @.Destination /= void then
, T- j8 C$ J  ~, P4 K* _" Y                                        @.Destination.NumReservation :=
5 d) w$ ]. W+ K: W                                        @.Destination.NumReservation + 1;; ?) j6 y! J  z) R( s
                                end;
; \2 {5 X% x3 H5 [, [# S/ J                                @.CurrIcon := "drivingHome";+ c; g$ L& J- W% m- W) l
                                @.DrivingHome := true;
2 c2 }( A5 M2 c! i- x* o6 \                        end;1 {% e: b% D  s9 r1 S5 S$ i
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station/ K1 d! N' }" [! L0 n" c# M. ~
                        part := @.transpOrder;
! |% |3 k" U, p& f( p* j                        part.move(@);-- load part
1 c6 T7 l( g" m- M! V4 f( f                        @.CurrIcon := "load";  i$ }9 |4 [" l0 _4 o
                        GlobalDistObj := part.globDestination;
& C5 g/ K$ ~+ y4 g- T                        assignLObj := rgmanager.rgAssignL;: R: n- g- C( b) P4 O- {
                        row := assignLObj.getRowNo(GlobalDistObj);
7 h  B* B6 ]/ p2 J                        if Row = -1 then -- since 70' K1 H& D/ d: {0 E  m; ]9 I
                                if lan=1 then2 ]; {- a& d$ h4 m* \7 W% A9 S
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),6 x8 H# c& d3 ?9 E. |: E6 a
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( t8 N$ I* w1 B- U1 Y                                else% t9 s& g+ H1 A$ g+ e7 k+ ^
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# Q: u1 ~! M& D3 o
                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 b5 l# `9 E' r+ C# X                                end;/ M6 r: u8 Q0 T% M, D2 f& }! G! k
                        else* @/ }1 Z' ^3 F8 b8 D
                                @.Destination := assignLObj[1,row];0 N! c. O/ P, O1 c* Z
                        end;                        , _; B5 h8 `5 Q
                        newDirection(@);2 ?. y& n, Y9 i! N' f0 W6 y
                        @.HasOrder := true;
: O' T/ l& m+ {; P. W                end;
; M; ^7 w2 n9 j$ f- E        end;
7 Z8 o+ S0 K9 U* M& C+ N* `! hend;        -- of the method5 z9 n# D1 d( C7 B4 b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; W  `2 E* @* v5 M5 F# ]; U& g
这是AGV_putin中arrive的method。9 p, ^! h4 |' W7 \8 I* V

. U" Z4 U; |. T0 ~, x当到达物料速度越高时,这个报警更多," V- s5 [# x# P7 c' b: X) W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 z! J3 K: ], g/ t程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: b8 |+ p* Q! f2 S8 Q. X

$ b5 s) P. t5 J' S$ C; Z另外一个小建议,就是move,所有的move都可以这样
3 D( J+ T) l' n+ z% hif not move() then debug end
4 E" k/ c& F2 G! ^" y4 F这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
9 |# a0 G: l; v7 ^- Dplant simulation中的free libraries有AGV模板,0 V$ B$ B/ i  Y) U3 S4 U2 ~
里面也有案例。
7 L+ q! h9 c2 f' E  T/ b我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 ~" G& F9 d$ O2 R
1 E2 x  [& w+ F9 R( m- x
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 + z# I* P/ i1 d/ {/ w9 M; ^  e
. C  ?5 N$ J9 t$ ?9 p; J! W4 p
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * Z: E6 X: I/ L! g% y6 ^
这是AGV_putin中arrive的method。5 I: T$ b4 f4 C0 c7 w* i5 S/ q
' U/ B' m7 Q0 a6 b6 v# Y
当到达物料速度越高时,这个报警更多,

! N) h2 d$ G8 E* k( _; ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-6 16:33 , Processed in 0.015367 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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