设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6718|回复: 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'7 H. ]+ A, Z1 [6 K9 D+ f
*/
# M1 E4 H% H; Z  p7 kis
3 V, ]$ K6 a9 F4 }$ {! M/ T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;( p, q2 k; y  Z& e0 _& L- V$ ?
do
  K  n" h, o6 K' k        Lan := rootfolder.Internal.Tools.AOLlanguage;1 G3 M( O% T, w! ]; m
        if current = @.Destination -- else return
% G! {  J, N8 w( Z8 D4 w        then
1 E% M; ^5 p! j                @.Destination := void;( Y2 ]' K2 F8 N' z" F  |6 Q
                if @.occupied then
* R( r4 O3 q9 q8 O9 A5 n                        part := @.cont;. S1 v9 Y3 v1 ^0 N* Y9 z/ v/ X( U  T
                        @.transpOrder := void;
+ h- M1 F& N" x- k9 g8 U                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  t. ]4 [! Y0 @- k& F! N2 K
                                @,root.eventcontroller.simTime);# d& x! _  K" Z
                        @.HasOrder := false;
9 v$ |7 [4 B& @# k                        @.DrivingHome := true;
% A- u; |& ]# _5 P  h  O% k5 _                        rgManager.tryToStartTransOrder;# T, [' [' f, e8 S5 }! I% g  x, e
                        if @.Destination = void. f) v3 H; p$ r0 r4 V
                        then -- no transport order for vehicle @
3 h  L# E/ I6 o( X7 o  B                                @.Destination :=
8 S+ R) D) E" s- A7 `; y. i                                rgManager.nearestFreeStation(@,track.~);
* ~# i0 Q5 d& i" X  m4 x" A                                newDirection(@);   ; N" N( G% s$ _8 d( S
                                if @.Destination /= void then
. ^2 b2 I% U$ b                                        @.Destination.NumReservation :=
# f5 l/ ]: O; l  C6 i3 s                                        @.Destination.NumReservation + 1;; U* M; a. X, ?% O
                                end;. B; `' M# Y" T) }% H: a& l) e+ K
                                @.CurrIcon := "drivingHome";
( J( V- J  S3 U0 O8 q! r1 g                                @.DrivingHome := true;
, ]" o% Z7 j; W+ C' E# U. P                        end;
; M1 P5 k" u" A4 B% H/ T1 t                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& `3 z8 z8 X  ]6 P# ^                        part := @.transpOrder;
2 }3 z: M3 o9 K                        part.move(@);-- load part. K2 P: h- [- X3 g
                        @.CurrIcon := "load";7 r/ E) W9 D9 U& R) _, i2 l
                        GlobalDistObj := part.globDestination;
% H3 i3 [) k1 a. n+ ^2 H  a% U                        assignLObj := rgmanager.rgAssignL;
' V# Z$ I7 w( j+ m7 ^9 k                        row := assignLObj.getRowNo(GlobalDistObj);
0 v. U& O% I/ W( r9 W4 |                        if Row = -1 then -- since 70( R$ l+ v3 B# a' G1 O! ]! q& T& Z
                                if lan=1 then$ c( D' J; I. L" x* E. A
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 Q3 J" _: F6 n( z                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 Z4 I" W5 h! A, }# U# e
                                else* _/ S6 z5 j1 s3 ~
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ Z# P; E) {% F. ]. ^/ I
                                                to_str("in docking station: \"",?.~.name,"\""));                                1 E- x: w0 o7 M4 |- |; s, u
                                end;% s4 R& [' |  g* [; m
                        else* f9 W- `* q7 T& ]7 T, n/ i1 t0 W
                                @.Destination := assignLObj[1,row];
2 z% I, T5 X) R8 N7 U1 c                        end;                        9 ?% a+ T! C  ^0 \
                        newDirection(@);
! W- i9 ^+ l: f# \7 z                        @.HasOrder := true;
8 |7 v+ j% E3 }! v" R2 m+ d                end;
  O/ k, f6 {6 u: j% u/ F        end;( J6 V; ^. l6 C3 z% }) o' d
end;        -- of the method
% G! q% L- P1 Q1 |/ L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 . N  w# ^6 G6 Y; Q6 k( h+ a) _

: Z$ E$ d& ]3 H9 c这是AGV_putin中arrive的method。, ^+ d2 E3 k4 D0 h8 m6 H8 i
7 j% Y( f3 R+ \  S( z
当到达物料速度越高时,这个报警更多,, ^3 p  Z1 q$ _
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- R9 z8 w* x: Z) \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' r4 x! O1 h$ Q3 ~6 x

- B# D; m: M; J* `& P另外一个小建议,就是move,所有的move都可以这样$ D# Q" X. n; I6 S
if not move() then debug end
7 y! ~+ H) q& G: Y9 w' S! n这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。% j9 f2 d5 g+ Z. G$ d/ D
plant simulation中的free libraries有AGV模板,
. P4 n# K! O4 s4 f& C# `2 |3 g$ b里面也有案例。$ q- m1 P; @, y! ]# u$ C  G
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。2 i% D% A- g2 _9 q$ J

- f4 B& S2 s! O我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' Z. B. k1 e! L$ E4 c+ I2 P
9 v  P& W5 {+ V那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
: _0 L: j- n2 N' r; b7 W这是AGV_putin中arrive的method。: ?$ T: @! y( e2 C. y" S0 R* k

2 m; Q3 H% P. ~/ u9 }9 y& p6 ]; F当到达物料速度越高时,这个报警更多,

# k4 m$ g1 ~" q+ |另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-22 12:49 , Processed in 0.020843 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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