设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7520|回复: 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'
! P; A8 l  v6 n4 }* N* Z*/( f- @  c, t1 M7 Z8 x2 m6 S* D
is
6 ]  x$ L: I2 v9 p) G9 s        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 N4 C' h  d7 m! W& o+ O; g6 c2 A
do$ n& G% Y$ z- b8 F# c
        Lan := rootfolder.Internal.Tools.AOLlanguage;* M0 [) ^* U3 w6 n
        if current = @.Destination -- else return% X" O# a9 e0 h/ I5 L
        then
4 X' p. x6 |6 T0 [+ S1 U                @.Destination := void;7 M# g2 y7 L1 m; ~: x
                if @.occupied then
- v- J: [7 K, S1 Q                        part := @.cont;
+ W% @+ K; p+ P                        @.transpOrder := void;, C; {& e" ^& h
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& [0 f4 z8 |0 O3 [% W6 O- Y" |
                                @,root.eventcontroller.simTime);
" g! t# R0 w1 ]5 Q0 V                        @.HasOrder := false;
2 v6 ^) y  M7 v" x% Q7 W; }                        @.DrivingHome := true;; e  [; T; n; z( \+ t* R- W6 D
                        rgManager.tryToStartTransOrder;
, F& I/ A7 x5 a9 |8 i                        if @.Destination = void0 Z' C$ x# u' b
                        then -- no transport order for vehicle @4 ?& T( o- ?2 `& F. U, w
                                @.Destination :=
2 E- s" G# D3 D3 ?                                rgManager.nearestFreeStation(@,track.~);
% _0 \: Z( n+ F- H1 r% l                                newDirection(@);   
4 {; c; r$ F. r2 J                                if @.Destination /= void then
0 h# o: P5 I: V6 P0 h7 w                                        @.Destination.NumReservation :=7 _! b7 ?. p- e* }. }
                                        @.Destination.NumReservation + 1;
- r" S* J$ b; q  X4 t                                end;/ e# e; X2 ?6 B" T7 B  r
                                @.CurrIcon := "drivingHome";
; ~( G' N% w/ \  O                                @.DrivingHome := true;! Z* X, o% e; \, b) {
                        end;, b$ W5 g* d# {! o
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- p! e0 g% F+ d. u
                        part := @.transpOrder;/ U- }: A) t3 G. Y) ]$ F6 |8 V
                        part.move(@);-- load part' E2 A5 A) a6 M
                        @.CurrIcon := "load";
) |6 L* b1 A' f  N" L                        GlobalDistObj := part.globDestination;
% }7 _: j: m' s; N$ l& `$ Z5 d8 K1 V                        assignLObj := rgmanager.rgAssignL;# N) a+ m5 e* M& i
                        row := assignLObj.getRowNo(GlobalDistObj);. E; @9 p0 R& l+ z% B& r: e! V
                        if Row = -1 then -- since 70
! I1 z4 M) o* k3 Q7 @                                if lan=1 then+ g- N" s, s! |- e; H5 p& h. [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 t* g. h: [, k4 u
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. `) b3 N; y% q# v                                else
5 k4 {: H1 Q  Z  y                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' n& @) {. y/ c  s                                                to_str("in docking station: \"",?.~.name,"\""));                                5 z0 d9 c" F0 u# B
                                end;" H* h4 @9 W. J: D4 v8 s
                        else$ h- D7 W. h3 ~' ^( n2 I
                                @.Destination := assignLObj[1,row];3 a: W1 q9 ]& `
                        end;                       
* y  i% ~. j; U+ I" a* l! J9 w                        newDirection(@);( S0 s( c! o* p$ M0 q
                        @.HasOrder := true;
  \" e9 m* F4 T" J* l( ~9 @0 ~                end;  @! d7 Q- \; a8 f; f1 y
        end;
& P0 h0 \2 e" i+ h0 T' D1 A  r7 g9 Eend;        -- of the method+ x0 \' o6 `7 Y- c& W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 K2 F! T! o# R* Y( f5 D

5 g! _* ^5 ?- `& c% o这是AGV_putin中arrive的method。/ b* R  J! v, P5 h* l8 q
; x7 {4 ~5 u: S( {* @5 o7 k0 {+ l
当到达物料速度越高时,这个报警更多,: t( }5 d5 Q" z- l! O, ~, I) i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。1 Z, Z: F" ^) D; c" v/ x! i
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
4 s" r! Z1 q: o, D  l$ J" w$ y/ ]1 J
& k% L+ P/ P% O* f) {! Y' Z另外一个小建议,就是move,所有的move都可以这样
5 u6 ~% C; `% l$ ^! s/ W! W) j1 D! N  sif not move() then debug end( d4 `4 r6 x* T) d) E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, |1 S4 c) F2 s3 M
plant simulation中的free libraries有AGV模板," u  \4 |1 s+ A5 X, b! M+ K. p
里面也有案例。
0 [- C5 L$ e. m9 b, K# G" x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  d+ {# o1 b$ a) ~! E

. I' L8 R; |8 X* x( z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  c( i6 m2 S+ @0 B$ [3 O  U: q
/ l6 G; z/ t( V/ j那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
8 k! ?: d* b6 }这是AGV_putin中arrive的method。9 Y. D. O- R% Z* w" H" f9 ~5 I
4 k5 [$ C, \7 A9 {: _4 m# {
当到达物料速度越高时,这个报警更多,
# D; V) w: d, L! p, T/ c
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-16 08:45 , Processed in 0.015584 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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