设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9579|回复: 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'
7 i6 W: \/ s+ S*/; M7 E5 o0 |0 f
is/ D' }& y& e1 o! n
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 B5 D$ {" W+ X5 u* x
do
9 |7 P4 |7 `& V& N' t% Q* N" w, u        Lan := rootfolder.Internal.Tools.AOLlanguage;9 T3 z6 V" d5 Y+ q
        if current = @.Destination -- else return0 F) R7 h0 u# V+ Z) r8 p
        then& Z% k7 \' W: t' a
                @.Destination := void;
- }0 p3 y( T2 n( @                if @.occupied then" \/ c: `3 `! Y
                        part := @.cont;
' ]4 H1 m- u8 ]& w, S9 W# Z2 V                        @.transpOrder := void;
; y3 L: z' L/ {" |6 t4 P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) g: Z0 I2 n7 U8 F. X8 i& e) H                                @,root.eventcontroller.simTime);
: `, [4 r+ P( j                        @.HasOrder := false;
. q. e  v3 c, }! I/ W0 R                        @.DrivingHome := true;$ q, l1 Q2 x- O: ~
                        rgManager.tryToStartTransOrder;
3 L& m$ F' V& p# ~4 f& A0 j                        if @.Destination = void
/ o) H) Y& C) G: p2 |  Y1 H$ D                        then -- no transport order for vehicle @
# l) W/ ?/ P/ m- [, q: _8 \: m! y4 X5 n                                @.Destination :=' ^7 r; P/ U8 Z5 S
                                rgManager.nearestFreeStation(@,track.~);) [" J' N9 n% H. }' ^: W
                                newDirection(@);   
/ }2 q3 o& j! A# _1 ]! o7 O$ S- K                                if @.Destination /= void then
, F" G! O$ t5 W9 x/ F                                        @.Destination.NumReservation :=1 n0 B! l7 p7 z2 t
                                        @.Destination.NumReservation + 1;
$ a, H! T. s. V: A8 z, u! o                                end;
) @8 s( t6 f/ [2 _                                @.CurrIcon := "drivingHome";, c; r3 l$ F7 h' S: ^
                                @.DrivingHome := true;7 h4 r) f1 a2 [, k/ T
                        end;
0 Q$ K6 z, U+ Z, |                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 j/ g, ]' b* F6 Z! z5 @
                        part := @.transpOrder;
! i; q9 S1 H& @7 }# S4 |1 |! W8 S                        part.move(@);-- load part1 M2 ~" I9 n0 X6 d9 _$ L( k6 e
                        @.CurrIcon := "load";: c  n# x: a- \% s. ?! q9 q
                        GlobalDistObj := part.globDestination;
: n& G2 Z7 r2 B                        assignLObj := rgmanager.rgAssignL;
% a+ p6 [7 l5 B% w' v8 g                        row := assignLObj.getRowNo(GlobalDistObj);
) r( H: w, K) n; O                        if Row = -1 then -- since 70
7 a) [1 z( Z4 q# d6 [' j                                if lan=1 then( Q3 e* I# e1 e$ b& h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% c3 c) B* t' L6 i  i; |* x
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* }" }5 ?  h  I$ t, j5 }" S                                else$ F) z! E2 M# ~- O4 f" \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 A8 L2 |0 o/ t- b9 V/ h
                                                to_str("in docking station: \"",?.~.name,"\""));                                ' N2 G  ^* Q/ _! e  z
                                end;/ `! e" a0 |8 }& j" y
                        else. E3 F0 @* D6 }4 I4 o: t- W
                                @.Destination := assignLObj[1,row];
7 M& ?; W& Z. H                        end;                        3 g# k3 ~3 h% d
                        newDirection(@);9 m0 B, X, l9 n5 b$ {1 m9 A
                        @.HasOrder := true;
4 N& }* r% Z% v6 r                end;6 T8 {6 ]- \3 m1 ], w! d1 e! c2 M/ J
        end;
% P8 c+ A- v- T1 p5 p0 Gend;        -- of the method
# v- k. V$ X  z* z) d$ ]
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 7 t2 G; z' C7 N5 h' s9 \
( T: N7 j3 K0 Y+ M; k9 T) ?
这是AGV_putin中arrive的method。* y* l. `% x. ~- E, X& s2 y7 P( ^9 a

% e/ Y3 X$ w5 b9 p% Z' c# a当到达物料速度越高时,这个报警更多,
! n0 }8 s8 i/ j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' X! \% ~+ j" T$ T程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ Q( o* W5 \: Y4 Y6 \) ^. w

. p& Q- _( F) K4 t6 ~& b# h另外一个小建议,就是move,所有的move都可以这样8 Q7 K5 w5 O5 |" D* o. q
if not move() then debug end
) i% Z( r4 X1 v+ `这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' r. |9 C0 ^0 [# ^! f$ j4 Z6 ]  wplant simulation中的free libraries有AGV模板,
3 f+ U& u6 Z3 K0 H里面也有案例。6 O2 R. p9 I8 W+ q7 R! j
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" i/ V) e4 D" s0 n7 O& Z8 G7 t" R: y+ h$ Q7 |
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # D; I6 ~! O' b# e0 ~
) t% F& Z$ e& [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 T9 y1 [, a7 T% p, d3 [
这是AGV_putin中arrive的method。+ U) C6 y' h5 ]+ e0 \2 E

: V6 Z1 N- _6 `2 G# |6 W4 P0 }当到达物料速度越高时,这个报警更多,
) _5 l9 p" F' |6 A3 M
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-9 10:42 , Processed in 0.018791 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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