设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9493|回复: 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'1 _0 I$ U! a. }4 k
*/
& E& r# Y; s  o* Ris
& F2 |4 G5 K% ^+ M* o9 c        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 N. f% {6 F- _; J- ]
do. Z$ Q3 E& c! E
        Lan := rootfolder.Internal.Tools.AOLlanguage;
" {/ S# W% t' d" o6 G7 C' k6 x        if current = @.Destination -- else return
' O6 s+ B; ?( x; D# u        then9 ]# s8 t/ k/ K2 r7 O
                @.Destination := void;
$ P& i5 D1 h: t' l$ a. W                if @.occupied then
, e. C6 _9 y5 B8 e8 m                        part := @.cont;
; ?" ^' Z. t( q  V1 u: F4 z                        @.transpOrder := void;
) n; W8 y3 n% \* z0 |6 X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* [1 o5 Q- M) G; V
                                @,root.eventcontroller.simTime);
; [) q  F( f+ ~$ V( b9 P                        @.HasOrder := false;  I# @, r1 g3 \7 M, M: Y' }
                        @.DrivingHome := true;
, U+ u. \$ n  a$ O  k                        rgManager.tryToStartTransOrder;! E( F5 v$ s) @/ |. a
                        if @.Destination = void
- J7 p1 ^, P% r7 I9 q4 p: h                        then -- no transport order for vehicle @
5 m& E3 Q6 G; I& _4 G                                @.Destination :=% s6 A. k- h0 ?2 U8 {
                                rgManager.nearestFreeStation(@,track.~);
* k, N7 V6 k( y- D                                newDirection(@);   
8 S' h. ?, V/ ]4 T                                if @.Destination /= void then1 K. {6 h1 v7 u$ [2 o' n# i
                                        @.Destination.NumReservation :=
6 ?* H$ v: S4 W4 D7 E+ W& I" G3 b                                        @.Destination.NumReservation + 1;% `5 ^* c) J3 Q) ]' x  o. \7 N( A4 J
                                end;7 p9 J' [! f) r( M
                                @.CurrIcon := "drivingHome";8 ^( q5 X% W+ {
                                @.DrivingHome := true;- E6 N% u( O% N4 |+ d! g
                        end;
- f% |) e6 A+ Y5 p                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 w8 E+ B. H9 d( S$ b
                        part := @.transpOrder;
) K! S) w- f$ n5 N. s                        part.move(@);-- load part
. `# t8 i$ t( L# c# `' V3 g                        @.CurrIcon := "load";" B2 R- a- a, c( c0 O
                        GlobalDistObj := part.globDestination;; Q* A' |% n, ~7 \& n: w8 a0 b
                        assignLObj := rgmanager.rgAssignL;
! r$ j4 ?2 |8 G9 k# m                        row := assignLObj.getRowNo(GlobalDistObj);
! S- M7 Q% c3 [1 i                        if Row = -1 then -- since 70
9 }. g3 h9 }' j9 g3 ?2 P                                if lan=1 then2 E* Q+ b% z: ^1 ^
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* y9 U5 _. T$ w9 ~! B' `
                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 d: M# L6 K$ _* ]" p
                                else
+ D. O/ g7 R/ c. a3 M# \                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
3 B0 b0 B+ Z1 o                                                to_str("in docking station: \"",?.~.name,"\""));                                $ G+ `$ W) x+ ?! o' s' C: S& c
                                end;
1 S7 K8 l. J1 F* F' q                        else# O- V! ?5 S7 F* x- K/ r% @7 T) ^
                                @.Destination := assignLObj[1,row];
" i) Y6 X5 V- K# Y) T8 `- v                        end;                        : V% u2 [: O+ A" _2 e
                        newDirection(@);8 g8 ^8 O* u( E. A
                        @.HasOrder := true;
" \  l6 G& x; H. q( |8 B, _- r                end;1 t& P  K/ E5 k' H) y
        end;# A+ [% p2 W5 c7 [
end;        -- of the method% u8 p1 ]) O- B; }1 O+ F
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 o2 X8 W; l4 ?/ R, _! K
( t9 c. ?# E: z* ]! _这是AGV_putin中arrive的method。8 M/ W% b7 d  s# V

# G# l$ W0 ]* v, A4 @8 F9 R当到达物料速度越高时,这个报警更多,
6 a- E/ E" O# L$ o8 f4 ?可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; }2 ~2 T9 a4 p9 p- j
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. c; j1 B# N3 E" R
# ?: z- U( v- I2 g
另外一个小建议,就是move,所有的move都可以这样
7 t' K7 x4 ]5 i, p9 n. sif not move() then debug end5 u1 B! t$ ?8 D8 B" f* u+ G5 j
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! S4 x' |* \+ {3 }, f; iplant simulation中的free libraries有AGV模板,
2 a# }2 |0 j! K3 I3 e. A( I里面也有案例。
1 f9 P( A) u" d我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. d* B/ d, ]! Z' e

$ O! H# t0 I. O' L我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # ~1 i! H) Q, j

; r# Z* h5 k) w  w5 V, Q" Z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / t6 |8 E% r4 |5 x, p6 L
这是AGV_putin中arrive的method。* R/ d8 u# S% R" O- E; [
$ p1 T  b3 j7 a0 t& L1 U
当到达物料速度越高时,这个报警更多,

; Z& e) a4 q/ A& S* O* }9 n另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-4 00:44 , Processed in 0.017743 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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