设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7328|回复: 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'$ l' h2 X. f7 ?2 Y7 j) C
*/
4 z) [+ [+ }9 G7 H% [( ?, wis
0 D3 g+ X; w  J1 f% s        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, C% j1 k1 K+ k, |do
  z9 g) [& b- o. n        Lan := rootfolder.Internal.Tools.AOLlanguage;. g8 N& J* L( g
        if current = @.Destination -- else return
% ^( T$ B5 F3 s        then
8 b: Q0 g8 s& F- c  T                @.Destination := void;
+ S- T, i# N3 `1 K. I# T! ?                if @.occupied then
6 u9 b1 T1 b4 }# D3 Q                        part := @.cont;
7 ^. m6 S6 R, p) q                        @.transpOrder := void;
: z8 V' n; n' T9 a$ E/ k                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 M; h% H, u; b& {6 P
                                @,root.eventcontroller.simTime);) |' G( H$ i0 q. X/ }
                        @.HasOrder := false;
- Z9 a  Y( y: K  N+ B: O                        @.DrivingHome := true;* b8 I4 q$ r. g( v
                        rgManager.tryToStartTransOrder;
2 }" \% L8 }; @6 d$ s- ?( W                        if @.Destination = void' y; ~+ G# H% s6 \5 R
                        then -- no transport order for vehicle @
, y9 D  q% ~# C/ m+ W0 P' j                                @.Destination :=3 ?  F7 f+ H2 L; s
                                rgManager.nearestFreeStation(@,track.~);. y3 U; Y8 F0 o8 z! Z  B+ K
                                newDirection(@);   
9 |3 M7 B) a, y% j, a4 U, d- y                                if @.Destination /= void then
' Z& j" b- U2 L) b$ j( V+ W/ y0 J                                        @.Destination.NumReservation :=, C, N- f$ X9 a( j: ]) {/ P
                                        @.Destination.NumReservation + 1;) h, ]3 o) z  {1 [* m
                                end;
# F5 G2 n, J6 r. U                                @.CurrIcon := "drivingHome";
" q7 F* N2 X* j5 S$ `/ M. k+ G, k                                @.DrivingHome := true;
; {  @, M) `2 G0 k8 d& c4 r$ K                        end;
  s) P, J6 ]/ @& \+ U                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 i( h9 J' A* c6 Q( u5 ]9 X) C6 `2 _
                        part := @.transpOrder;$ T0 f9 `0 C0 g0 N' x- D3 ^
                        part.move(@);-- load part. j' o3 _  A3 {; Q2 |! f
                        @.CurrIcon := "load";0 M1 H6 S+ f8 K; w5 G$ s$ F+ Q
                        GlobalDistObj := part.globDestination;
4 K; ^# ?/ T3 N) G                        assignLObj := rgmanager.rgAssignL;8 N* |' B  P' \0 K" Z* ^, y# `9 S
                        row := assignLObj.getRowNo(GlobalDistObj);* e- O5 E4 C; T3 B
                        if Row = -1 then -- since 708 o1 |& t, l" U; T
                                if lan=1 then2 N- ?; M) W, F
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. \3 l/ r# \% s- R$ h4 a+ a                                                to_str("in der Andockstation: \"",?.~.name,"\""));- \4 N# B) G( M. F  m4 I
                                else
* M, P0 _  _6 g( f! m5 e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! _3 G+ u7 G8 Y
                                                to_str("in docking station: \"",?.~.name,"\""));                                , d0 l! X# Z4 t& N' K
                                end;
+ X- k5 h8 f7 T* o" R# h. T8 v                        else
; @6 R7 o/ G3 S3 O& c                                @.Destination := assignLObj[1,row];' S- u: \& D% i! `" q5 f6 y$ y! i' D8 n
                        end;                       
) Q2 o; M6 R# g5 ?                        newDirection(@);* t1 {! i3 G4 G0 s6 E
                        @.HasOrder := true;/ W7 E6 V+ V  Q. n( a5 i& P
                end;2 z  q& B- j/ m8 v& _
        end;, P; l9 A, i8 [! n9 }, ~1 t
end;        -- of the method9 ?% k! Z( g5 ?+ Z. H5 r4 q# H- G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; C; s5 ^' q) c/ ^6 ~& Q. g

: p; F! |" ]% J, x9 j! y' z7 ^这是AGV_putin中arrive的method。, q3 ?$ k, V/ e0 B; z! A" [: F

" j- W7 g7 }. }0 c2 w! [& ^当到达物料速度越高时,这个报警更多,
/ ]0 V$ T- K. v8 e; Y0 u* }可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 G9 w7 ^' D7 a; r* j& N7 c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 ~/ q1 F5 e' ]) S$ l. v
0 f" U# F- R# K/ X) ^: {/ l
另外一个小建议,就是move,所有的move都可以这样
* K# g( `' T; _5 L% N1 Oif not move() then debug end, G5 l6 P+ H9 ^
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; [' l9 `0 A: O& {$ g1 E6 e
plant simulation中的free libraries有AGV模板,' s7 z" ^6 N- c# |
里面也有案例。0 M. q6 P) E1 _" `/ Z  Q9 w1 q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% f" V1 E" p; {- k- c/ \
6 D0 u+ X  R# V" i# H- O! ]我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 % J# S5 w3 V0 @( _
6 R) @: D; J2 x
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# C1 f! H, H. m9 @7 k这是AGV_putin中arrive的method。
: a! _# h2 O3 b+ }0 p5 j  J2 L) Y8 p/ z* ^% l7 F4 I
当到达物料速度越高时,这个报警更多,
' @* u! C7 u* O- m
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-4 12:08 , Processed in 0.019911 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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