设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6195|回复: 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'
( _% t- [$ q. Y: E1 n7 B7 @*/
5 Q/ B" n7 `# Y) y$ w, gis
9 r5 n6 ?0 W. v& W        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ N9 R" T" v! g" W9 u: b
do
! u$ ^! E7 q- r3 z4 q1 V+ Z        Lan := rootfolder.Internal.Tools.AOLlanguage;' A5 b% ^8 d6 Q. p5 @& ^
        if current = @.Destination -- else return4 M3 y! M/ r  R- n7 |7 |7 X* m
        then' F0 F) q" I5 r$ e( L
                @.Destination := void;/ H2 h' t/ S6 ^! ?7 c8 [6 ~9 b+ F
                if @.occupied then/ s+ G' t' p: ]$ o5 m
                        part := @.cont;5 Y& J. V0 k4 P  c
                        @.transpOrder := void;) d1 C6 f& E: S$ t
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 q, a( L+ e' b* w( L/ H
                                @,root.eventcontroller.simTime);
* e1 Z. ?' ]7 z8 I( r" M                        @.HasOrder := false;
% q$ q/ T  t' z- h: T7 ]* s% A9 ?                        @.DrivingHome := true;
' h1 x& r3 Y* c; ?4 T$ @7 o                        rgManager.tryToStartTransOrder;: Y, t5 B( {( }+ y
                        if @.Destination = void+ H3 N8 `6 C$ r$ \2 m1 G
                        then -- no transport order for vehicle @
5 ]% T( X' q) V; [8 N: z* w4 U0 o                                @.Destination :=
  ?3 C4 M6 C: u2 y# w9 D, K8 N9 a                                rgManager.nearestFreeStation(@,track.~);
# E+ z4 h7 p: p& ?, Q9 \5 k                                newDirection(@);   
' t- C. q7 A4 g, M6 \                                if @.Destination /= void then
! L; X0 H9 p9 D. }& w2 X( [                                        @.Destination.NumReservation :=. Q+ h6 U& l( a" j8 z( |
                                        @.Destination.NumReservation + 1;1 D! c& v) C# q8 ^& {
                                end;1 O: P/ c0 k6 o# n8 l0 v, d; x
                                @.CurrIcon := "drivingHome";
, E/ V  g- L9 ~4 `1 z# F4 f7 H                                @.DrivingHome := true;
2 D, G/ ]0 s) T- q* Q                        end;
+ n9 ?3 e7 N* O* g; [% r* W( B                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ I- a! v# c5 @( u! |
                        part := @.transpOrder;
. N& N1 l9 d: L                        part.move(@);-- load part
& e5 T0 I2 _; i- F                        @.CurrIcon := "load";
( x% j! `- ?( r3 q" {$ U3 }$ A& m. p7 ?& ^                        GlobalDistObj := part.globDestination;
, f0 m  v4 [: ~5 W                        assignLObj := rgmanager.rgAssignL;
7 H+ N* ~& h6 C, b& W5 ]                        row := assignLObj.getRowNo(GlobalDistObj);! K: h$ f' @9 L- Q% |& o0 `6 @( T% ?6 [
                        if Row = -1 then -- since 70; ~6 R5 _5 g& i
                                if lan=1 then
0 d6 C8 ]; n8 q8 G  h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( R6 [6 j1 g6 a4 C4 C% m: s' j
                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 @; |; T% j  e) i" V& {1 [: A
                                else
2 X* f: h+ h8 P9 g                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 F% K* O$ _: m) Y
                                                to_str("in docking station: \"",?.~.name,"\""));                                6 h/ C6 x4 {8 p! Z; i8 ^& r! m
                                end;/ m  ~  I4 \8 k9 \& Y8 b* _4 f3 Y1 l
                        else7 c4 J% Q  Y% u6 r
                                @.Destination := assignLObj[1,row];% R: q+ w; ]/ I& A! z7 ~* H
                        end;                       
1 z# W1 W1 D+ y9 o6 R  \0 h                        newDirection(@);
+ o9 [) N+ I1 j& U9 d8 E, n                        @.HasOrder := true;
: j- F# p4 ~" ]                end;1 f8 x5 X7 C: L% \1 q6 p
        end;3 K, q4 T# G# m6 W" n! `9 p* g
end;        -- of the method9 M4 a: U: [) \: L5 j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % L5 R7 G' F; L2 m( ~9 I; ~

$ ?# C% {3 C. S这是AGV_putin中arrive的method。6 s& w; |, b2 K* y
1 M% ]3 K8 H  P. W; S
当到达物料速度越高时,这个报警更多,6 S( C, k7 b3 P4 o4 E; t: }
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
5 K- Q# O5 i& \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  u# [  F5 D! A4 {- @' v1 t- l
* O) D# t, b5 l另外一个小建议,就是move,所有的move都可以这样
6 S; y$ o) m9 i6 [) |if not move() then debug end
; G' v; {+ P) m. M这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. D" o% E( R0 E' l+ k  d# W6 n
plant simulation中的free libraries有AGV模板,$ R; v5 ?3 j% R7 ]' w/ X
里面也有案例。
9 ?8 X; |, a" }; h) z$ ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
, r. y' G" A$ j+ e2 b
0 _( |& I; @- Y! x# Z# E  T我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 , r; o* Y# f4 [8 Z/ u, N0 i
4 M5 [) e& M: I; `
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 n1 {  ?8 L8 f
这是AGV_putin中arrive的method。
4 E4 l2 m1 V2 q( K, B$ S
/ c; ]# i5 r* F3 t; Y当到达物料速度越高时,这个报警更多,

2 K9 v# V) S! v& R) @* T; c' W' w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-24 10:01 , Processed in 0.018434 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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