设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7481|回复: 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'
* O8 a# `) K! h* _* D- O*/" q& i1 ^" W1 m/ J$ c
is; @6 E7 J+ f# g
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; {+ R; S6 c4 w4 L1 edo: Z9 H7 ?7 N3 C
        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ a3 `* W7 t, ?( H9 V7 L: f        if current = @.Destination -- else return
! C; t  z+ g0 V  S6 c5 O5 P! U- b        then& Q. ]) V6 N7 R5 ?- H
                @.Destination := void;5 j9 h6 E. h: w# i
                if @.occupied then. c+ |7 P1 C) s$ ~
                        part := @.cont;
6 T/ o) w) `! x5 }& z                        @.transpOrder := void;
& r. j8 W( \' _+ R$ v                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 [6 J- I4 G- h9 r: o
                                @,root.eventcontroller.simTime);/ u5 f% C, F+ o. l6 W
                        @.HasOrder := false;
' W% J! |# ]  [' ?! {' x( I+ W                        @.DrivingHome := true;( u8 y9 `+ r: G2 L4 ~! X4 o
                        rgManager.tryToStartTransOrder;# \$ Y! V: v# k& ^  i7 A( L
                        if @.Destination = void: f2 u$ [) q% Q
                        then -- no transport order for vehicle @
7 D) _. A7 A: L9 J/ v8 |                                @.Destination :=
- {2 W$ P$ U7 ^. [                                rgManager.nearestFreeStation(@,track.~);
( r* ]- b0 H  H% H4 d                                newDirection(@);   $ m3 k% H8 Q5 S1 K
                                if @.Destination /= void then
" x$ F; C$ P% S3 d+ P                                        @.Destination.NumReservation :=
* b7 k3 j0 l  F9 h                                        @.Destination.NumReservation + 1;( K( P5 ]6 O$ N1 L( _+ |
                                end;; _( W6 T  W, P
                                @.CurrIcon := "drivingHome";
7 ]3 r, a3 R& G                                @.DrivingHome := true;+ S8 }  z: F$ j, t! p1 S/ g% ]
                        end;$ [$ n( M& r! r/ O5 z  M
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; t2 _' [, _6 e                        part := @.transpOrder;4 `7 B# [% I; G7 p' x
                        part.move(@);-- load part
3 J1 \4 }# Y% T+ k: F- @) L3 V                        @.CurrIcon := "load";# {8 k$ u' d& C: m  C
                        GlobalDistObj := part.globDestination;' K8 l* V8 @9 ^+ E
                        assignLObj := rgmanager.rgAssignL;
! `' c" I& k/ z                        row := assignLObj.getRowNo(GlobalDistObj);3 P4 U& E- R7 Z! S
                        if Row = -1 then -- since 70
, ^' z1 e% k4 H, s/ f3 {* u                                if lan=1 then
3 g! v0 b: ]3 J& j8 w" X                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),! Y: U" q/ {. T- A1 `
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
! p3 j! ]5 k% [2 G9 o                                else
. ?9 ~: q9 x  ~6 P                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# z, ]5 S+ Q9 ~( s
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' v$ C7 t$ s' ~0 q# E4 u                                end;
3 ^  q' c; Q) }- P' U                        else2 u; k% k; A; r; Y* v
                                @.Destination := assignLObj[1,row];8 q. |1 W% x+ {7 }/ L0 g
                        end;                        1 w" j# u2 N# t7 n
                        newDirection(@);
  L: d9 d5 J7 A0 Y2 B- {                        @.HasOrder := true;
3 |; |9 w4 ~, T$ g* e7 o                end;- a3 o  Z6 V+ h6 n# X9 R
        end;4 L5 [, M6 n4 K# i7 r9 c- t* ~8 c# _
end;        -- of the method
- [2 ]5 m7 j: q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " x5 v: F/ \7 g. s8 [4 x; s

+ q" K; z& e7 ~7 S& T' L这是AGV_putin中arrive的method。$ c6 [# Y9 f( E0 S! h
# N) Z( _/ j8 ?& K9 Q2 T
当到达物料速度越高时,这个报警更多,3 T8 ]  M8 `5 W1 B5 l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, H- O, S' H, {% u: m/ U程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?% ^4 W0 \: {3 ]$ d, V3 o
) X- a- q4 d( m# _
另外一个小建议,就是move,所有的move都可以这样
2 P% ]9 X/ r- O# S" O/ Xif not move() then debug end/ {  ]  {6 z2 w" a
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 O! S; E0 X4 x5 y9 Tplant simulation中的free libraries有AGV模板,
. A  A9 n* J( U' G) k里面也有案例。
" e5 K% n, m/ x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 n% F1 Q" y7 j( ^

; G6 G% X. x$ I/ c我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: x& s. [" N/ c5 \0 U  }+ }
# v8 h1 z/ L0 [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 Z4 P: k( H( G, B- F
这是AGV_putin中arrive的method。9 I, W2 j0 x; w1 N, [' W, h) [

3 [3 W; T# L) ]$ y1 ^; K当到达物料速度越高时,这个报警更多,
4 s5 S- b8 r- m" v  `  w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-13 23:29 , Processed in 0.017094 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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