设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6595|回复: 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! {2 v9 R* \6 _*/, H2 K) H3 j$ I5 ~- m+ j- E2 x" `9 u0 ^
is) |" N0 m% G2 ]
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 a( r# b1 h9 R( f9 l, u
do; q7 B; R0 B" g# L$ B6 T8 F
        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 V# X) o/ F: O1 o, L0 ^        if current = @.Destination -- else return% {3 l0 \7 O% I0 I
        then
  {1 t5 j) B! J                @.Destination := void;3 i( C6 r3 v$ o7 p6 B
                if @.occupied then
. m" B2 ]- d$ i& N  e. ^) R                        part := @.cont;
! B. x" n0 s, U5 s9 \" S% ~                        @.transpOrder := void;/ N# W0 P6 A/ e  ?$ b1 ]6 v
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' h/ @) A# f  |' @/ a2 f+ d
                                @,root.eventcontroller.simTime);
% \9 H2 S. b3 ]- G5 O8 u$ Y. |                        @.HasOrder := false;) R9 V/ Q1 j, R; d* o
                        @.DrivingHome := true;
5 M$ O$ t: A( f/ n; m                        rgManager.tryToStartTransOrder;9 N. J2 i) n& H3 u4 d( U/ m* t
                        if @.Destination = void
* r( X! r- _& I. d: ?# `                        then -- no transport order for vehicle @
% |% U% N- \. P3 S+ D$ b8 v                                @.Destination :=$ x6 g' o0 E/ @% }
                                rgManager.nearestFreeStation(@,track.~);
( M( L+ f: |) ]                                newDirection(@);   , h! D! ]1 O: {. e# h1 Q2 k
                                if @.Destination /= void then
8 q6 m- i) b. v! w  ]4 b# v9 P! j                                        @.Destination.NumReservation :=
( D: |) o& a9 [: P. N. R                                        @.Destination.NumReservation + 1;4 Y$ _$ n) J: x# h- U
                                end;: n0 V6 M% w, k( p2 H7 V
                                @.CurrIcon := "drivingHome";4 A, F* B0 m1 m! N; s+ r% K
                                @.DrivingHome := true;
$ S# H% a! O  g                        end;
; M- ?* V/ Y" X" V( d: y" U' ?                else -- the vehicle @ is empty, both vehicle and part are in the same dock station% g6 _) V- V# s! w
                        part := @.transpOrder;
$ o8 p2 D' O' F                        part.move(@);-- load part0 K/ t( l* ~% P! n& p# s
                        @.CurrIcon := "load";4 u7 M$ i0 k0 g2 `+ u8 {8 H
                        GlobalDistObj := part.globDestination;
) K) m! @. C8 G3 U) ^5 P" Z; e  ?0 m                        assignLObj := rgmanager.rgAssignL;
/ O: \1 v; l/ F+ j. b- O8 h                        row := assignLObj.getRowNo(GlobalDistObj);; @$ N' _, H% [' }) R) P
                        if Row = -1 then -- since 70
0 O- D! C3 t$ \* G" A                                if lan=1 then
0 H/ I7 W& e; N  }6 G# ]                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! Z5 C  M  \- M8 ~; o                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 t3 v4 H( \% A4 q  e                                else
% I& S) E6 D8 T* b5 B7 J                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 J! C  m* Q3 R! t                                                to_str("in docking station: \"",?.~.name,"\""));                                6 j! s) [3 n5 M* h: d5 H1 E
                                end;
- X9 m& ?( L. ^# g* K                        else
- l! N* b" e! m% g                                @.Destination := assignLObj[1,row];
: a% m) s) Z1 m* B* c                        end;                       
$ R9 [+ J7 L! n/ Y4 B) Y, K! I+ @+ T                        newDirection(@);% q) d* W) B2 U; f9 s; f
                        @.HasOrder := true;2 V6 u* S- G3 G
                end;
  U; O1 y( B% F$ c) ~) J0 U- o) U* P        end;
' L% K% N& A) {end;        -- of the method
  a. p% S8 V8 D" k8 T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
+ _0 X, @$ A  r* F3 X3 N( ]! D; k, A" m: m8 R
这是AGV_putin中arrive的method。
0 v' p0 O8 b" v6 |% M! h* B
3 l5 }% n/ N( ?% ]! P当到达物料速度越高时,这个报警更多,. \3 D# {+ p6 J( H) g* x& y0 ]) ?; [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 J& H0 F5 Y. z程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 e0 W9 W' ~5 G: _9 Q$ D# W0 c
. U0 J8 E2 A! a: m2 i8 i3 H3 h0 A9 ]另外一个小建议,就是move,所有的move都可以这样
" t6 }5 q, z' i# W6 `" dif not move() then debug end
+ X0 R: S  ]* c& S% c7 n: o这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- k. L+ ~+ {0 }plant simulation中的free libraries有AGV模板,% S1 a0 ~1 A$ a9 R- ~( x
里面也有案例。% J+ V# G5 v1 @3 `2 w4 b7 d; F
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! f( }  b3 y7 h1 j. {) F( U8 M
" [4 p8 \2 h. h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ! G/ @' h! ]1 t3 n
9 }, Q; w2 _0 |- [  m2 W% a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  G% c* |3 L& Z5 J# T( L这是AGV_putin中arrive的method。
4 `' ]/ V; s) j" G4 j- H0 A
9 z5 U) O- ]" W* [" T' D+ g: a当到达物料速度越高时,这个报警更多,
, |% Q( I7 T' A% _! w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-15 06:53 , Processed in 0.019755 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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