设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8305|回复: 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'
  G, f2 O; {: `+ }*/! j" D' r% T& J- _
is
+ }4 f+ k* q8 q  o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;0 P$ [% s. c4 Q; T  T
do# |7 E. a  p% L: I9 H( U% X7 @5 A7 w! @
        Lan := rootfolder.Internal.Tools.AOLlanguage;3 Y( W7 N: u& E+ L  }" ?& Y, S( B
        if current = @.Destination -- else return! T; Q6 i0 D! R% r
        then- N* D* Z9 ~2 |$ S8 f% Z
                @.Destination := void;
4 y3 R& R2 J$ N4 G9 X+ I( N3 l' h                if @.occupied then/ n# P/ B* F( [0 I) W
                        part := @.cont;8 H; U: ~) S+ d0 y
                        @.transpOrder := void;
  P& k% A2 `9 ?                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 j9 \9 U8 i( [9 p$ A' v& M) ~1 n- ~
                                @,root.eventcontroller.simTime);- h" g3 W3 l5 n1 Q( s7 W
                        @.HasOrder := false;/ r5 @. q) P$ P) Z5 j, j% _
                        @.DrivingHome := true;: K/ w% D+ h/ G- C; o
                        rgManager.tryToStartTransOrder;7 D6 S0 H* o0 ~
                        if @.Destination = void
- P( o# `/ L( z7 Z4 A$ B% K# f                        then -- no transport order for vehicle @" t1 \% [, o2 J
                                @.Destination :=* l4 |, Q+ `+ |1 U$ U
                                rgManager.nearestFreeStation(@,track.~);, l4 y6 f; w; ~, V
                                newDirection(@);   
4 [, U5 x9 {! Y6 q9 ], r3 [2 n                                if @.Destination /= void then: B0 p- p: N6 s0 S
                                        @.Destination.NumReservation :=3 a. r9 P8 r" H5 R* M& F# @! J
                                        @.Destination.NumReservation + 1;+ \/ h( c& G2 P0 X+ l4 v& b: T
                                end;9 S8 h+ o6 T: p; I/ _
                                @.CurrIcon := "drivingHome";! ^" ~1 g' y6 Q2 o6 ^
                                @.DrivingHome := true;
  D! `8 y5 ^4 a4 L# w2 `  ^. Z: z                        end;, h' u( c; ]8 |/ Z3 Z3 `; q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 n$ M+ l3 y3 A4 x# x; W  _, E                        part := @.transpOrder;
: E+ f6 p+ ~5 p3 g% N                        part.move(@);-- load part0 f5 w: d1 E. y8 X1 f
                        @.CurrIcon := "load";! C" s3 w( Q) f1 ^
                        GlobalDistObj := part.globDestination;
' a8 n# T- ~! u% c- ^# _1 t+ i/ Q' T% B                        assignLObj := rgmanager.rgAssignL;* b9 p* L: f/ b6 X. \& x; _
                        row := assignLObj.getRowNo(GlobalDistObj);
8 Z5 M+ h4 Y- M- P$ X                        if Row = -1 then -- since 70  H3 @, h# o$ _! T+ O% G1 N7 g4 m
                                if lan=1 then
/ F8 ]" X) N+ l. ^                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# Q2 g2 p+ ?, _* C8 \. f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 I- H2 H+ \! o                                else$ [) q2 G* u) X6 j2 v
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ x  W. q1 u  {' N. {, [
                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 @& l& A% S3 a) c7 t+ u                                end;4 R1 c) ]& @( t+ U! X) y( R# Y3 a
                        else5 i) a  I9 \6 s+ S; x/ \
                                @.Destination := assignLObj[1,row];( d  O6 \- p" W* L4 c* Q% h) H: O
                        end;                        # h% @" y  N; i6 B! H7 k/ @& Y& }
                        newDirection(@);
  m' l% A- _' L* ?+ x                        @.HasOrder := true;4 x+ K( A( z" S
                end;8 M2 {  f$ _! A, R* L
        end;
9 i1 T( F/ d) E4 S' i( Wend;        -- of the method
/ J. @  i2 x) Y% t' ?2 P) f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! q, c% E4 Z/ a2 u8 B7 q% O

" \) ~- R% c* B6 S* q4 ]& v这是AGV_putin中arrive的method。" ]. ?& Y9 N1 p8 }: A  U1 V
# T2 q. t) X. b: g& u+ [. p  Z
当到达物料速度越高时,这个报警更多,# R' E9 E2 O2 K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  h+ K, |4 @9 \7 K5 s; A3 V4 L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
' Z# U$ e/ n5 H, j2 E8 L5 e4 y. {) P8 Y4 I
另外一个小建议,就是move,所有的move都可以这样
7 @! `& n3 T0 l& aif not move() then debug end" s8 F% h4 E, N: E0 ~
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 X/ m/ R5 w) v, P' w/ A; M; Z0 j% p/ w% _plant simulation中的free libraries有AGV模板,, @( V) q* i; _( X5 a$ N
里面也有案例。* ]& a) r: h: {8 d& {& t' Z
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
1 z0 l3 C, t( ~" E: e/ f
8 E0 R+ L! [# C) e我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 N" b$ u1 ~# ^7 y8 k  L0 f# m2 _
3 X& ?- _8 K- H) F那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 J; o6 O8 `2 M" u/ F. P* f这是AGV_putin中arrive的method。  s9 L' I# q$ j" }; y1 N0 L1 {

( V( \9 y6 T1 G5 _3 h  W% X当到达物料速度越高时,这个报警更多,
: {6 U3 W0 Q. o# W. Z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-26 19:09 , Processed in 0.015420 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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