设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6468|回复: 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'; R2 E( E# v( a3 j
*/( H* Q9 V. d& z' ?
is
& M" f5 x! A- M" Y- U( M, C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;8 T: d8 {" n' g$ @
do
- Y# d  W( Z% c. u+ l. ]        Lan := rootfolder.Internal.Tools.AOLlanguage;& w/ M& y1 K8 Z# @# `( T+ k
        if current = @.Destination -- else return3 }" {# K2 r9 i% _' ^, ~) H9 s
        then/ f* d0 n% N1 d6 Q
                @.Destination := void;
" f1 p6 k; L9 ~. F                if @.occupied then
3 m1 W: _* ^% ]0 f5 p$ v! F                        part := @.cont;4 Q. \" x0 B) A& q6 Y4 I8 R
                        @.transpOrder := void;8 b6 P9 r5 ?9 |6 Q3 d+ d) T
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
! O% F0 J  V; K9 G, U                                @,root.eventcontroller.simTime);$ s" Y, D! A! O" }7 h" L
                        @.HasOrder := false;
$ B9 W% `1 [/ [                        @.DrivingHome := true;
2 ]4 K) b: q% B; ]                        rgManager.tryToStartTransOrder;1 b3 H0 x$ {& S$ F8 R: a5 M; |5 g
                        if @.Destination = void
: J$ P7 K' y# [6 d                        then -- no transport order for vehicle @
0 [: o7 R: t$ R- s- a                                @.Destination :=
( N' v2 f- s& r* a- C9 c                                rgManager.nearestFreeStation(@,track.~);
8 }& }, V/ C4 C9 p5 P                                newDirection(@);   % x, E9 t) M5 p8 `3 g' Z( q
                                if @.Destination /= void then8 G) C/ s5 a) J: Q6 I6 i
                                        @.Destination.NumReservation :=
9 v( a' V& C; m. E! ~0 z                                        @.Destination.NumReservation + 1;# a# P% _( A- \0 {. |7 S+ D
                                end;
; M% j1 ^# _( o1 T                                @.CurrIcon := "drivingHome";
% n' Q* v6 I2 m+ F2 j/ c                                @.DrivingHome := true;
- L' L) m; y" d5 J* t' Z3 X                        end;
5 C: j6 b5 O4 ~; ^  j' V$ A8 _                else -- the vehicle @ is empty, both vehicle and part are in the same dock station7 j7 g1 Z4 d9 [2 A# z
                        part := @.transpOrder;
, ?2 C2 k( H1 j. A8 g- u7 [  o/ Y- N" s. x                        part.move(@);-- load part. d1 p0 s( Q/ u/ ?" P( }2 z" Z
                        @.CurrIcon := "load";
2 H0 z& V8 S! N3 y                        GlobalDistObj := part.globDestination;4 i; }1 j3 r1 q+ R, d
                        assignLObj := rgmanager.rgAssignL;$ B% R0 T; X$ X& I. M7 q
                        row := assignLObj.getRowNo(GlobalDistObj);
/ \2 h6 `8 U* Z- O2 e* m; z                        if Row = -1 then -- since 70
! K3 `% b2 J5 f. ^5 @9 A3 x                                if lan=1 then
/ m* P6 I2 J$ `2 o; g                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 r' s2 \# s* y3 O0 X
                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 c* `, Y, w# N. Z
                                else5 g! y/ |' ?1 A5 J
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 Z/ G( ?2 n4 T* Z0 G3 F: H& j
                                                to_str("in docking station: \"",?.~.name,"\""));                               
! a1 k) O6 z( r, Z, U% \1 V                                end;
+ c3 H1 @0 O$ F# f0 n1 ^9 _8 V                        else, \9 h/ t2 Z( k
                                @.Destination := assignLObj[1,row];; z! w) l6 q8 \! Q" \
                        end;                        / J  r' i" g- D: ~
                        newDirection(@);, ^6 w/ P0 x9 d/ t
                        @.HasOrder := true;
# W8 R( O$ x+ z. r9 ?2 D! H                end;' f: `1 G" Q* n& F$ L4 ]  i
        end;
7 D+ D/ @# Q- R/ d% ]end;        -- of the method
, K3 y& u' H/ {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; _0 S: m( r+ P" \5 W6 Y
/ ~8 p" f9 z7 s, ?1 _
这是AGV_putin中arrive的method。) _: O! o6 C/ x0 D; U+ J

0 Q2 T0 ~' x& V0 T/ v# Q; A当到达物料速度越高时,这个报警更多,
7 M3 G% |- @3 X0 |/ C  H可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& ?1 d0 Q0 s* N, ^程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! \& i2 ~3 ~: f, _( y& K* G
3 \- z' q. Y# H2 @+ |
另外一个小建议,就是move,所有的move都可以这样
  O: ]; k3 p! o0 E+ vif not move() then debug end! ?7 P0 P) V5 @8 \: W; P
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) I& M0 c0 m3 J& d1 Hplant simulation中的free libraries有AGV模板,2 R* L" ]& H, v' _
里面也有案例。: k* c8 p+ W# z, l1 R( a
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ J$ i2 }, x# [* }4 p& J; I+ i
3 l4 v4 d3 p! L# n. r) `/ q我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" j) \: ]' f6 ^' {# n1 t  j
: H/ T$ ~0 X5 n4 Y5 {) r那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   o* P& q! ]. w( h3 ~; F
这是AGV_putin中arrive的method。  k) x8 r/ P3 [) W

2 S/ E, J: |2 m. U* ~" O$ e6 ]8 T当到达物料速度越高时,这个报警更多,

' i/ W2 _1 X7 M& A- h) G另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-8 11:17 , Processed in 0.018275 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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