设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7234|回复: 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'* d( Z3 U. L2 U
*/
- |* f5 S/ J  \6 d# ois
; @3 O7 X/ e* f7 I* ~4 C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 g! f5 ^0 p+ c$ ~0 k3 a  ]5 F# E) Cdo
( ?: N9 K4 `, z! A; l* ~        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ _, Y# ]: x3 t( I        if current = @.Destination -- else return
  q* X) m5 m* a# h5 |; V9 N        then& ]) M8 y. }1 s
                @.Destination := void;( h; U0 i4 o6 |& Q0 S8 f4 v
                if @.occupied then
$ {: v" ~4 c, ?5 y+ R" H9 C; U                        part := @.cont;
' R" w2 f4 P, \8 @3 Y  V6 K; c6 [                        @.transpOrder := void;
9 ^) E3 M: e3 a( i5 J                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,( c4 r) m/ d/ u
                                @,root.eventcontroller.simTime);
5 R& K- S  W% H' z: O: T/ I                        @.HasOrder := false;
; R' n; z7 V1 m  Z2 N+ n+ U                        @.DrivingHome := true;9 O4 X# l2 Q' p
                        rgManager.tryToStartTransOrder;' I' _6 G* t; M" E. a$ m, R
                        if @.Destination = void
1 b' c6 `2 T: M/ u- c9 u                        then -- no transport order for vehicle @
& Q1 r* j+ s; {                                @.Destination :=5 a% z6 J/ \* {8 V2 n2 _( J
                                rgManager.nearestFreeStation(@,track.~);
1 w" Q5 M8 g- U2 }; o, K3 n                                newDirection(@);   
. k6 I$ f' ]& ^/ ?. Z: u) w                                if @.Destination /= void then1 s* \8 d8 E" ]6 @+ |- w4 X# ?
                                        @.Destination.NumReservation :=
1 T7 x9 n6 x, x                                        @.Destination.NumReservation + 1;+ a0 W& x4 \$ @& q% ^
                                end;7 N7 [' I" e; [/ q% k0 Y. s
                                @.CurrIcon := "drivingHome";
3 l- ~4 w5 G0 d; h                                @.DrivingHome := true;
! ~! w0 z8 M2 e3 N+ X; L% ]- Q! c$ i                        end;
( S8 z2 t6 H+ z0 ]6 }) U) H" u                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
: K/ @" C5 {% P. e: e6 H1 @                        part := @.transpOrder;
  K& s' k: @# x  L. N9 a! t# d5 M                        part.move(@);-- load part6 a  z1 b% g- }  \3 [9 M! Q
                        @.CurrIcon := "load";1 {7 R/ g  Q7 R
                        GlobalDistObj := part.globDestination;) h5 d: b1 w5 h8 c
                        assignLObj := rgmanager.rgAssignL;
$ W) V# L& I5 x, J' S$ m/ l' {# S                        row := assignLObj.getRowNo(GlobalDistObj);
* c  I$ p$ O6 ]- m0 E8 W                        if Row = -1 then -- since 704 g+ D# b7 n/ G  l/ ^5 R+ u
                                if lan=1 then
6 Q4 @6 m$ ~; K7 P4 u' k+ ?                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
  C  h: Y" K- H6 y4 |                                                to_str("in der Andockstation: \"",?.~.name,"\""));/ e+ Y# U" h% m4 X# e  a; B5 o6 N
                                else
% I- `6 e9 G$ B0 w                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 I6 t# v7 Q/ s7 P! a/ H, h( C
                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 \0 c7 e6 E/ `; I+ i                                end;
! q0 B$ S6 ]+ b$ M/ N, A                        else
( X. |. b5 m8 k$ A9 ?8 }                                @.Destination := assignLObj[1,row];
! l4 t& {8 z  }5 g- z/ o                        end;                       
% H" b! u7 @" y2 ^5 w" z- G! t                        newDirection(@);% f! I+ b2 C# ~9 e2 y
                        @.HasOrder := true;
/ F% o% B. A! i, \+ A+ _, O, d                end;
5 G# Y& N4 o7 S4 m+ k% ?9 G        end;5 |9 z8 d; T- X( s" ~/ `, J/ B
end;        -- of the method6 {2 b, b% s0 L, |) p0 E8 k1 B( F# R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  B4 }0 X: l: t' ?9 a6 L/ m& j) Y% }
4 G+ {3 c7 Q6 @4 B) K, R% r这是AGV_putin中arrive的method。5 D: f4 T1 f9 x" E- W( m8 T

; ~. m- n$ T9 }7 b) T当到达物料速度越高时,这个报警更多,1 ]" K0 u% L' h/ a4 g* h
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) ^0 C3 N% r5 l- Z  X  C' Z  j
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?; K" z( N' Q. H' V9 Y/ u

) Y: y7 D8 X9 ], V& p5 w另外一个小建议,就是move,所有的move都可以这样- E- n% x- \9 }" f2 \. h
if not move() then debug end
7 ^% O- X3 f! ^5 r5 e3 ~  S. p, S这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。! K+ K. X2 A% R
plant simulation中的free libraries有AGV模板,# G; W5 z+ @2 D* w/ {
里面也有案例。( ^( }0 J+ C! R# m
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。3 s( [1 A9 P+ H" l9 w& g6 \1 L
* G1 L  Q/ x! ~/ V0 x
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # N- S$ x2 C5 ~8 w3 @

# Z6 B* \6 a. R# }3 o1 Q6 |那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ) q9 @1 I! s. t& h; ?
这是AGV_putin中arrive的method。
# e* Y9 p0 k, s) V0 d+ c& n7 u0 s4 z+ `- j9 c5 G2 K2 Q$ |$ m
当到达物料速度越高时,这个报警更多,

4 q) ^4 W: s/ a! P另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-29 13:35 , Processed in 0.017350 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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