设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8464|回复: 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'
( @; `) w6 n& [' \& W5 k" p*/
/ u6 c) ?; _! o* tis
% P( e+ ?8 D! M: z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' P% H$ J6 S: ?! k: e1 a# Z
do
3 j! E# y' K6 L+ v        Lan := rootfolder.Internal.Tools.AOLlanguage;: n; ~$ V# k+ ^* m+ |, b$ ]0 B
        if current = @.Destination -- else return
+ O3 Z& E3 s. o( b2 H9 c        then
( F/ g4 B. ?5 u" f% v. m- g/ v                @.Destination := void;
( R8 B" p  o) Y2 s3 _  W& p                if @.occupied then$ n% @+ K$ ~7 {# h3 ^# p2 x: E6 S
                        part := @.cont;& J. ^# l, r# g& z; W; O3 o
                        @.transpOrder := void;
. a: I3 [6 l& E! Q8 S/ D                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ P8 `* J4 X) i% f/ C8 c0 w                                @,root.eventcontroller.simTime);
3 u- o4 F, A2 H9 B                        @.HasOrder := false;* ]7 ]- K" ~* J3 i, o
                        @.DrivingHome := true;
5 |3 A' c" E+ s' e8 _( _1 K                        rgManager.tryToStartTransOrder;
; ]. v* t$ C" \3 Q6 f& ~, E0 s9 L                        if @.Destination = void4 H6 l5 }$ G8 D
                        then -- no transport order for vehicle @
: E4 Y4 c7 V! {0 _6 H* T: W6 j                                @.Destination :=
+ F* r: o) T/ `- j2 ]                                rgManager.nearestFreeStation(@,track.~);- u$ I5 H7 S- m7 `3 S) h
                                newDirection(@);   $ h) ^7 J) a, Y( s$ {2 Y
                                if @.Destination /= void then! l2 d$ g2 e; O
                                        @.Destination.NumReservation :=
* F* ^9 ~/ [3 f5 N/ g8 V/ [                                        @.Destination.NumReservation + 1;
) c; r9 P9 \4 S+ P8 f6 {                                end;
! l$ d6 x* E- V/ _                                @.CurrIcon := "drivingHome";
- Q" G& }6 m: c6 e' @                                @.DrivingHome := true;9 ?  H6 Z6 k- C0 t% @
                        end;6 M  d+ {* X4 W" p& i4 O$ ^: B
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station0 e8 h) A( }$ L: j8 _
                        part := @.transpOrder;
. j) V+ ?7 K8 i. N# J% O9 R' N& n                        part.move(@);-- load part  N7 X& A8 [+ d$ g+ C
                        @.CurrIcon := "load";
: O# ^% f( q& J8 d: n3 T                        GlobalDistObj := part.globDestination;
( P/ y* H$ |* ^8 \& `8 S  o                        assignLObj := rgmanager.rgAssignL;: I* z+ a( z2 o. P' n
                        row := assignLObj.getRowNo(GlobalDistObj);
# U2 C$ K2 T4 t$ n8 S                        if Row = -1 then -- since 70
# m& c3 x% G) V( e8 A                                if lan=1 then
0 I5 W8 g% z6 F) U$ K4 b                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ B+ B/ |  y4 J9 {$ Q2 Y1 G
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( o4 z  m5 c5 C& F0 _! s5 a                                else
' o; v5 u4 w' s3 Z) E% S7 j                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' u: H* r' u% l  g2 s& B
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( l/ }5 y- N; _! T( q% X0 j! A                                end;
0 O- d- T, {. O: r9 Q5 j                        else5 I: J; }2 G) ?* I7 Q
                                @.Destination := assignLObj[1,row];9 p2 k6 F, V; H  P) Q" i
                        end;                       
! h9 r8 ^; n; {; G                        newDirection(@);
# s4 w5 B* O1 q/ f                        @.HasOrder := true;
) }; K5 ^; ~( y9 E5 ?! Y                end;: E  |$ r* C0 \" ^- f+ x
        end;- H. U6 R; @" A, U; W' O1 F
end;        -- of the method
( j( b# C) f+ v# w/ a! C7 Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
7 m. S3 h9 |) F8 {( ^+ v/ Y$ Z, x) W
这是AGV_putin中arrive的method。7 {2 E" F9 D7 j! Y

, Y6 t& q1 ^' |当到达物料速度越高时,这个报警更多,; e' u9 Q: @+ Y$ v/ s  |0 T2 s
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 N+ V& T4 ~4 {% {0 u% c/ l2 @4 H" @程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?1 R/ u' Y) {& ]! v; f. ]7 s
& U  n6 C6 J7 N6 W% s2 g: w
另外一个小建议,就是move,所有的move都可以这样5 X& H' Q3 z) g( ?
if not move() then debug end3 d7 n5 G( ~' Y$ w: M) O
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' z: y# z4 Q8 K  h) d3 T6 dplant simulation中的free libraries有AGV模板,
+ b& U" x7 e0 `! u" S* c  W3 X里面也有案例。  F1 e5 }+ l2 r
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% K0 A; N0 |+ P: V
9 [0 y# X" a; O' h* M我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 Q5 T2 B! i2 ^2 \% `* r7 ]  _1 K" y) o" _0 _, p, ~7 d! j
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: v  U1 Y5 I" q; Z! C. H这是AGV_putin中arrive的method。
  b6 H, J: X" y7 w. F1 n/ G5 y- D1 X5 C, Z3 u  o8 H! d
当到达物料速度越高时,这个报警更多,

6 F2 L( x6 p2 i& a, s3 n6 x5 P- P另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-5 15:22 , Processed in 0.015137 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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