设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8668|回复: 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'  z0 N. _: y* e1 Z+ q
*/- o/ ^( d9 u* F% X4 V( I% J
is5 a& s  `% }) D  ]* i
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ |2 L, M3 q4 f9 n4 \do7 ]+ X: ~- T3 Y" _
        Lan := rootfolder.Internal.Tools.AOLlanguage;
7 F' R$ I  ]" ]! i        if current = @.Destination -- else return
8 i! z6 K- @9 w! K  _        then
1 M$ p' o# e: v8 y5 `4 D                @.Destination := void;0 J* X5 b5 p5 S
                if @.occupied then
' |: |9 ?- G$ l                        part := @.cont;
- p3 |3 a% D+ @                        @.transpOrder := void;
. k4 r# c7 ]3 M3 E/ L8 s: T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 c3 Q: v. N5 I( e' c                                @,root.eventcontroller.simTime);
7 Z# l; `8 Y- }" T: I* x- N6 Y                        @.HasOrder := false;
# M% f! f) {" A& H7 Y7 u% G0 v                        @.DrivingHome := true;
- E8 k: i* i  ^; }( l/ s                        rgManager.tryToStartTransOrder;
; O0 v; \, _0 r* A" u7 e7 l                        if @.Destination = void0 c. V% i# H( \1 D# O3 Q3 m
                        then -- no transport order for vehicle @
4 O, e4 u3 L( E- U( B* ]                                @.Destination :=- A: o, p0 }& u+ f5 L& e% h1 K* s
                                rgManager.nearestFreeStation(@,track.~);
% O, q) }) R7 \5 {) v7 y9 l$ _                                newDirection(@);   
! `: B, i* g5 H                                if @.Destination /= void then
) V4 Y3 V9 Q% }, N                                        @.Destination.NumReservation :=
$ t( S% t5 h: S0 N                                        @.Destination.NumReservation + 1;
% a6 j& m! b9 w$ r" {0 H1 J( w+ u                                end;: S# K. G" l: O  w, S, z# h
                                @.CurrIcon := "drivingHome";
+ h! |! u1 R3 K* B. H                                @.DrivingHome := true;' p/ {# p$ K0 c, c  m
                        end;
9 t3 s# ]- L. r% u                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. h/ L" P5 @- s$ T! o2 T
                        part := @.transpOrder;: E9 |0 A& v* Q$ E. T6 k+ l4 W
                        part.move(@);-- load part
- |$ n9 G. M  V% }+ R! ]3 ?( o5 d+ w                        @.CurrIcon := "load";' N3 L9 E& f( }$ a: ~+ K  i8 _
                        GlobalDistObj := part.globDestination;
! S3 N/ ^, N2 q0 q9 v                        assignLObj := rgmanager.rgAssignL;
( I1 U7 v7 i8 ]6 a/ Y4 P. B% |8 _: m                        row := assignLObj.getRowNo(GlobalDistObj);. _1 \! D# D& c9 A! q% f
                        if Row = -1 then -- since 70
* X- U& A$ V) G) f                                if lan=1 then% b+ R, ]$ O( ~+ ^- H# a$ W9 n$ z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),  k7 N$ {: {2 {' g$ S
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' H! e9 w: g8 Z4 b: H3 q. D. M                                else  G' M/ ~% W' _. z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," C# V/ p4 n. g4 Y
                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 o$ U: `: b2 ]* J+ e8 z( G                                end;
$ r  I& H7 A+ `: B; J/ P# I2 G                        else; Y* }9 w. U2 g5 r: D- |0 \
                                @.Destination := assignLObj[1,row];
. s3 \9 w; G: Y% q# ]+ U/ O                        end;                       
6 L& B& d7 L5 Z, F+ [5 V, w                        newDirection(@);
' B: H  I, _- J# `7 c. r  M! X                        @.HasOrder := true;* G# e: @5 F% Z, k* h# _# H2 e: G! h
                end;
& S% o/ ?6 F. N) T9 H        end;" x% L+ l! P' B  v4 K; |
end;        -- of the method
7 p" K3 ^% m! l' v) t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ }) F- E) k, d, [

# L4 y$ Z: L, X: R7 s0 T这是AGV_putin中arrive的method。
+ Q  Q9 }% O9 i8 d
. T4 Z! @8 b. x- E当到达物料速度越高时,这个报警更多,. P/ s. F& k( i3 C$ S
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 W0 R6 ]8 [  O2 o, X* U, l+ Q/ s
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 s7 f5 E6 m; @& H, V7 z3 F$ B
" ^! D8 |6 a& ?9 ^1 t2 K. g另外一个小建议,就是move,所有的move都可以这样# O" O, x! F$ m$ y6 b0 U
if not move() then debug end
! b* }: `; X" k/ ~这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( F1 Y. N* N' t" a
plant simulation中的free libraries有AGV模板,
" b. a& ]- }$ i: f里面也有案例。+ v! t% H9 a" n% B, W: A$ l
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* A9 A# h1 V9 Q3 P
/ y9 y( }: ?' L6 B
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 D  T7 b0 d/ C, s$ Q) d

  |, |" p( r* D- A6 a2 O3 W那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / }5 t+ _7 [# }, p# t$ n8 i
这是AGV_putin中arrive的method。
& h* c8 w: @: g2 n3 {* w. m3 G( ^; ]7 R; w- V' @$ ~( P; }; K
当到达物料速度越高时,这个报警更多,
" ?8 t$ p4 Z* U' N/ L
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-19 04:19 , Processed in 0.017240 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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