设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9289|回复: 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'
( W# {+ H/ X9 F4 f*/
3 ?' }8 N3 N) P* N! P* |is
0 d& z" @# G5 y6 D$ e3 O. P$ U# M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
" l* e- e/ I& Hdo) E  ?; y; ^' ~
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 R6 F' F+ n) @) Y/ Q# a6 i6 o
        if current = @.Destination -- else return
/ s1 t4 v6 R) w1 C( X: Z        then
' z$ I7 Z& u; S3 M                @.Destination := void;
6 w, W' w$ }' D4 |                if @.occupied then2 R, J& [% T. S8 A% ~1 T( u) U* M
                        part := @.cont;
, E7 F6 R3 ^+ [2 F0 Z8 i7 |                        @.transpOrder := void;. Y3 P6 \% }" M: z, H8 y; c( L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 s3 @" [! v5 W2 m; l) n                                @,root.eventcontroller.simTime);
  l% k9 O: c4 R: K. P9 k5 @0 _                        @.HasOrder := false;  r3 ~2 P, U5 \* l! i) b
                        @.DrivingHome := true;
5 e7 ?  v& f; E1 V                        rgManager.tryToStartTransOrder;% M+ B; X) Y5 q9 @( G0 i. q
                        if @.Destination = void+ k( v# p2 S+ N' W" I+ \/ x
                        then -- no transport order for vehicle @' F. S3 Y7 K5 E3 h
                                @.Destination :=
9 y/ }1 x/ a1 h                                rgManager.nearestFreeStation(@,track.~);, d: g$ @# @- w/ Q) w- K1 p
                                newDirection(@);   
: q0 f$ G! ~1 m6 i                                if @.Destination /= void then1 y% g- L* t8 ?; }+ ~+ g
                                        @.Destination.NumReservation :=
' H9 [. p8 ~  [, j: |                                        @.Destination.NumReservation + 1;
4 x! A: V/ U5 W& Y1 ^                                end;
- S2 q# P2 Y4 w. N% v* q/ f' W  r' s                                @.CurrIcon := "drivingHome";
# y$ ~/ d1 p7 P/ o0 b& v/ D3 {9 Y; \                                @.DrivingHome := true;: x9 E" ~% }: k- q; z% S
                        end;( ]" w* S% R1 \9 n  h1 Q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ _0 _! j# }& P7 n) K                        part := @.transpOrder;
- o3 t4 L: [5 _' h5 ?1 S. S. g                        part.move(@);-- load part; L  k' a, @$ ?' Q* M# [" U& \
                        @.CurrIcon := "load";
  s8 J; [) Y. m$ J1 v3 a" ]4 ]                        GlobalDistObj := part.globDestination;
' D- ^7 S% ]9 w; ^6 H, ^3 U8 ]                        assignLObj := rgmanager.rgAssignL;( F1 v1 M: n/ s" m$ |; f
                        row := assignLObj.getRowNo(GlobalDistObj);  J8 C1 C/ J5 N  a% A* i- N
                        if Row = -1 then -- since 70& F5 ~5 n0 R& {, Z! H
                                if lan=1 then
/ z0 i) U- i- ^  S                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* G( J3 N) G1 G* h- Q. U- X- h
                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 M6 {0 Y7 X. l: n7 B- a7 U: W" f
                                else
5 M0 ]0 ]+ B& f% W8 V" O: U                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
% Y. w( m: R! ]- ^! a3 |                                                to_str("in docking station: \"",?.~.name,"\""));                                ( k" p& j0 Z4 d
                                end;* y5 J* q+ H1 i2 V0 ^0 p" H
                        else8 N4 c% \/ {7 W: l- U
                                @.Destination := assignLObj[1,row];
3 S0 V3 s2 }( }+ Y$ O+ u                        end;                        ) {2 V* T5 M( j9 J
                        newDirection(@);
, _  Y$ C# Z' x, {3 l' z7 m                        @.HasOrder := true;, `/ ^+ f3 i0 s# [# {
                end;
- k4 V" p1 x0 C/ f! b7 ?        end;5 |6 l( {% J+ b/ j  N
end;        -- of the method: |" r9 w  s, S. g/ x8 ^  O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - Z/ m+ x0 q* b/ N

1 ?2 c. Y! T: D9 q7 V( b. r这是AGV_putin中arrive的method。
8 m. s3 g; E( v' o$ m$ Z
, N! A; s7 C$ e# Z" e/ }当到达物料速度越高时,这个报警更多,: G0 h9 m3 _9 [$ I7 n) i; n
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 `( M, G( h& i" n
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; d, A) F9 B( O0 C2 @8 O" a; t) Q; k! a7 q
另外一个小建议,就是move,所有的move都可以这样
1 ]5 j6 D! L% N# ]. R1 Lif not move() then debug end; v( r0 c" m0 W* y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# t& J' n0 w+ o# G7 m2 i  _8 N
plant simulation中的free libraries有AGV模板,
6 G* u5 F2 B. N. {% j里面也有案例。
3 I* x- i/ I0 L5 P! ?: j) a# A1 r我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ r' H- G( n6 H3 k. z: Q
; E1 \3 d% ]" e" a2 C
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" @: G0 Z- W7 [* Q
7 w! ?9 c" f1 M( D! [; O& l那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 C  I( F6 V- }0 `" ~( V3 h
这是AGV_putin中arrive的method。; K: f% j) Z. E  q
) z/ W5 X) a# V2 j5 j
当到达物料速度越高时,这个报警更多,
' I/ Z* G9 P  o) v$ w: X, K
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-23 02:58 , Processed in 0.020676 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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