设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7765|回复: 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'2 o  K/ }* D5 X
*/
+ J- C* Y8 I0 c" w. Vis
( @. f1 z$ F+ h4 }: X6 P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 }. s( u$ e4 _9 f: ?$ O
do
" W, P; O5 V! n; i: s& U        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 F& N& y( C4 i; p5 c        if current = @.Destination -- else return
+ [" U- U! z6 M) F) I6 E! R% x        then
7 G2 E9 K) H  Q% n, o                @.Destination := void;
% R3 I" ]8 |( ~; q                if @.occupied then
( b( j8 C7 a5 ?                        part := @.cont;6 t: i& s: W/ J2 U4 y0 F
                        @.transpOrder := void;
3 p+ a2 J: A) ?9 I+ {3 e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 _% D) f0 X$ A1 `: E' e                                @,root.eventcontroller.simTime);* w7 }* B; J% S# g/ \# x
                        @.HasOrder := false;+ J% `; u% @" N" c% [9 z
                        @.DrivingHome := true;8 J( Q4 P% y; S4 H6 R- k/ s
                        rgManager.tryToStartTransOrder;/ C& s: X  t: o' P7 e
                        if @.Destination = void2 c( E  u, E$ T- ^/ ~) f4 ?" q' R: b
                        then -- no transport order for vehicle @7 U* W' k. Z! }6 ?9 ]
                                @.Destination :=6 k% E8 z  m6 c: o1 L# H4 @! m
                                rgManager.nearestFreeStation(@,track.~);6 `9 b+ f- K; a( O1 b" B4 }( P
                                newDirection(@);   
4 v% `( W- S/ f3 j3 Y. s7 g, o' r                                if @.Destination /= void then3 c: d/ \2 D9 o% p8 |2 K- }
                                        @.Destination.NumReservation :=; T/ L; a# j* L+ H: B
                                        @.Destination.NumReservation + 1;
& ?5 ~+ ]0 V; Q; A/ h                                end;
& J7 q! ~1 @: I  @" T5 e( V                                @.CurrIcon := "drivingHome";* T. Y4 Q$ l4 W0 I2 c" h
                                @.DrivingHome := true;) h, x+ w+ q9 u( }
                        end;
& ^" r- G: Q0 L# c( i; C                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 H7 Z; E. ?: ?% t. q% D6 r) l                        part := @.transpOrder;: J# X. _2 \% {( V
                        part.move(@);-- load part
4 P" ?) f" Z) T) P) p0 W                        @.CurrIcon := "load";' ?3 |! {6 y6 n4 y
                        GlobalDistObj := part.globDestination;
& Z2 K2 z( v" o" }                        assignLObj := rgmanager.rgAssignL;
+ O3 {/ x! }0 [# k  a% G' u+ K, N                        row := assignLObj.getRowNo(GlobalDistObj);
# U5 Q/ f* I+ @# P0 f& d                        if Row = -1 then -- since 70& B2 g0 d9 H8 P5 J
                                if lan=1 then
  z  T- x1 r1 p9 T. x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
& a. J3 I# [" b1 i                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" t  |# `/ ?" Q9 r                                else- ]8 }6 p% d* L" }/ g
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: w  n! J1 r/ [( `
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ O( i& S. X! H0 @& x                                end;* G( [2 a- O. u
                        else( T0 B' b( n" {% u$ ?0 H
                                @.Destination := assignLObj[1,row];1 Q! k8 L& M5 X; R, R$ v8 m) I- h
                        end;                       
, |0 p. K9 M4 T1 @, D                        newDirection(@);* }% s8 M1 g% q7 Y+ g
                        @.HasOrder := true;/ I7 P0 b  y9 m: q3 [
                end;
1 m$ X8 I6 o/ F0 H% l, E! `        end;' J9 d0 L9 a# t2 H0 M% \
end;        -- of the method
1 u0 }; ]  v- C4 H1 c
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( `, L0 [. }) p) o3 U& j( [; y

* t) Y# T( z! T# }+ e4 ^( b8 p这是AGV_putin中arrive的method。
# n9 a* w+ g& @8 h( U4 ?
' l# O" ^, K" r/ Z2 @  ~当到达物料速度越高时,这个报警更多,
( n0 ^' H, [& [9 e( {4 `" p! ^可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
+ u, V# r  n# |程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; q0 h  J/ \$ w4 s# A* V  R0 A

# ~) ?+ y0 C0 f7 N* J6 }% N& S另外一个小建议,就是move,所有的move都可以这样. g& s0 m8 W3 h1 N5 R2 X# Z
if not move() then debug end: j5 s$ m# {9 ]5 i$ Y* Y* j) \
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 Q, I  N& @9 X" y; \" O* j9 xplant simulation中的free libraries有AGV模板,
$ R4 Q: X: r7 G" z里面也有案例。
% t9 P# ?/ V% W5 k. a# M, y. ]我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
; j$ f8 w  b' Q3 K4 o# r# ~' X! {6 m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( x- T" z# Z% x- t3 I, F- d! @. L' o/ M& T8 p# y$ l# ?2 F
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 E/ n8 z  z$ i: @( D- g8 D这是AGV_putin中arrive的method。/ W' t1 l! P6 _8 i0 b8 X
  L7 {0 C8 q/ i0 f, C! D
当到达物料速度越高时,这个报警更多,
' |/ O2 O$ D5 n+ |
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-28 12:37 , Processed in 0.016989 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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