设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10242|回复: 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'
4 A% l5 d8 }5 e  @' X. g! L( B& a9 O*/# ~& `; M, n/ J# P# T0 o
is
. w0 t! l2 Q6 Z7 t( L$ @9 d% f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ }* y- t# }# c- ]0 i0 }: y% N- p0 ?do, `3 ?0 u: ~; a  d+ k
        Lan := rootfolder.Internal.Tools.AOLlanguage;
- `  R/ z& `9 K: f9 M% B        if current = @.Destination -- else return, i* W4 ^9 \! K1 m$ l
        then+ O0 }0 _  V7 r+ y
                @.Destination := void;7 v9 S* N4 `( f8 g1 q
                if @.occupied then
+ v' J3 Y6 V# n; K; H1 t# I* l6 `. j                        part := @.cont;: I, K0 K8 H1 e% r0 T# V! K
                        @.transpOrder := void;
! [+ h* x# T( m- J  A. s+ j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ z! r- N! d# h4 q! F
                                @,root.eventcontroller.simTime);  X2 E% h  d" D* [/ K0 {6 o3 y
                        @.HasOrder := false;# G" n2 u& b" ?( X6 g9 `5 W' y
                        @.DrivingHome := true;
/ h9 Z% p  F4 P2 O+ F5 r                        rgManager.tryToStartTransOrder;% j* E9 W9 o& l- U0 I
                        if @.Destination = void
% H' ~( P! N2 Q" q. s" E/ N9 H1 X                        then -- no transport order for vehicle @$ V+ K& r! U( {% H* R
                                @.Destination :=& q, P: T* L% b
                                rgManager.nearestFreeStation(@,track.~);3 ]  }* O% w+ u) k
                                newDirection(@);   
2 g4 V4 v3 C' x' ~2 u                                if @.Destination /= void then5 n5 w2 M2 C  t/ H0 n) \! N
                                        @.Destination.NumReservation :=5 R9 g4 d  v7 e9 m9 y: m
                                        @.Destination.NumReservation + 1;
' |# W# Q7 M+ ]0 z6 e# F. D/ z                                end;
. [  x3 t* R7 l                                @.CurrIcon := "drivingHome";8 c  i+ J1 e5 d! d& ]: e2 g
                                @.DrivingHome := true;  J( r4 ~% t# G
                        end;
6 W6 E! S. y6 I+ R, }* `+ H( C4 G                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. ~  q) t6 L$ q) Y3 Z                        part := @.transpOrder;
$ c2 A# o5 Z7 L6 X6 i1 }9 E1 A  w                        part.move(@);-- load part: w5 i9 q  \% e1 I1 c& {1 ?
                        @.CurrIcon := "load";
- {# k( ?6 k* s1 K/ u                        GlobalDistObj := part.globDestination;$ l( Q5 z' \4 Q& N4 B
                        assignLObj := rgmanager.rgAssignL;: Q2 K4 A# D8 K1 i' o" O" x% [
                        row := assignLObj.getRowNo(GlobalDistObj);
% O  N8 V  R$ C# a% a                        if Row = -1 then -- since 70
! P! P% w3 [4 a" K5 v# Z8 `                                if lan=1 then
1 ]8 h7 l8 D: b+ g! s. N                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 \+ n* B" h+ w9 q) j7 X
                                                to_str("in der Andockstation: \"",?.~.name,"\""));& v/ w' L$ Z* a7 J
                                else
1 o) Z+ H% m. o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 t, ~1 ]6 \7 c                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 V/ J7 m) V; M7 {                                end;
" W$ p% N/ a/ {                        else  S3 D0 U- @: k& z4 X. S/ F
                                @.Destination := assignLObj[1,row];( @" ]3 E% @* ]$ y* z
                        end;                       
: h: U& E. `) C8 y( t0 o                        newDirection(@);# }+ W3 K# @- A, }
                        @.HasOrder := true;# l% q+ u4 u% I9 p4 {) l' b1 L
                end;2 r5 T8 n4 U( i7 t/ n
        end;
2 S. h8 n( ~& P# Mend;        -- of the method
2 q" A3 ~2 C! C1 r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 G4 G3 c1 j3 N2 u; X9 ^: B* B: m1 E  D2 Y
这是AGV_putin中arrive的method。' U4 u0 l/ G! @/ R4 w2 N5 O  p

1 |& y/ w2 w+ j& a5 p; L9 _当到达物料速度越高时,这个报警更多,
& i' O, y0 I7 d/ T$ o' ]可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, v! }* l" F. `% U1 [$ R0 i' W3 h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 O: t& [9 P, W* f) {" u
4 }5 y, S! _5 ?5 H# k2 M6 _另外一个小建议,就是move,所有的move都可以这样4 }5 e5 N! Q, x0 x/ T, ~. \( f% |7 _
if not move() then debug end
- {2 z2 G5 [/ @! \* W1 m" h8 [/ P9 ]6 b这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 k& \) Z1 n" ?8 E
plant simulation中的free libraries有AGV模板,) d7 C/ ^) M" ^5 x/ y
里面也有案例。1 S+ U$ F3 J, F9 @2 f
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。, R5 G& |! `- r/ `

5 G7 i& P. P- R) t! [6 `) h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
$ k1 u/ p2 x( ?8 x, ^
) C( h3 z, u. h$ j( b那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   b. l7 e) s/ A' }
这是AGV_putin中arrive的method。. ?( ~  T1 h5 ~5 Y* ?. D. @
) M0 J$ u- ~1 O+ X
当到达物料速度越高时,这个报警更多,

9 q9 f/ J$ A# f9 b9 G1 Y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-22 05:55 , Processed in 0.015871 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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