设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7161|回复: 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'
( M# P7 r1 ^7 q6 Z*/$ l' I$ n+ M$ A. _1 }* J$ E. L
is
$ I6 U) A$ i% W0 o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
1 _% ]# f4 j' m' {6 d/ }' Ydo
' u6 ?6 r& }; {  T9 K        Lan := rootfolder.Internal.Tools.AOLlanguage;
* S6 B! |4 g  T3 ?" l        if current = @.Destination -- else return8 ]9 n7 ?$ B7 F  Z
        then
5 }' L7 T( p$ W$ p6 j" \                @.Destination := void;
: I+ ]8 e& _* M7 d) s, W                if @.occupied then
7 r9 }- W9 i7 m* W                        part := @.cont;
* @$ C/ ~8 w6 K1 A# d- ~. d                        @.transpOrder := void;' z0 b3 V$ s* W
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,. e1 x) L1 p$ o9 o+ n0 m
                                @,root.eventcontroller.simTime);
* n" d0 V% F' I; z% {6 w                        @.HasOrder := false;
5 E* x. ^- F: s                        @.DrivingHome := true;
9 A! t' M1 p, E+ o$ \2 u- a" x                        rgManager.tryToStartTransOrder;6 A+ b! u2 V6 K' v, {
                        if @.Destination = void9 F6 f4 w/ Z+ i! V
                        then -- no transport order for vehicle @/ q" n2 k, L. D4 c3 W
                                @.Destination :=/ |: b( u# M% z- P5 @+ ]
                                rgManager.nearestFreeStation(@,track.~);
* w1 C6 i# @/ Q8 G. J                                newDirection(@);   
: Y+ j! I. R, q1 u: L  ^( n- A                                if @.Destination /= void then. ?+ {' z" ?1 M7 _. V2 V
                                        @.Destination.NumReservation :=
% H2 h7 I2 E$ w" S  v                                        @.Destination.NumReservation + 1;8 e1 p0 b- D# a. F) q! w7 o
                                end;
+ s0 |0 @# Q" B: i+ \$ T" m! |                                @.CurrIcon := "drivingHome";
2 H+ e, t: _9 _: X7 O                                @.DrivingHome := true;
: N; V; L, \  V9 w1 H                        end;) x+ L4 L, c6 W$ G; E
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) {8 I! G8 O7 ~$ J8 r9 B; k6 _* W                        part := @.transpOrder;9 \+ [8 w0 h% z9 p
                        part.move(@);-- load part
* |) u8 o$ M/ ]! W/ b                        @.CurrIcon := "load";1 o& R  c; o5 E2 t/ X# A0 n
                        GlobalDistObj := part.globDestination;2 P4 ]& s& T2 ~! O
                        assignLObj := rgmanager.rgAssignL;
. J  w* \+ O2 H/ J- H$ j                        row := assignLObj.getRowNo(GlobalDistObj);
* m% V/ T  S3 J' i" I4 x4 g                        if Row = -1 then -- since 70
2 Y1 Y; M) r3 j! n/ u2 J  J# }' u                                if lan=1 then
9 ^# {% N( j7 a& \8 @                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),& C6 M3 l( J. Q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));& a) A+ t! C: c( X/ l
                                else' }8 C) k4 b" Y' U0 q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ r' m: U; ]* b7 F! ~/ x* i                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 X8 n" g0 m" o" D  J, C                                end;
  X5 ^7 O: v! j8 V  E8 I8 U; k                        else
6 S; g' G" C; O* P9 ^2 p8 K& p* X                                @.Destination := assignLObj[1,row];- ^1 ~1 j' V( h& {( n0 ]8 |: t
                        end;                       
7 k. a, x$ E: x4 t& h                        newDirection(@);' C0 u' F2 g% O
                        @.HasOrder := true;
; P+ {& V/ F: k. u                end;/ a# [  O9 u5 k; R" l+ C- F
        end;" x+ H% D2 m0 X2 ?
end;        -- of the method
% m" A% B0 q/ Q/ D( ?7 f! {! N+ q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 [7 R" j; Z5 ]- h

: O3 H1 ]# q2 d* F6 K) k, L0 j! S/ W* `# f这是AGV_putin中arrive的method。6 D# k8 V8 X& ]

' ]) U: q. k1 [6 M当到达物料速度越高时,这个报警更多,
4 L; F" j+ ~9 H可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。5 {# g7 \; Y( @# A+ A( Z
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ X9 D7 b. H4 |0 c- a  r( ^
2 L4 t9 x1 D  m" O7 I
另外一个小建议,就是move,所有的move都可以这样$ n! n8 F1 s' d4 b5 i. M( R5 n
if not move() then debug end
9 O3 ^5 F: k$ K这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
: E( e$ Q% j4 k8 Wplant simulation中的free libraries有AGV模板,3 v- \" Y. E# u9 d9 g( R
里面也有案例。% L) ~. u  i( w! A8 m
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
* \2 ~1 }2 m2 K/ F; E- Q( _* o' A0 ], R+ r, v8 P4 s
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 . W! b! U& ~1 ^$ d9 F

% E1 Y. v1 }! ^$ j% `那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 F4 [' q7 C  z! \: d& s这是AGV_putin中arrive的method。
- y+ u- H; k5 P+ y$ c
/ Y" f% m4 [# y  l" w( ?2 m当到达物料速度越高时,这个报警更多,
2 `2 E; K+ s/ F3 s
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-23 09:18 , Processed in 0.016891 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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