设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6387|回复: 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'1 J% C4 f- L2 y' d. f9 W
*/
( q7 f9 Q, c1 ^! Ois
6 n( C5 \$ q& F$ M! I$ m- U        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 @0 o% @5 u! l4 s+ O+ `
do) P( `% l$ R2 N1 H+ ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;' f7 Z9 N2 i+ k( C+ ]2 R# \
        if current = @.Destination -- else return
2 G2 Z) Q: P; ~, r( b+ C5 `        then  v8 F: L' f  a& M! e
                @.Destination := void;: s9 p. B+ n6 N. {5 I
                if @.occupied then
' ^) K, G9 ?4 F9 }) S1 q                        part := @.cont;/ i' T/ \, j$ L
                        @.transpOrder := void;
- @9 |5 I! l& K$ }, y+ J7 F) A, [                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
4 V2 P! X) e/ Q                                @,root.eventcontroller.simTime);
7 M7 X# W% j9 p) ~, s                        @.HasOrder := false;2 Z* k0 z8 n! v: L* `
                        @.DrivingHome := true;' o% L/ b0 |/ ~& Q! u, Z. M0 ^  E+ K
                        rgManager.tryToStartTransOrder;) \4 d1 r* E0 ~) Q( |4 e
                        if @.Destination = void. }# h( D; F) B; N; ]4 @& y
                        then -- no transport order for vehicle @+ y: u; z4 ~4 l6 X% p
                                @.Destination :=
6 }- Q! T9 d2 d5 X. C( s; _                                rgManager.nearestFreeStation(@,track.~);
4 ~) D( {% Q4 A9 D% a3 J# k                                newDirection(@);   
% l0 M/ w' a2 k1 u, W" R# q                                if @.Destination /= void then
6 Z+ M. E9 n2 ^' y                                        @.Destination.NumReservation :=+ P. E- \8 |$ p0 Y, e( Y/ T
                                        @.Destination.NumReservation + 1;
: }2 w. d, z. W' S) C                                end;
% B2 ?1 T3 R& j& D9 F                                @.CurrIcon := "drivingHome";
+ z. M2 \. {. Q# [7 p0 ?% J                                @.DrivingHome := true;
+ e0 n8 a) E8 ^8 j8 r                        end;5 ~( u1 s( }% y) o* ]3 D4 B1 j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ p" k. q! m: c                        part := @.transpOrder;* U* m1 G( C* L
                        part.move(@);-- load part
+ H+ ?" o- Q- m' ]7 r1 d7 I9 I/ s                        @.CurrIcon := "load";. B3 F* f; F3 ]
                        GlobalDistObj := part.globDestination;4 ~! ?0 F, l' x
                        assignLObj := rgmanager.rgAssignL;
- ~# ~! S8 k. X' a. @                        row := assignLObj.getRowNo(GlobalDistObj);
. w: c6 c7 W7 w$ F                        if Row = -1 then -- since 70
, d: y2 x9 L+ [. N: u                                if lan=1 then
, H  R) A' R; ?& c( _                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" V8 C  n6 D7 `$ [7 X$ ~0 |                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 Y% Y  |" \7 w
                                else2 @( k4 s1 P" `
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* C3 H/ ?( Q+ \5 z! V                                                to_str("in docking station: \"",?.~.name,"\""));                                - f2 O' n+ u4 B8 ?3 L3 }, [) V1 [
                                end;
, F: V# \0 t5 k; S7 U" @$ r                        else1 o+ N+ Q, J* l; a* |" E" l  D
                                @.Destination := assignLObj[1,row];
; G+ F2 U- f9 U                        end;                       
8 Y* I3 v3 p" w7 G% U* \                        newDirection(@);
3 k1 N1 N& u% g! S8 \                        @.HasOrder := true;  a+ `" L" W. d( k/ G. l+ v
                end;
6 O& n. H* B. W1 {! C) t; B        end;
$ ?! x& X" [2 ]- ~* bend;        -- of the method0 g/ b- f  T* P5 O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 m3 z5 o* a3 v) e9 w4 X  q: @% Y' n7 k7 z
这是AGV_putin中arrive的method。( m' V$ x. Z# w9 k. J4 S
8 D  u7 ]/ A" w9 R& f
当到达物料速度越高时,这个报警更多,
. E" U1 w- x. b' f. B可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! ~! [* D' |0 N( ^
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?. o  L2 u0 H6 C% L, ^" ]
3 K/ t& g$ ^# a  t8 [" e
另外一个小建议,就是move,所有的move都可以这样) P, O, @+ Q$ D* }; H
if not move() then debug end
! d+ B' H& l' {' h" P这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" x/ U% G& Z0 u8 D0 `8 V' Uplant simulation中的free libraries有AGV模板," G3 r$ [6 W' y; P* H, U9 d
里面也有案例。) Y6 Y& t. N6 o  u
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 a9 f, x) E  z8 o5 a
# G: U, c. F# t+ x$ J
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 O% z/ Y$ z6 U% }. o! e0 T; e6 A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * B, V# ], n/ w/ {1 e! J& d6 [
这是AGV_putin中arrive的method。1 H2 F" P  j# H/ M8 x0 Y' Q+ \

  }- A" B) j1 g( I0 I当到达物料速度越高时,这个报警更多,

. Q! i. P$ G4 t' o1 w( N另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-3 12:51 , Processed in 0.036441 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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