设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7400|回复: 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'
  [/ J5 Y" c4 K' @1 R*/" t9 ~* E$ {4 {% s3 t
is! O, h. J" ^" r% w" E# @0 j# W
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- e/ u/ y: r9 I2 ^! a$ l5 u
do, o2 q# u0 g: w! w3 R& w
        Lan := rootfolder.Internal.Tools.AOLlanguage;* c& S, [" W  {- q. H
        if current = @.Destination -- else return
4 r& Q8 F& Z6 Q: u        then. }5 N0 W8 g8 q' [( A8 f, c/ g5 n
                @.Destination := void;9 ^4 F2 F; h6 l4 j  F; U! f
                if @.occupied then
) S; e0 ^/ g0 {% G+ ]                        part := @.cont;) D" ]. D9 G" o* k9 k! O* S% a
                        @.transpOrder := void;
, z  B7 Y; ?+ s" }2 r+ Q4 O' w+ R                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 P: i8 d! C, S                                @,root.eventcontroller.simTime);
" u7 P/ ]$ o" e/ P* Q8 _* ^                        @.HasOrder := false;) B9 |6 Q. v& Q7 o6 h$ K4 f
                        @.DrivingHome := true;" B$ G) Z1 A" ?
                        rgManager.tryToStartTransOrder;, Q+ K2 l( X. u% u0 H9 ~
                        if @.Destination = void% D( v! g) Y% R5 m+ [* d
                        then -- no transport order for vehicle @
0 e  _/ F7 C& y                                @.Destination :=2 z, m7 f1 l* _
                                rgManager.nearestFreeStation(@,track.~);
! s1 O5 G& D% i                                newDirection(@);   $ A8 z; ^* v/ ^9 c7 K9 n. G& L- {3 ?
                                if @.Destination /= void then! B; B1 q4 J- T: K
                                        @.Destination.NumReservation :=* W: z: P9 R( i: J% m: o  _6 ]' O
                                        @.Destination.NumReservation + 1;
9 C' c0 x+ s- I/ F                                end;
7 |/ p0 e  |, a9 d' N3 ^# I                                @.CurrIcon := "drivingHome";
' m# R: o/ s9 g- ~: D7 ?7 ^                                @.DrivingHome := true;
/ }# {; I1 `( T2 }5 g' e% T: p                        end;$ q' g% N3 m1 Q/ {  O% {
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ y) Q" e2 X4 D% n                        part := @.transpOrder;
0 q& \: K. {% s% {                        part.move(@);-- load part
9 E- ]. e* b8 P8 }2 o- f                        @.CurrIcon := "load";
* v5 `' G; `' p8 f8 F1 F                        GlobalDistObj := part.globDestination;
( k% ~0 j8 z9 y! |! e5 ?+ j                        assignLObj := rgmanager.rgAssignL;
, S( v+ u, M2 J. }6 f! k6 D                        row := assignLObj.getRowNo(GlobalDistObj);
6 Q7 e( N/ S/ G6 G1 _' z                        if Row = -1 then -- since 708 H/ J) e) ]# W' ]! {7 ~4 w2 U7 g
                                if lan=1 then1 p4 T$ U$ F6 ?) }- x$ J
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
) X" ~+ _. l; \% J0 i' v                                                to_str("in der Andockstation: \"",?.~.name,"\""));, q2 t& B! i5 a' T7 ?
                                else& C- s& T5 O# M/ B1 Y3 p: U$ [
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 l: v" g) B6 |+ O2 ~! X                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 |& S4 y; o4 I$ N) |                                end;
. m- L! }/ K  ?# {                        else
# h2 ]$ }) W: N: v4 L& M: _                                @.Destination := assignLObj[1,row];( E2 C0 [2 {9 D6 A
                        end;                       
/ t6 @) g6 o5 W" d7 t                        newDirection(@);
3 m; B! t* ?2 n( p                        @.HasOrder := true;5 A6 w( A( A' T% G8 k' O
                end;
7 x1 Q+ r; \& l# `6 i        end;0 j6 R$ ?! v0 O
end;        -- of the method5 e* ]4 {. N5 q  ?; D# s
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) p8 z- W+ Y: i  y4 e+ y

; ~- U. R. r% e& u- \这是AGV_putin中arrive的method。: f6 i; W1 v. A" b- z* R0 j

' h* N8 v' a$ v' |, t当到达物料速度越高时,这个报警更多,
1 z  j0 H/ z# l- q: U; t  b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) s: }3 p# U/ b2 l3 m( j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& ~" O2 T% S' R- I1 y4 i8 ?4 C# |7 s, k% O: E, y
另外一个小建议,就是move,所有的move都可以这样
' w  A3 x/ f5 J, s( Hif not move() then debug end' F3 \3 v- O) ]3 K# k# s$ B- L! K0 ~
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 i: |( M% p+ t5 k" ^plant simulation中的free libraries有AGV模板,& I* C# g% |4 }1 v- G) U! l2 z5 Y
里面也有案例。
6 G: m. i' F3 [& v我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 N8 W  R9 o  F' g$ o
5 M8 j( l3 i4 ~8 N' v( K3 a$ }我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ t9 J6 q. v% B8 u
' S0 Y; _& r" V; H) W
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ n) H2 q2 N$ c. k$ [4 B
这是AGV_putin中arrive的method。
* i4 p  x  d+ d4 f
; u- m# e/ {- N4 Z* M* s. r当到达物料速度越高时,这个报警更多,
4 B4 ^& n- v% r- ?7 q) _3 f
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-9 15:01 , Processed in 0.021928 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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