设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6571|回复: 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'& I+ F# K3 v# H8 h' F1 X
*/9 f4 O+ H& W( L/ i; L
is
$ \- {( }1 X4 T$ Z- W6 E6 P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 _2 X5 l1 i: e1 hdo
2 t' ?, E% Q5 p' ^3 c3 ~        Lan := rootfolder.Internal.Tools.AOLlanguage;
* d9 `$ ?" j4 s1 N! a        if current = @.Destination -- else return/ Q) x5 y2 ~3 @) S! J* B7 ~4 k/ ^
        then
  w, e% k7 `) _/ d0 W1 P                @.Destination := void;9 o, B* q0 @. ^. f, A& B5 v( M
                if @.occupied then( I8 X' j# x% }9 G# m# y
                        part := @.cont;
8 D! K$ v* j8 s                        @.transpOrder := void;
6 T" m" n4 X3 c" F; b                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  X  e; C/ c3 e2 D- \
                                @,root.eventcontroller.simTime);
/ n( }, w6 n. G: F  t                        @.HasOrder := false;  e0 U. Z$ P$ g
                        @.DrivingHome := true;
7 V' {" j# V& I5 j9 ?% J) C0 y                        rgManager.tryToStartTransOrder;: M' I9 g. t3 M. U) k0 b
                        if @.Destination = void
* ^; H. |6 c. y3 l                        then -- no transport order for vehicle @7 X1 v' l4 g8 e; R+ N8 X1 P
                                @.Destination :=' E- P% C* U' h; e
                                rgManager.nearestFreeStation(@,track.~);3 ]( w' T1 t, ]0 O: ]6 g6 F" {
                                newDirection(@);   
: Y: J% a$ k! h8 N4 n                                if @.Destination /= void then
! X7 {$ V. C- f$ [( E: d- W                                        @.Destination.NumReservation :=
0 a5 [1 e& K' I8 G4 f                                        @.Destination.NumReservation + 1;" P1 c9 P2 d8 ~4 Z8 x! e% z
                                end;/ T: c9 Q% |. `5 h1 v
                                @.CurrIcon := "drivingHome";8 ]* C% }- y# o9 `' Y6 _
                                @.DrivingHome := true;& x" E' p$ j) b) p8 w" w
                        end;
7 k7 i# A, J2 M- @  G9 t5 {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: I1 f' H) ?$ a4 i
                        part := @.transpOrder;  O0 A+ J4 X1 l
                        part.move(@);-- load part
# s$ f( K0 c. W! J0 T4 H- p3 y& t                        @.CurrIcon := "load";
5 F  H8 \7 ~. d  w8 E$ t                        GlobalDistObj := part.globDestination;
+ V1 J2 t' a  Q9 C" s                        assignLObj := rgmanager.rgAssignL;: X& f3 ~. b% o6 D* j
                        row := assignLObj.getRowNo(GlobalDistObj);
+ N0 E0 a- q9 a# O! }4 e& f                        if Row = -1 then -- since 709 n. U( [5 |; w
                                if lan=1 then6 c5 j' p6 `7 L  a) H9 f- M. i
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: J' m( M1 s8 I5 y                                                to_str("in der Andockstation: \"",?.~.name,"\""));- g/ n+ E0 i- d, r
                                else3 F0 N: M; z" e, z6 R
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! x5 }. r, [/ M: E' m
                                                to_str("in docking station: \"",?.~.name,"\""));                                % ^& D. }9 L8 g7 N
                                end;
4 S, Q  x- i) Z# g                        else5 {, S3 N5 b6 T; P
                                @.Destination := assignLObj[1,row];, Q- @" L' r* _6 v
                        end;                       
; |* N4 L# w/ j/ i                        newDirection(@);
! V3 j# @& j# |) ]$ J                        @.HasOrder := true;0 {& Q6 o# ?" M8 ?0 a! K- `
                end;
% F! _) v) X0 v& |        end;$ {; Y" S$ Y" \
end;        -- of the method( r$ T- m3 r9 I6 n3 F- H" K0 O
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
( U% h9 v9 _# V; M9 A, Y+ j
3 h% O, K0 a: ^6 o4 @7 g+ n7 f这是AGV_putin中arrive的method。$ g. L/ s- L: C% ^) U) s
3 E. S# K8 X( l! |' z: e
当到达物料速度越高时,这个报警更多,
+ A, ?! D5 D/ P' M7 m可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 i$ R/ H/ P) u1 C; B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?3 c7 @$ @5 a4 U- o2 z

: j' t+ i; Q* R1 K. u$ ?4 p另外一个小建议,就是move,所有的move都可以这样
6 @" n: o6 I& A2 k2 Z4 Sif not move() then debug end
: n5 P5 F/ \% M$ m" k这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
( b% s' S0 `+ t# f. Nplant simulation中的free libraries有AGV模板,
. W" t7 @( p) D里面也有案例。+ N7 d5 |, F' `' J
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ h' `" K+ U7 n# E2 X
- [  Z( G2 V( C  {3 @
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 O% k/ O' X* I' M; N% n
$ h; ]0 ]2 I/ M2 N那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 X3 h1 G5 P' R这是AGV_putin中arrive的method。
& A$ H5 s  s; \- h# \2 N5 M2 p# b* }6 A4 L
当到达物料速度越高时,这个报警更多,

, ^3 P9 z! }4 l$ i* j; q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-13 14:06 , Processed in 0.025946 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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