设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9205|回复: 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( z2 o2 }& P1 v; X( k
*/# c4 i3 S7 B- r
is
2 m6 F* W; i/ l9 k$ Y5 R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% ]. H$ N' K# ~% O1 {1 y
do
& j0 f9 N8 k: n  a8 H# h; ]        Lan := rootfolder.Internal.Tools.AOLlanguage;
; c& I. I8 w6 H+ a! h        if current = @.Destination -- else return
' `* D! W, H( T, `7 a        then
+ m" Z/ h  R1 x6 k                @.Destination := void;
: _( L9 O9 L+ F6 g                if @.occupied then
2 V; U. U1 s/ i' v8 H9 a( k                        part := @.cont;
6 i% N0 G2 |& ~: w$ Z                        @.transpOrder := void;" S# N& M  O& S! H1 y- A# Y6 [* T
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,( a. {% g$ u8 M" b
                                @,root.eventcontroller.simTime);+ L3 m- N, e( N/ D# y/ ?1 `% d
                        @.HasOrder := false;8 b& X3 b8 w( C9 q7 U# @
                        @.DrivingHome := true;
3 a5 r: ]+ S. r  p9 Q' R; B3 B                        rgManager.tryToStartTransOrder;+ \7 @6 Y1 y& O% x/ [$ q6 q% O
                        if @.Destination = void
6 H1 {" B% ^0 K                        then -- no transport order for vehicle @
% x8 @4 H# e* `$ h( ]                                @.Destination :=3 ?# X9 o0 B, B1 E' q
                                rgManager.nearestFreeStation(@,track.~);
; [0 q- C( y5 ~                                newDirection(@);   
7 z" ]2 {5 I+ G, I( t2 M% I6 b" _                                if @.Destination /= void then. Z1 A* W: g. e2 w
                                        @.Destination.NumReservation :=' x: _3 w" Q. _' g
                                        @.Destination.NumReservation + 1;
" T. g2 z$ i3 ~+ n, e. u( a, i" s, p                                end;
, s' ^& m3 `  ^0 y. R                                @.CurrIcon := "drivingHome";6 C; o7 ~" I  c4 V$ `
                                @.DrivingHome := true;
  r" ]5 d5 m, l: ~* _1 l% `- ~6 r1 T                        end;
1 P$ E9 f/ r" }7 k6 F                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. k3 V2 S$ O) T) u( h( ~2 |                        part := @.transpOrder;
' T( I0 u8 {. S5 i" Q                        part.move(@);-- load part
( k: w0 R/ v; l! ^- D                        @.CurrIcon := "load";( ]! n3 Q) Z6 O: {+ a
                        GlobalDistObj := part.globDestination;
& a4 C! r2 h( B1 G  r. W  ?6 k                        assignLObj := rgmanager.rgAssignL;( w/ Q/ t+ _3 J# `3 L! c+ j# e
                        row := assignLObj.getRowNo(GlobalDistObj);2 I+ e' t8 E+ ^( Y( B# H( U
                        if Row = -1 then -- since 70) g9 q2 h1 z7 r. B9 ^, ~: g! o, Q
                                if lan=1 then0 c* W8 H3 r3 O/ k
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) o, j: o& f. ]7 i
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' m. X% E$ z' z2 r/ E. v0 ?: Y5 h                                else$ f+ N* i" U) M7 X) u. u  ?# n
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 p& c$ b% Q: M/ v* f& A4 @                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 m: y* b7 A# ~0 U/ B, q# Q                                end;
0 X5 U& O* D. w6 b0 s                        else
2 W7 h: ~1 m" D; O+ v                                @.Destination := assignLObj[1,row];% r! |) @7 @. i4 p# j% |& f' P
                        end;                          R7 R: e% e! D+ P2 ~
                        newDirection(@);
6 m; a( s' l3 _! p) f# ], `                        @.HasOrder := true;) M# h$ ~- |% v, _
                end;
7 L3 c. H, `7 m5 ]  s        end;
! F; D' D" {9 ~% T6 y' wend;        -- of the method
, |5 s8 x- L$ J+ X; L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " t0 b& N( P9 X' s! d9 ?7 C- ?

8 D8 U# Q+ Q/ A6 ~5 v这是AGV_putin中arrive的method。2 z* A7 Y( B+ @+ F* M9 D5 S& x( T! A. ^
. Q* u. P# t$ B  g# @
当到达物料速度越高时,这个报警更多,
- ~* D0 h+ e: L  a9 |9 S7 m" I( F7 z$ \可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
; {! |. _8 q: w7 S$ E5 O& |程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- D1 [* _- T4 e* X; v
% w4 Y1 g+ ?. J' b2 j
另外一个小建议,就是move,所有的move都可以这样' ?2 \% {6 F, n" I$ q2 y
if not move() then debug end
* O( y; ]6 r, F! v& l这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 ]+ r9 E, J) @, }& M
plant simulation中的free libraries有AGV模板,' h5 y4 [1 E' U$ q/ y
里面也有案例。
, f+ [: f1 p2 K2 o. a3 s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
8 Q% o8 P' M+ s0 M
! y. x* Y( j5 W: y" C4 n7 y6 P我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
: N2 o$ @. k* c/ D# c) Z: ?- t0 n
  E% A1 f& V- t" b0 I+ L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 ~4 v$ D* C5 p/ E3 [这是AGV_putin中arrive的method。
1 E) r0 g$ t" a; T2 K
2 V+ b% }1 d7 V当到达物料速度越高时,这个报警更多,

: H7 L  |" q9 B, V" S6 N) u1 x7 Q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-19 09:20 , Processed in 0.019673 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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