设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8847|回复: 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$ P+ m( K' k# T
*/" r0 y' n/ i6 C5 X" k
is
- H0 E" o" O( k$ G        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; y* U9 v) ]0 e: ?4 |do
/ S. V) w) r; p: i' c, V        Lan := rootfolder.Internal.Tools.AOLlanguage;( }% _: n& j4 \5 z1 w3 H+ \
        if current = @.Destination -- else return' y8 O' w( P; C/ u  Y) a
        then1 E. ~  ]9 G7 Y* r" \0 _
                @.Destination := void;
) }( m: K& K6 r- C                if @.occupied then, R- [1 |& U/ H+ p/ u
                        part := @.cont;5 @3 I( h7 X3 y  d8 G
                        @.transpOrder := void;
9 L* e: Z6 e( j. k" g6 }                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 {1 ~5 _: n' s  {3 o* l& c8 t2 h
                                @,root.eventcontroller.simTime);
' g2 _; Q  B$ S. Q                        @.HasOrder := false;2 y- m4 a* J6 U) Z
                        @.DrivingHome := true;4 D  n6 T/ i: k( X! P0 F
                        rgManager.tryToStartTransOrder;' |% T* h2 V/ ~
                        if @.Destination = void
+ h. _1 p; K" b9 g7 _5 i                        then -- no transport order for vehicle @- y  q  k, p7 e& b/ M+ y8 H
                                @.Destination :=4 P5 x! \( u) y% S! J4 k
                                rgManager.nearestFreeStation(@,track.~);
& J5 j5 G; M) R& J) ~: I# n                                newDirection(@);   / `4 N* A* w$ m! B! [
                                if @.Destination /= void then, \9 F8 Q# K4 r8 t
                                        @.Destination.NumReservation :=( K5 H9 d5 ~) M6 G1 v. K
                                        @.Destination.NumReservation + 1;
- s- r/ x1 x+ X4 L                                end;
1 |, F( l! b! R1 a0 l                                @.CurrIcon := "drivingHome";0 I+ f) z8 H' A0 m
                                @.DrivingHome := true;; J# T+ E4 i7 o* j3 p
                        end;
: R5 F, D6 i- O7 G                else -- the vehicle @ is empty, both vehicle and part are in the same dock station4 {4 T" P& m' n& u, t' W; a! k; S
                        part := @.transpOrder;* g4 `- n# P$ Q* R7 q) a( ]  m
                        part.move(@);-- load part" ]( F$ x9 S% _  {, X3 m
                        @.CurrIcon := "load";4 H& u" x7 E$ {: g6 Z
                        GlobalDistObj := part.globDestination;
& e: [. o( U5 e' m) t/ |, V                        assignLObj := rgmanager.rgAssignL;
) H4 f8 R0 [( s                        row := assignLObj.getRowNo(GlobalDistObj);7 C; L6 K, s8 z* G! g
                        if Row = -1 then -- since 70
) k+ |3 I. n2 _+ Q                                if lan=1 then1 R4 \5 ?5 E& y+ u& y
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 e0 ^8 F. o* a* o1 C                                                to_str("in der Andockstation: \"",?.~.name,"\""));% u! l& |% S5 g. m
                                else
, A5 ]$ h# l) U# V6 k% q5 {* L, S                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 {' R. D3 S6 b# E                                                to_str("in docking station: \"",?.~.name,"\""));                               
. a# y2 F9 u) [                                end;
, _. f( g& G9 i, Z' X0 P                        else8 c. n5 P$ Y4 c3 N
                                @.Destination := assignLObj[1,row];
* [+ n; U6 E$ D8 y* ?; u* W/ c                        end;                       
0 k# E" b4 d7 X6 v- x: }4 b+ S                        newDirection(@);8 E3 Q( H3 g- }4 B
                        @.HasOrder := true;
1 t* g! D. d- Q& M* u5 x                end;
' S5 r! x7 @( A        end;& G* S+ ^- V5 k$ E) f$ |
end;        -- of the method
% d8 D# y( `0 G" C0 V) S
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 & f& W: g. |! ~! S" K

/ M) @. k9 J( M; n% Z这是AGV_putin中arrive的method。
+ c$ G1 N8 Z2 h& I: ]
+ W' s; o3 F4 e% }5 R, |当到达物料速度越高时,这个报警更多,
8 z+ k4 t; E1 O6 j3 H可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. C/ o8 c6 Y3 A! d9 I
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?( L/ i2 \) W8 w
1 z9 x+ \- T9 P5 `
另外一个小建议,就是move,所有的move都可以这样+ c$ R  K5 b1 P3 e
if not move() then debug end* q! q% y- }# d8 f
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 ~% N9 \' R" B" q% ]plant simulation中的free libraries有AGV模板,
7 e3 t( w5 n% q' q3 C; O# M里面也有案例。8 R( I% @. j! ~* k% I* ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。6 G; k% U! c. S9 N: x1 Y$ R' ~' }. M
: Z; W1 {1 c* R! h9 L
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' e+ U( y/ \6 a7 J

# v* }. w/ x' Z7 b/ ~) I$ U0 P那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   C2 \% }0 H5 f
这是AGV_putin中arrive的method。/ r( j+ S: I; X! @, o- P

5 m9 y* m5 f0 Q, c当到达物料速度越高时,这个报警更多,

2 X: {3 g& K! {( U9 B9 S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-29 23:44 , Processed in 0.021640 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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