设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9241|回复: 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'3 r% a- v% E- v* U7 s( B5 K
*/$ B7 J6 r" o9 r9 M( u; w
is
# F) H' I  o/ t/ i        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: B3 v$ s1 n; Y
do
9 n; U3 m- z8 n7 b! B. P/ f$ s        Lan := rootfolder.Internal.Tools.AOLlanguage;. @  S0 E) t2 \. g7 e' q) d7 y- O% G7 }+ B
        if current = @.Destination -- else return
3 [; d- f  w  N$ }. y$ M/ g        then
, Z/ f: A8 |; J  R6 d                @.Destination := void;
1 E. g5 `  D3 }( N# \+ w5 E% y                if @.occupied then$ J$ T3 \  z5 [* ^
                        part := @.cont;
1 x5 ^. [+ z  u9 F" [$ |. E                        @.transpOrder := void;
# q& ~5 ?# w/ G0 s                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, C) H) H$ P* l3 o, r                                @,root.eventcontroller.simTime);
1 z- Y) Q) p: l- t                        @.HasOrder := false;# e: D- @2 [: _; i- L
                        @.DrivingHome := true;
& }! @) X  k, }  P. G                        rgManager.tryToStartTransOrder;
& y9 w) s. H! f1 ~/ {                        if @.Destination = void6 q! `" I! Q# b/ f4 F
                        then -- no transport order for vehicle @; i  P' |" G5 {. ~
                                @.Destination :=
/ U2 ]- S: G) C1 b3 O1 U, [! E                                rgManager.nearestFreeStation(@,track.~);
& d0 b7 V# Q# {# a* g                                newDirection(@);   
  \" v* R% U1 ?% A                                if @.Destination /= void then
& D  ?9 @% h2 E# p8 k  t3 F+ U- w                                        @.Destination.NumReservation :=! ?# L! P- u7 Y/ e( b
                                        @.Destination.NumReservation + 1;
/ H3 V3 z4 ]% s2 m* W4 X6 F                                end;
3 [& r% e5 f. V* g* N' R                                @.CurrIcon := "drivingHome";
7 h# ?" R, O1 j" {* r# ?1 b                                @.DrivingHome := true;
& v# I. C+ Q' P% Z' Y7 P( R5 O                        end;. V0 W* {6 ~5 e! z3 j! p& w9 }
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 ?5 m( F: a1 i/ L                        part := @.transpOrder;
( _5 G& ^+ L7 ^# }  c. \' P& v                        part.move(@);-- load part
& @! m' }3 b7 o# f1 J                        @.CurrIcon := "load";
% v) U& N  z4 ~8 ]7 b1 D                        GlobalDistObj := part.globDestination;' n+ Y5 e7 z: P5 n* P( H$ w! X
                        assignLObj := rgmanager.rgAssignL;7 J8 L; }/ k% ]( V" ?/ ~; ^
                        row := assignLObj.getRowNo(GlobalDistObj);
% H- i/ m2 f2 v3 ]6 a                        if Row = -1 then -- since 70
% U% w$ z7 D! b                                if lan=1 then4 x0 }: n3 X6 v0 B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" \) F. f0 h7 ^                                                to_str("in der Andockstation: \"",?.~.name,"\""));; H. K; p8 w" ?- M5 g  g* B* T( t/ ?
                                else
6 b/ e9 b$ {# e" N                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) e8 R9 P4 O* k5 i: `7 J' W9 a8 {                                                to_str("in docking station: \"",?.~.name,"\""));                                . ?6 @, x7 U' q" R3 w" \
                                end;+ o0 Q& U8 y1 W! t9 r7 Q- D
                        else
8 ~5 e: g1 s3 @8 n7 P( d; J                                @.Destination := assignLObj[1,row];
1 g9 P" L$ p. s& }' n                        end;                        . ^1 N5 ?* _/ O! T0 Q; A
                        newDirection(@);
8 Q& `. c3 y5 V- ^# A5 x9 _                        @.HasOrder := true;
$ o$ e, g% c  A9 |+ k2 p: B                end;. O* U( Y$ \  l! A5 a
        end;' G3 \1 ~+ W* {  M9 q5 b; z  {# x! l$ v
end;        -- of the method
; k6 t2 m" C" `9 ]% ^" N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 W. \& _& n! ?; Q; b' p2 W

, t* Z0 i6 ?% O& F+ x  V; D, @这是AGV_putin中arrive的method。; J( J. I1 a  a
$ j! x( _' A+ K: ]$ L  R
当到达物料速度越高时,这个报警更多,
( Y- R4 `+ s( l7 a+ J: M可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: }! H& A- s/ A6 F# ?程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 X9 p  z$ j6 H( y2 q9 g- T
" G" H& h+ `8 G$ m
另外一个小建议,就是move,所有的move都可以这样
) v8 N& U& ~  |5 C2 i! uif not move() then debug end
- `! K- ^$ E# A/ J$ ?4 B( H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
# w# _2 i. M9 U1 c& B% B$ H/ j- jplant simulation中的free libraries有AGV模板,0 Z' P6 f- v2 v1 s9 Y
里面也有案例。0 e3 a. k1 O# s4 v+ B, B+ ~3 q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 ~6 R5 J! {8 B$ a5 ^; j) A) k6 S4 [% U
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% E% t2 u% e7 o$ Q2 L9 b5 d6 `  i3 `( t( M! a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / I! O6 r! @6 {5 |- N& j5 k% o
这是AGV_putin中arrive的method。
: C2 J0 ^# K1 v8 U+ R
" ^, f# S# l9 r: }1 k当到达物料速度越高时,这个报警更多,

( y$ d' \- E2 ~( M% F另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-20 18:46 , Processed in 0.016637 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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