设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5391|回复: 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'
+ |( f$ i! ?, W7 U5 N/ k*/
  l3 Z, }, @/ g/ D) y3 ais
. x6 ^4 H+ [0 b/ z' C* x        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 s4 t. \% N8 J+ a! d
do
  D6 A, B4 X$ F4 d# s( Z        Lan := rootfolder.Internal.Tools.AOLlanguage;
9 g) ~6 b( ~! i. S' u  E        if current = @.Destination -- else return
; ^9 j; Y& d: _$ M' H9 I        then( L6 F  j5 G% x7 N; T" D# P  J
                @.Destination := void;) b0 J  D. k( ]: ~0 G, U
                if @.occupied then
# W* M1 _& e* X                        part := @.cont;  `( p: \5 m* y" x; o2 a2 _
                        @.transpOrder := void;/ z/ T2 I7 S0 A
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 a( D3 n! M! K, E6 R* F                                @,root.eventcontroller.simTime);( |  E0 @, e! ?/ `, n2 e0 Z# u
                        @.HasOrder := false;3 |0 u7 f2 c- a, _
                        @.DrivingHome := true;
; m7 ^9 t7 |; T                        rgManager.tryToStartTransOrder;
* a2 [( P# C5 ^0 b0 Y: A0 J6 e& s                        if @.Destination = void/ d3 e: c; T, T5 B6 w
                        then -- no transport order for vehicle @/ M& Y" _/ n0 {8 U. `/ E7 i
                                @.Destination :=
0 p) c8 j, f; ?+ G& i; e! U                                rgManager.nearestFreeStation(@,track.~);
  Q, b1 W& X4 X7 |& f                                newDirection(@);   + H( y' h. d( b
                                if @.Destination /= void then1 |) s: R7 P; l2 m4 z9 E
                                        @.Destination.NumReservation :=+ e, f0 x: ^, d5 {
                                        @.Destination.NumReservation + 1;* s0 h' s# b9 h! m+ Z: q, F
                                end;, Y$ `5 a1 t/ s; Y; }) a/ M
                                @.CurrIcon := "drivingHome";
4 h& ^/ D7 x/ y0 V9 F- T' E/ G) G6 R) ]                                @.DrivingHome := true;
; p: K! B/ z6 w! r# k) V                        end;- K" Q& t) |  b9 I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; L( \, m6 u% m6 k0 v7 o& r                        part := @.transpOrder;( I& H# O6 X. H8 @" \6 [$ H
                        part.move(@);-- load part0 x* s& p7 X1 u! z* e
                        @.CurrIcon := "load";( B" y, D, c8 U; ^1 D
                        GlobalDistObj := part.globDestination;
1 b9 f* H5 q! u2 V                        assignLObj := rgmanager.rgAssignL;
; e( y- N. R7 T                        row := assignLObj.getRowNo(GlobalDistObj);
, }: s4 V/ R" I& O- L9 j) a% Q                        if Row = -1 then -- since 70* {9 R& h9 Y) a% ~' \3 h! h
                                if lan=1 then- P3 B8 w( o' N# g! r2 W
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
" K7 u+ X( g4 H                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 k. S: B2 e9 F( @, L                                else+ K5 Q  U4 W7 a" ]: H, u- o" H
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# g( A: ]6 E+ e                                                to_str("in docking station: \"",?.~.name,"\""));                                5 N/ O, b. v5 F9 ?* ]4 n! M! o% C
                                end;: T( g7 _8 Y8 z8 `% O; L( s
                        else% m* n$ w& U3 A) O( ~: J
                                @.Destination := assignLObj[1,row];, j" t2 H! p" v" p
                        end;                          x( K* {7 v; b* e4 P
                        newDirection(@);" m- z( c/ i$ y# E; ]
                        @.HasOrder := true;5 i+ m9 i( m$ o8 Q& C
                end;
# l7 F4 n' P$ u4 U8 O( `        end;
0 u( t& Z  P' E. S0 _2 |, fend;        -- of the method
9 h: Z! L! O8 c) B. s0 g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : y! \) y. l' T6 a1 I9 l" K% _- _- d

% t$ ^8 g0 m* @4 t1 Z( V这是AGV_putin中arrive的method。! h) H* ]% m- W& s; B

" Y5 U) J# c/ V' {6 }( X. k当到达物料速度越高时,这个报警更多,
- k& h1 Z7 q0 A( r0 _+ N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! g  |& l1 H" Q9 j程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) g" b) b: R; H! d
* A/ u  @8 x( j2 `, ~$ ~) `. _) h另外一个小建议,就是move,所有的move都可以这样) r+ q7 [9 V1 m
if not move() then debug end3 N$ }* n7 L, r& A  A! m7 x) N
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! a& }  l1 ~5 [. N$ u* E) d0 c, g
plant simulation中的free libraries有AGV模板,
1 `5 q5 z, F3 k1 O里面也有案例。
) t9 d$ @; E9 T) C8 r% c2 `. j我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ [" A; z- w' t! k
% P1 ?' k5 Y( M+ u& \8 ^我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
" J/ x1 }; F5 r5 o' r7 C9 m; q! P' _9 A$ y- P0 Z& c
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 / z% P* j0 G" a, U. i" G- X& W" i
这是AGV_putin中arrive的method。
+ ^+ t% B' d* |. `' h- w3 ~6 A- H5 {! q( }
当到达物料速度越高时,这个报警更多,

5 \( T1 c0 t  I8 Q+ ]" q# d# p5 S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-19 12:41 , Processed in 0.022316 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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