设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10026|回复: 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'
" Q. A5 C) G7 o6 X# a*/; ^: \( w/ h' z6 L$ U: a+ U/ o4 X5 o
is
! z  E$ x8 J1 P$ @( a2 {9 e        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, k+ J' X; k6 q0 \# Ido
7 _3 g" C! Y# F4 C4 l, }        Lan := rootfolder.Internal.Tools.AOLlanguage;
; a; \4 r+ k& O  u1 k; H3 Z8 u& q- ~        if current = @.Destination -- else return; k/ Q; V( G5 ]. r1 X: c5 f
        then/ t+ ~* U8 F3 L3 F7 U9 i1 G
                @.Destination := void;; J* l) n) ], ]+ D
                if @.occupied then% P, O- v" \$ [* p0 _2 q$ c
                        part := @.cont;0 Z4 A+ l; D; J( d
                        @.transpOrder := void;4 t4 k) L* l) C: N* {1 x
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
5 @6 ^% \) Z4 N* `1 w                                @,root.eventcontroller.simTime);
2 h, d2 E: U" s& ?$ N2 `8 H                        @.HasOrder := false;  g& _) p7 _. |0 _5 S; Q
                        @.DrivingHome := true;
, s/ m: p1 Q" I, q" F* a( _                        rgManager.tryToStartTransOrder;; g: |7 X5 |9 E; E6 z
                        if @.Destination = void) b) S% R" K5 U& ^
                        then -- no transport order for vehicle @
  Q9 }: u' O3 ?                                @.Destination :=( @1 [" F3 b- V
                                rgManager.nearestFreeStation(@,track.~);
7 |, c# G; c( j8 Q9 @                                newDirection(@);   2 u' e  o+ v2 D3 R3 h5 i
                                if @.Destination /= void then
7 k4 f& m" R/ o( R1 h9 @3 q2 n+ G9 ?4 s                                        @.Destination.NumReservation :=- A, j0 C& s1 {
                                        @.Destination.NumReservation + 1;% W; z+ \* Q! O( Z( h, S
                                end;: L( W; }& ?! h3 U0 [6 Z+ z
                                @.CurrIcon := "drivingHome";7 h; d7 |& q4 T! Y" m6 i
                                @.DrivingHome := true;
7 n/ }: G% M+ ]: P8 w  `                        end;
* T( s  h7 a" ?6 g+ `% T7 J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: L4 _) R% f/ c- \' M                        part := @.transpOrder;3 B' j0 O% H! u2 O+ u& Y
                        part.move(@);-- load part
: J# F8 g$ i& [8 z1 B2 O! j' U                        @.CurrIcon := "load";
  R3 \* |% n; s- }* R+ H5 c7 n7 I, ]                        GlobalDistObj := part.globDestination;, B! Y4 c- h: y+ G8 c* n4 q6 E
                        assignLObj := rgmanager.rgAssignL;6 s0 q* `* z$ `2 ]
                        row := assignLObj.getRowNo(GlobalDistObj);
9 ]4 d  Z! E7 e( R, E3 j* F& h                        if Row = -1 then -- since 70
4 Z  V. S" }; A$ g                                if lan=1 then6 `) {+ |8 q& S3 J8 h1 i
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ g4 ?* f  L1 n  p! P( y8 ]                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ j: s0 R% `, P. n0 Q6 v
                                else( M1 }1 w4 I, v9 }0 }: P
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 }. v# i8 X. `0 n, h5 I$ L
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 T+ Y" o+ u- v! Y
                                end;# d% N' `( e1 T' ?" e
                        else6 C' V, \& Q* x) Y6 P/ V: Q0 f
                                @.Destination := assignLObj[1,row];' Y6 {- }& l# ?/ ~8 e
                        end;                        $ d/ a% K5 Z4 V3 v. a# F
                        newDirection(@);7 ^1 k3 L- }, @6 W. H
                        @.HasOrder := true;
2 g' d- g* g1 U9 q* J                end;
) S  C0 }3 a* a+ F( ^3 t7 m, ?        end;
" n6 Y, \; m# |end;        -- of the method6 i) _) I( ?, [9 x( J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ' E. L+ E* O7 d3 J$ ]
4 e% e/ |4 x) W. _
这是AGV_putin中arrive的method。( L/ C* O8 Q' A' e& r+ U" S; d

4 x* ]/ {( C% B: z) X) k当到达物料速度越高时,这个报警更多,' ~+ q% R' S' J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。; V) ]# J" Y/ p- ^# k! p
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  V8 H+ {/ k: ~6 N& Y! C( Y
% ~7 o# k: K; T* L+ ^/ i: Z另外一个小建议,就是move,所有的move都可以这样% X5 X- _9 v, E6 J
if not move() then debug end, _3 J9 y, C- m0 j- Y) O
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' k8 K  g6 G( Xplant simulation中的free libraries有AGV模板,' F% z# ^. \+ d- g6 N: }# n# n
里面也有案例。
+ p) o! J/ L9 r; J4 J) L我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
- s% C& s$ u; T3 j: q' s
6 {+ q# t9 D1 }& k4 m& F我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 }" Q7 F$ O7 _
! f2 x6 K6 H4 @$ ^: I7 s那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
* N! E# Z. H2 k9 A; i. ^这是AGV_putin中arrive的method。
& u. ]) @' f9 ~4 D% f; O3 s
6 c) v, L( J; s% w当到达物料速度越高时,这个报警更多,

" \! S9 J4 n% r5 r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-8 06:43 , Processed in 0.033383 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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