设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9040|回复: 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/ N( D% M% D
*/( [5 E0 S1 R* W
is
9 l' T: F" P- i6 ~& V) b- L6 V        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
& Q# p, F2 j; G) Q0 [+ k* Tdo
. m" M" n/ T2 C; Q) n3 `        Lan := rootfolder.Internal.Tools.AOLlanguage;
. `2 D$ G1 ^5 }/ C: b        if current = @.Destination -- else return9 `" y4 }2 X8 \( W$ {2 {' P
        then
% O7 I4 z1 a# x                @.Destination := void;8 ]6 B) K+ t8 B1 ?1 h: Q: e3 Z
                if @.occupied then
* {7 A2 F5 |8 S; ]                        part := @.cont;  J  d1 c3 l! W
                        @.transpOrder := void;' d: _9 M) K+ I
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 z( z. C( K( j                                @,root.eventcontroller.simTime);
9 L) }+ q3 U5 }2 S$ o! E+ k7 j                        @.HasOrder := false;
; \# b" p3 t1 i" o$ e; C                        @.DrivingHome := true;) {7 k) a1 c) {# t, Z
                        rgManager.tryToStartTransOrder;
4 m  A( n8 I. z* M0 h2 l                        if @.Destination = void
& |; _  V8 D; J. j8 x7 Z5 B                        then -- no transport order for vehicle @8 Y; |' ~! ^" S$ t$ _+ D. y! G; _
                                @.Destination :=
4 u& V7 p: E* D6 ^                                rgManager.nearestFreeStation(@,track.~);8 }' f! h8 b+ E+ q' B
                                newDirection(@);   1 e' m6 G, h3 U
                                if @.Destination /= void then( x1 }2 E2 S6 e5 k9 G5 M2 _
                                        @.Destination.NumReservation :=
' W$ a, \- M4 Z# ~: Y! u                                        @.Destination.NumReservation + 1;
% \0 e5 \5 b. m* a5 V                                end;
$ @5 o$ Y) J9 N                                @.CurrIcon := "drivingHome";4 u9 s* [. y! y7 y5 w
                                @.DrivingHome := true;' Y  r- W  D; Y& w; F0 k* {
                        end;: Q: b4 B( ?+ {4 Q% ^; u, a7 R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' K5 f8 M  g- t9 w" h# U) j4 v                        part := @.transpOrder;
( `& m  K: N4 ?                        part.move(@);-- load part. {/ ?; W  ^5 a% j6 Z  ]* g# T
                        @.CurrIcon := "load";( O( t" {5 s, p$ E* l5 P
                        GlobalDistObj := part.globDestination;
6 f* o3 |9 u( M: S% \4 q! g3 V$ z                        assignLObj := rgmanager.rgAssignL;  y2 L* n0 m# ~0 L+ v& K
                        row := assignLObj.getRowNo(GlobalDistObj);9 |( g9 I: p8 ^, J* w1 }' S8 ]8 W
                        if Row = -1 then -- since 70
* @# D* O/ y% d  K( c% W! Z                                if lan=1 then; E! H" K. b0 j+ P: \4 h- J
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 X6 g" |( p4 x3 p% @- ?                                                to_str("in der Andockstation: \"",?.~.name,"\""));! w7 U; W( b6 A
                                else
0 P( C$ W) C1 C, M                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! k2 Z) ~4 l4 O  z8 |6 D9 r
                                                to_str("in docking station: \"",?.~.name,"\""));                                0 [0 ]5 q0 ]9 s6 W' l9 L, f7 f
                                end;
& m; n. F. j9 Y' Z. {7 B" N                        else
- l( h. {0 i4 }) e1 @$ T! [                                @.Destination := assignLObj[1,row];6 X3 R& A, W2 a' P% R  U: \, m
                        end;                        , o$ T- J' `7 F( D2 G/ g! E
                        newDirection(@);6 }4 r  f+ {3 B& v, T) ?* Z0 S
                        @.HasOrder := true;
$ `7 t- e5 B1 C: u& S0 N                end;
0 d6 t- A% P6 [" t( \4 L        end;
4 Q) q1 Z) l  p9 H# I: qend;        -- of the method3 ~3 d4 Y1 |% V. r. Q# g4 ~  z- ~
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , j" k! H6 v2 V% x: ~

' x/ O! e4 }' [  c- `/ Z这是AGV_putin中arrive的method。+ U) N' I3 f: w6 B, U
% b! |8 d2 R' L% ^
当到达物料速度越高时,这个报警更多,9 E1 b8 @5 K5 z4 j" X* A
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. ^3 J% A  h  _7 t4 _
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  a  |  g6 _" ~( C8 x/ x# j( ]) i  N6 d; a
另外一个小建议,就是move,所有的move都可以这样# w- K# I5 |7 K# ?, b
if not move() then debug end( D. E, d# l6 v8 z" G# X$ H9 c
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ @+ d$ _; a  T) z% o/ g+ [plant simulation中的free libraries有AGV模板,! b' T* I- Y! E( Y& B
里面也有案例。1 }! V* e" V+ F) G' f6 D# y
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 Q3 P6 j" ?+ v5 A% Z1 Z
5 t) O6 m: c. Q; N$ }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ' [+ r3 G9 B, t) }: b$ c

2 F* l6 _, t# n# W$ N2 ]那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 U  |  I  f7 }1 |% g这是AGV_putin中arrive的method。
' i. r* `/ Y7 c  i0 W5 |; k/ h4 {+ V: ^
当到达物料速度越高时,这个报警更多,
( i* T- N4 m; \4 b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-10 03:57 , Processed in 0.019895 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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