设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9138|回复: 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'
4 Z: V! G5 L# E*/
# r7 v3 J; s5 Lis7 W* f0 z* k/ a# t
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
) A9 }7 I' k: v% cdo/ M2 f4 ?7 g! n0 C- s" _/ P" k7 ~
        Lan := rootfolder.Internal.Tools.AOLlanguage;& }6 g- }7 P! J# y* i. Y: H
        if current = @.Destination -- else return3 g9 C7 I" n( A. W; J' N
        then
1 Y4 R( v# h9 a. C. T% s; l                @.Destination := void;8 d2 }2 t6 i: Q9 D" M# L7 C
                if @.occupied then+ _1 y7 O* L9 Y# j6 u
                        part := @.cont;2 P9 b& n; a% l9 w# R% M
                        @.transpOrder := void;
$ s- x9 {0 j9 z: N                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' Z0 B- n% h, e. M) b                                @,root.eventcontroller.simTime);
( x) o3 f4 u+ E8 i- ~) a" V                        @.HasOrder := false;
# I' G8 g( k9 i9 L! B+ W                        @.DrivingHome := true;
8 l' q; B9 P* l4 a                        rgManager.tryToStartTransOrder;! A9 c% ~0 i: h
                        if @.Destination = void0 U% O# e4 I. w# c1 c1 q9 d/ z
                        then -- no transport order for vehicle @
4 y6 t$ O. j$ J+ |% S; x# y1 o                                @.Destination :=
4 [  u2 T5 q8 q6 i% e! U                                rgManager.nearestFreeStation(@,track.~);1 w" Y& {5 v* A$ F' k' _
                                newDirection(@);   & l* k' |' \: @' W* |
                                if @.Destination /= void then3 ]; \: {! {6 @' w) B
                                        @.Destination.NumReservation :=, U# Q1 ^/ d) }+ x
                                        @.Destination.NumReservation + 1;; o, N" {* {" r* [; q6 s
                                end;
0 L9 G4 M" ?" r. Z9 J2 v                                @.CurrIcon := "drivingHome";
$ L% V8 r; M7 t7 s; @2 |8 d                                @.DrivingHome := true;  A* x/ }3 T; Q6 w: w' {, E4 `" |
                        end;
7 P2 v2 }/ |! |7 u; W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; @% N9 p- F# ~7 y5 b1 c                        part := @.transpOrder;6 U, g% A" f; i7 x) Y3 a, b0 U' {
                        part.move(@);-- load part
$ s( }. E6 Q% N2 f- Z2 J+ z                        @.CurrIcon := "load";; N- o5 _( t! D3 m/ ^
                        GlobalDistObj := part.globDestination;
3 j, F) n) n5 M9 W# O- ~2 @                        assignLObj := rgmanager.rgAssignL;1 ?4 z8 f) S6 T7 N' E( ?
                        row := assignLObj.getRowNo(GlobalDistObj);
- o$ _9 U- y+ w9 ~- s7 d, O                        if Row = -1 then -- since 70: k3 v. e( O" W
                                if lan=1 then
+ u+ [, a3 d7 ^+ y2 T+ W- V% p" B- b                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* m2 b' N& K2 y% U                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 S& s5 O8 s/ Q! v9 ~; V                                else9 G: }9 a* v) K( `) a" F
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. b- D5 Y' }& X( p: X7 e* m
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; d! H" h3 G: d* ]% ]  Z                                end;
' @7 S5 C1 w' m; y+ p" }! A                        else
( g1 P, c& S  W: l9 y" x, Z                                @.Destination := assignLObj[1,row];
; u8 h4 n" X( X2 p$ W& c" J+ W                        end;                       
" P8 ?5 g& P& r* P# k; |( E5 s+ ]                        newDirection(@);& q) r: B/ q. [" e. i3 a1 V
                        @.HasOrder := true;% c! v& n2 ^% h. ^: \
                end;
6 g, W. H: R  F; U6 ?2 a        end;
+ X, G2 ?2 ^$ W  E0 Nend;        -- of the method# J. p5 {4 v) R& a4 G* e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 K9 M( e, M: ~8 W: w* W0 L, i) \: H/ `( }1 J& L
这是AGV_putin中arrive的method。
7 Q) M- Q- h; M
9 k" Z# R$ N+ u# w& W, e. ~; Z当到达物料速度越高时,这个报警更多,
+ H: _" Y, S; {6 D4 E# h% M) q可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 I! W' {9 Y& }6 O) z9 V+ Q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 g/ c3 P+ U6 W- ^- b% m. T
% p& Y# h, n. p$ _% \" c. f另外一个小建议,就是move,所有的move都可以这样% W: l# C* V% U8 ^
if not move() then debug end
8 h; h6 k3 ?- v6 m; U这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 y) l+ z0 I+ w2 g# S5 z
plant simulation中的free libraries有AGV模板,) r; Q( P$ X  f- z
里面也有案例。
7 u4 z( f/ l( x) P我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ S2 }* U" L! c% E/ V: C- W+ {- o( i" p6 N2 Q" T) ]( V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 }2 r6 L( L8 ^$ Y# |  ^. A: ^$ A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - v1 L" J# `3 V7 a
这是AGV_putin中arrive的method。
0 W# b0 ~& A7 x! p6 |& M. Q! q) j. _7 i* q. W( `  x3 ]$ G/ ~
当到达物料速度越高时,这个报警更多,

* N7 D7 m# D5 j8 D% Q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-16 03:39 , Processed in 0.016276 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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