设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9192|回复: 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'  ]; E# E3 m3 v9 z5 B/ i7 f
*/
( o; ]6 m9 g2 a; c3 T3 O, @( j% Cis
) h3 h3 [/ a: d" X        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. r; N, ]' T3 Y+ d3 ~2 D3 R2 Odo
% X; @+ b8 J3 Z: S8 a- M! V        Lan := rootfolder.Internal.Tools.AOLlanguage;1 M0 j% @4 b' Q! A0 }3 o+ G& @
        if current = @.Destination -- else return
3 D* o' d  {, M" v4 [" `1 R2 I# s        then
) s) r2 ]  B  D                @.Destination := void;7 B5 k! B9 Y  e
                if @.occupied then! P! k" C. E4 J! L0 O$ H5 L  A
                        part := @.cont;3 ?' l0 i' D* I7 e" `
                        @.transpOrder := void;
" f6 E8 c2 D- \# @$ f; E: T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; E% T0 V- e. s7 z7 ^& z; d
                                @,root.eventcontroller.simTime);4 A( X$ S! U+ ~6 e5 I
                        @.HasOrder := false;" h% @2 ?& I& k: ^2 z2 u3 a7 Y. U
                        @.DrivingHome := true;' g1 y# Z/ z( n' j
                        rgManager.tryToStartTransOrder;
  p: w5 o# o  n: y                        if @.Destination = void
/ F  K! @5 g: F& l                        then -- no transport order for vehicle @6 o+ G6 K( o( B" |8 Q- F4 [
                                @.Destination :=/ N+ J$ c4 R/ F1 v: ^
                                rgManager.nearestFreeStation(@,track.~);
4 ^2 o$ G0 f  L% ?6 m+ U6 `+ p                                newDirection(@);   
) Y9 W$ T. c& A                                if @.Destination /= void then
+ G, r% Z* r) h# Y                                        @.Destination.NumReservation :=
9 A5 x% g. j/ [' [5 v                                        @.Destination.NumReservation + 1;
2 H2 H+ a0 `& w8 W' ^                                end;) l% K; u2 X( k4 H
                                @.CurrIcon := "drivingHome";8 C. j3 s2 L. D9 [  k2 o8 d
                                @.DrivingHome := true;
: u0 s% ?0 k! S" h/ |8 ~8 A* W                        end;, {3 @, g: \! Q2 @
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station) f5 C  ^( _2 r
                        part := @.transpOrder;7 }7 B/ B$ q) t; f0 [  k
                        part.move(@);-- load part) \7 o5 |  k( g% |, b
                        @.CurrIcon := "load";
/ p- n6 I! d5 q' b. u                        GlobalDistObj := part.globDestination;
; l! d- f# q6 J  z2 l- c! o                        assignLObj := rgmanager.rgAssignL;
, \/ y# p% H7 e8 V2 q0 x3 Q                        row := assignLObj.getRowNo(GlobalDistObj);3 z( q5 Z: q; Z
                        if Row = -1 then -- since 708 M3 d. I# o, |! g0 E- [* I0 N
                                if lan=1 then7 n, S; f1 P3 |0 @. u' G' \- J" g
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 X0 ]6 h6 N# ?& X
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" ], T5 o9 ^' R3 H9 Y8 U! E! V                                else- X+ b$ h3 ~5 d( M( S6 A3 b
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),  j/ M) p  j. z# \) j
                                                to_str("in docking station: \"",?.~.name,"\""));                                5 _. q. |$ h) {
                                end;. t1 I1 j( p6 J  `  j
                        else) I  u8 M( U* y  r
                                @.Destination := assignLObj[1,row];
( h# _2 h. [1 }& _                        end;                        . {3 ^$ J( ?, g" _
                        newDirection(@);
6 G2 Z- i9 @) G5 W9 ]/ G                        @.HasOrder := true;
+ P) s, R$ d9 K# M) ?- x. O% ]                end;+ S4 k  C' G1 G+ P
        end;! l2 o/ r9 [2 j, m
end;        -- of the method
4 D) r# l7 ~+ }! j0 A6 r, j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; e1 A9 ?/ r* o: T- M7 f; ~8 i
这是AGV_putin中arrive的method。6 E/ _7 M3 q# b0 z, y
* w5 M0 Q. w$ Q4 h
当到达物料速度越高时,这个报警更多,
2 W' i9 n  o4 s2 C$ Y5 o5 [- L2 r可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' R8 B! U; I) q5 k* z# R5 Q- N
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 R! u' M/ C: Q; ?4 Z8 O
( U. J. N; M( }7 n( |6 ^9 A: h另外一个小建议,就是move,所有的move都可以这样/ {0 D5 `  d$ ~2 D! k, Y  b
if not move() then debug end- [# d2 H# p3 \0 ^. @; r* V7 |
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ j$ [7 t/ I  n- k9 F. X7 r+ M9 }
plant simulation中的free libraries有AGV模板,
  D' w1 u3 x. N3 ?# ~* l; E里面也有案例。, o  Y5 l2 b- I6 a  C5 h
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. y3 S9 \0 ~% Z
5 C/ U6 o$ z/ ^/ }& p
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ x6 N* q$ ?! @) m& q9 q! B& V2 G1 e& o9 C2 I8 q) b# V
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 Z' Y8 Z# R+ L1 ?  W这是AGV_putin中arrive的method。% ^) u3 O! ?& g9 p6 C

* m& B; x' ~2 l( [: m/ w当到达物料速度越高时,这个报警更多,
8 J* `6 u& [& d+ o; Z4 \
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-18 18:16 , Processed in 0.014892 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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