设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8593|回复: 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'' [$ a! Z  ]8 `
*/3 w2 |; r: {. J
is
- |5 \) @; e2 ~2 C/ U        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" Q3 }+ R: i- I$ q2 R1 ?. j  Vdo
$ i1 P5 _0 B" M        Lan := rootfolder.Internal.Tools.AOLlanguage;
! o% o3 b: D& `# T        if current = @.Destination -- else return7 Z' s& @& X8 Y9 m5 {3 a
        then
- q% L7 i: T' ^6 T$ S7 t5 H1 Y                @.Destination := void;% C. K: p5 J) J: f! Z& ]& I: k
                if @.occupied then
) r& ~* J9 w7 Z                        part := @.cont;9 p- r8 p: T* d8 n( G! ~; h' {
                        @.transpOrder := void;
+ w% Z& I) K: W; V) u                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,# N; x% S8 h0 }; o5 D
                                @,root.eventcontroller.simTime);
: {% N5 i7 A+ I, P                        @.HasOrder := false;7 r! M3 C  X3 y1 U
                        @.DrivingHome := true;6 h3 R. m: V% k) F$ Q" @' L4 j
                        rgManager.tryToStartTransOrder;; t* V  v  F1 `7 |' Y
                        if @.Destination = void
$ K, h9 ]8 |4 k% ^                        then -- no transport order for vehicle @
. @0 v, G( M' m. c% R3 Q+ K                                @.Destination :=
; \1 U- ]$ i, \6 m' B6 ?                                rgManager.nearestFreeStation(@,track.~);
! W1 L' u7 J$ c! ~. z( s2 X                                newDirection(@);   
" E) O' E: x) k9 g4 {8 T0 S- Y* N                                if @.Destination /= void then
% Y1 S* |' S$ L- {! e# _                                        @.Destination.NumReservation :=
! y, [1 u4 i( `; C6 `7 K; g" R                                        @.Destination.NumReservation + 1;
6 C5 V' [+ {8 ]- F0 p2 P& f                                end;
* k' {$ q1 ^5 D                                @.CurrIcon := "drivingHome";: X+ {7 Y. I% S- s
                                @.DrivingHome := true;, `/ x1 B) O4 Y
                        end;
0 }( d7 j+ C) z4 M' Z& Y' U" k                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
3 a: U% ^) o4 Y- F                        part := @.transpOrder;
, @& I* M9 S+ w" J5 A, {1 d; y                        part.move(@);-- load part
2 ^; O' D  J, y4 b! \- A                        @.CurrIcon := "load";
6 f4 a1 u+ z1 ?7 T/ v                        GlobalDistObj := part.globDestination;5 n2 E1 @& t7 @6 e
                        assignLObj := rgmanager.rgAssignL;
" m! H1 A8 U4 @                        row := assignLObj.getRowNo(GlobalDistObj);+ a) Y5 h  n/ U
                        if Row = -1 then -- since 70; F) d, \  Q2 n' y
                                if lan=1 then% v4 B/ K8 k, X5 @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 M$ k4 ]3 E7 n$ q& I. n
                                                to_str("in der Andockstation: \"",?.~.name,"\""));# w0 E' u9 A+ P; r. e& C
                                else' ]0 h! [4 b; Q$ ?
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 n: ]1 ~. Y* d! o% Z$ V: C                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ G8 _3 o# c' n7 ]. r; j  V9 p! g                                end;5 {! k1 B/ ~7 R
                        else! N4 C) _7 L! H
                                @.Destination := assignLObj[1,row];5 ]# o* E9 H0 _" {
                        end;                       
* |3 X) N; I1 W) F2 i                        newDirection(@);" Z6 P+ G1 R9 {3 x5 m. W- }
                        @.HasOrder := true;
% f+ ]/ e; b* i  V2 P) `                end;
% U$ S& y# v1 d4 H        end;1 F3 d) b0 P) G
end;        -- of the method
( Z1 i% K. S2 D0 _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 _2 ?$ t( o+ J" ~
) Y. O2 j% Y  _2 \
这是AGV_putin中arrive的method。
, b4 h! f: w& B* W4 q: k
- _8 ^7 W7 ?, U+ C当到达物料速度越高时,这个报警更多,5 }; x: g% e0 j
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 H) `# |! W+ `9 o
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 Q( y! S" J# p5 D2 V+ U! _3 ?4 Y! g2 l) d. P8 W! f6 ]8 r9 y
另外一个小建议,就是move,所有的move都可以这样
4 K# Z8 i. m% _1 f+ o6 c2 o, zif not move() then debug end# Z; w6 B, v2 V
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! _: g9 k$ J2 c* d' S) y
plant simulation中的free libraries有AGV模板,+ \+ c" _/ W& ~4 }& Y) \
里面也有案例。' n  Q7 }/ \. R5 q% v- l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 a" `& Q# K1 P& w' B6 t* _' h6 X' E. N3 d# t5 {
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * ^( c* v* x% f: a
" W7 A& n- R! [+ _6 {% I; e/ q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / |2 ^3 B$ o$ a) [
这是AGV_putin中arrive的method。
$ D+ j8 o+ @+ }2 W% n- z3 P& u! G9 o/ _& w$ Y
当到达物料速度越高时,这个报警更多,
* r7 }5 l! @+ a5 n) H/ N
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-14 08:59 , Processed in 0.016022 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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