设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8517|回复: 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'
) n! J* {2 _3 h( e' |; M2 I% w( m*/* D! t" c* L/ u8 p3 A4 S
is
. w+ U$ S3 g4 h& ^6 V8 y  e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 k, h: r+ H6 _5 x  m% Z! L' D
do" Z1 P9 v% X. `: }
        Lan := rootfolder.Internal.Tools.AOLlanguage;% f/ m0 |, b- W8 Z/ [# m, `
        if current = @.Destination -- else return/ g$ }+ o6 v8 I1 g7 h8 r# m" C- y
        then
0 Z# \; d3 r, v6 Q9 q                @.Destination := void;' z; y+ w8 A* _2 j
                if @.occupied then2 E; ~, `" ?) r( S
                        part := @.cont;
% E  S9 v( ]) k* h                        @.transpOrder := void;  n9 I% `$ n- L0 \! q& A
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( s& H# G5 y5 m. c! W                                @,root.eventcontroller.simTime);
* \3 O9 v, G. m$ J; T. [0 Z                        @.HasOrder := false;3 u  P! m* H2 a/ U+ E. T
                        @.DrivingHome := true;, ^$ A; q- i1 C( `2 H
                        rgManager.tryToStartTransOrder;3 h% F* L& l; ~8 ^% \
                        if @.Destination = void# H$ P0 x( R% C5 o5 P  f
                        then -- no transport order for vehicle @: P. u3 Y4 o' C: h% }: E
                                @.Destination :=
; D# Q, c" Y! J5 o. Z                                rgManager.nearestFreeStation(@,track.~);  Q; ~6 e, k7 H( ^
                                newDirection(@);   : V; n% Y& a4 c1 E
                                if @.Destination /= void then
* R9 y+ Y" N( d" I% x* M1 ?                                        @.Destination.NumReservation :=3 i3 |. C5 u0 u6 @2 M$ U/ A, D
                                        @.Destination.NumReservation + 1;
8 F6 V+ g; }$ w$ A                                end;# A2 ~9 H" D/ k! K0 d3 W3 R
                                @.CurrIcon := "drivingHome";
9 {6 e% A6 L' o# W7 `6 {& H- E$ Z                                @.DrivingHome := true;
, e! n, }& u- S, q* k2 O1 v( ^" ]9 u                        end;, _% M' |- q  J  h+ N; X/ {4 c
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# u5 ?3 R1 A9 n* ?. Q  o                        part := @.transpOrder;$ Q/ Z9 R; I) {3 o
                        part.move(@);-- load part, {7 }' N3 @0 r: H
                        @.CurrIcon := "load";
* x/ ~7 E& ?/ s+ X; a2 n! T( P* C                        GlobalDistObj := part.globDestination;
3 s( J8 u4 m( W8 `9 F! D                        assignLObj := rgmanager.rgAssignL;
( p* H% }; Q& K9 U/ I( e; N8 M! B                        row := assignLObj.getRowNo(GlobalDistObj);
* z) [% }7 W% }$ V                        if Row = -1 then -- since 705 P4 A+ K: O" ]9 f
                                if lan=1 then5 k7 P  c) @( {/ N- g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ u; B& [2 I5 q% Z! i. p) z, P/ \; Z                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 a( @0 l# P# d; p. X: W0 Z( z5 d                                else9 {& _( X4 I# c( H
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# d" t! S7 B$ D6 I( A# T9 e' T% G& A
                                                to_str("in docking station: \"",?.~.name,"\""));                                & _1 L+ [1 P8 p* z* `) {8 J
                                end;& m% u% H$ G+ H& q
                        else9 X# [% \' a( M: c+ Z6 O
                                @.Destination := assignLObj[1,row];0 `: [! s8 F* N8 y. u* t! Q" ]: v
                        end;                        % o/ c% W5 w6 C5 v
                        newDirection(@);, l* b. z  T5 R4 r6 y% S; y4 N; A
                        @.HasOrder := true;/ Y" L& P2 }% [* {. w) L9 [9 H
                end;( F- `/ d, z- c
        end;
7 c/ F  f9 G5 y# b2 ^8 s  |end;        -- of the method
' M3 }& B1 t7 L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 y7 d* G$ F) U, r. U& m$ H

% h7 p8 _+ B2 c  V这是AGV_putin中arrive的method。
. n' f1 z4 N# X4 Y( B1 K- ~7 o* h( _8 q' M4 L
当到达物料速度越高时,这个报警更多,
" V  A# d9 T- k. y4 x1 c4 C7 W可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: [; f; K; [4 h" o程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
$ E+ O! x! P, {* N) ~9 v& H8 p, c2 X+ ?1 V( ]4 N5 [
另外一个小建议,就是move,所有的move都可以这样
& @1 C# J7 w: P, i" k$ Hif not move() then debug end3 q" e5 P/ V2 u# d& s# X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 u" D# c. M2 W) H
plant simulation中的free libraries有AGV模板,( s' A- _, }, I; P) [/ ^" F
里面也有案例。
  a: t% }* Q# h' H( N  r& R我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! C" p* j: ~& Z
3 G6 L9 G: c- t- R& @我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 M6 z( O# G' E9 x; y6 C. n) X* u2 Q" }
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # r: Y7 z) C" P5 W$ w/ ~! M! S
这是AGV_putin中arrive的method。
2 i# [* v, N; X6 R8 V3 Q; ]# f8 |& P$ L& _
当到达物料速度越高时,这个报警更多,
8 Q; l$ j3 o( X/ X: e
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-9 01:51 , Processed in 0.017385 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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