设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5880|回复: 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/ l3 P  z* ]4 u* H7 r
*/0 }, [* I% Y$ P* O: c  M! m
is: C' v7 D6 h& O8 ^
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- O4 L0 I( {3 d- \/ H. u
do: F! s- N) v3 M3 H
        Lan := rootfolder.Internal.Tools.AOLlanguage;5 Q3 H+ d/ Y! V: }- T5 M3 t( j
        if current = @.Destination -- else return, x$ K# G0 `+ U' {
        then
' V) S$ p  e" n  s  \                @.Destination := void;
5 P! k6 h( @7 |( Z                if @.occupied then# V+ b3 P" @* A! Z7 r
                        part := @.cont;
7 Y% j. U$ O) V                        @.transpOrder := void;
' _6 |1 h0 d. q6 _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 h$ Q! \& l' M* U) @) p
                                @,root.eventcontroller.simTime);/ b  P; f7 z$ R- d: j6 N
                        @.HasOrder := false;
  \2 K- Y' J% m/ R% T4 t5 k                        @.DrivingHome := true;
, @: E! A& Z/ p5 y' L- |                        rgManager.tryToStartTransOrder;
" s2 }- Z9 Q/ t% T+ X                        if @.Destination = void: g8 T0 s! I' ~8 j, p: \" |6 M
                        then -- no transport order for vehicle @
' W& D; O1 I0 t3 ^                                @.Destination :=
. f+ ~! `+ D7 z1 Y2 ?# T) z# A& K                                rgManager.nearestFreeStation(@,track.~);
. k+ `: ~7 c& `                                newDirection(@);   
$ V( P3 I* ]4 Y; d                                if @.Destination /= void then; R9 p# R, X$ f5 N  b" z2 C3 G
                                        @.Destination.NumReservation :=
+ Z8 l5 l7 @$ z7 r                                        @.Destination.NumReservation + 1;3 X* D# f& r6 ]6 s* b
                                end;
' F: t) x1 [% k2 d+ Y' p* D) ]                                @.CurrIcon := "drivingHome";1 ^- ?& b7 q+ ^% S
                                @.DrivingHome := true;) Q6 M3 L0 h$ U2 m$ C
                        end;/ I) e9 i7 J/ o$ c: T1 o+ K! z8 w
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 A* |* e5 p% }8 E. C" O  {                        part := @.transpOrder;9 a# ^( e5 Q9 L7 K/ e
                        part.move(@);-- load part5 Q6 T* R' t' {
                        @.CurrIcon := "load";) V' X5 j7 ^% g6 X0 p: Y( E7 l4 Y
                        GlobalDistObj := part.globDestination;
: c0 P% b: ?1 j                        assignLObj := rgmanager.rgAssignL;
0 M% z& k7 k2 p# t6 K$ d. R                        row := assignLObj.getRowNo(GlobalDistObj);
" ?0 k3 t$ ]. H, ]; b                        if Row = -1 then -- since 70, L. ]" a% N" Z, j( T' Z0 [
                                if lan=1 then4 p7 ?8 M5 Z* X
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),$ v+ ]$ Z- g/ h- ]( X) u& R5 _
                                                to_str("in der Andockstation: \"",?.~.name,"\""));4 n, v# a! M3 f) C4 C
                                else4 Z$ B! Q0 M# {, ~4 y) ~
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 M' f9 i; U/ B$ B$ a
                                                to_str("in docking station: \"",?.~.name,"\""));                                0 M# j4 U  w' d7 }) y. f
                                end;. d) ~4 S6 _8 f& s! F/ x2 L" C. B
                        else
6 }' R, S& ~( d% G( Z1 b& ]                                @.Destination := assignLObj[1,row];
/ y6 f$ b1 @' N) g0 A, r' b* ^                        end;                       
/ o+ c# u$ B5 r7 d                        newDirection(@);% j. _, @! S/ r
                        @.HasOrder := true;
+ t2 x  ~8 r  z$ Z- s                end;' K4 J' f; R, N% V' Z; u
        end;* ~' g9 W. W' h7 v" j2 q
end;        -- of the method9 T& C  _9 v9 R% M  K4 b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / [' w$ ]# i* q/ S  r
  G3 U6 n( C/ s" k, I+ w. t+ ]' r
这是AGV_putin中arrive的method。
2 ]: i" [8 t1 m$ j# [0 ?" h& P% g+ h8 t0 g! D- w
当到达物料速度越高时,这个报警更多,, T3 [9 f  Y& X. b8 }$ a
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 L- n; ~/ L: O5 {4 d/ V- D程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 c5 ]1 q" \9 S
6 T3 ~2 L9 Z' ]7 b. h
另外一个小建议,就是move,所有的move都可以这样. U% \9 [5 D7 \6 \; f
if not move() then debug end  A" w( M* P) T2 C% W
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。/ [/ J2 a  z1 S- n- c+ P' ?% y
plant simulation中的free libraries有AGV模板,0 x9 \8 R0 A! W" F9 X
里面也有案例。
4 N9 \* W4 I7 K8 N我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
3 e0 p6 S8 m- T; ~( d0 T+ l
4 `* `- L; M2 \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 v' {7 L7 n- \
7 C+ S: o" `" \那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 z. t% V7 ~  q, ^$ H" F& H这是AGV_putin中arrive的method。3 [$ M5 J4 G! F- c: j* e: H

( i: N; d6 ]( Z. k% F当到达物料速度越高时,这个报警更多,
- i3 u4 i+ v  ~! Y. Y* I! g
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-29 11:48 , Processed in 0.017419 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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