设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7045|回复: 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'
, h2 u" B: U6 P1 R" G# _' A5 ^*/8 A2 L6 F1 a7 E2 H2 J' R7 V1 Q5 B
is
- c* U' {% a' }2 J        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
  t9 N- ?( h  K4 P. L" ]- ~$ u  Rdo
4 h3 c8 z0 V( l- r; C& i8 i$ x        Lan := rootfolder.Internal.Tools.AOLlanguage;
, b- c% r  U. O, t        if current = @.Destination -- else return, W! W) x/ h: p4 l, Q5 C
        then
) Q# A) S- T; B8 Y1 g- n8 l  g: w+ N                @.Destination := void;5 B0 [0 @% _+ d' U
                if @.occupied then
$ i) q7 t/ ^3 X3 F3 B# U                        part := @.cont;* i2 Z: S0 U* h) `$ w6 ]2 x
                        @.transpOrder := void;4 t/ c  q1 O1 E. I1 G
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,: Q+ Y. B/ Q5 J. |. m# y0 x
                                @,root.eventcontroller.simTime);* y" u- N2 u' J8 F3 i
                        @.HasOrder := false;
2 ^4 J  n+ R; j! ~: C                        @.DrivingHome := true;
$ j) S/ e8 @' P                        rgManager.tryToStartTransOrder;
- ?. J- b! I$ `) N+ ^, y$ ]                        if @.Destination = void
4 K! A. b1 g) [0 r                        then -- no transport order for vehicle @7 b# S( W+ G8 W4 o
                                @.Destination :=
% T6 @! x+ J) ?0 v- I8 G! K                                rgManager.nearestFreeStation(@,track.~);- D1 R# N" d' R7 K9 D5 b
                                newDirection(@);   ) O6 B, {  \6 C
                                if @.Destination /= void then# Z. W$ W$ w( f, N) g
                                        @.Destination.NumReservation :=
. Q" r/ G- k' n! O! @! H                                        @.Destination.NumReservation + 1;* A; b. I( K' V+ B1 `1 C3 C9 b
                                end;
  _! t, G4 x9 O: T- h4 v+ _; n& P                                @.CurrIcon := "drivingHome";
* j7 S+ R# J8 a( R                                @.DrivingHome := true;; t+ ~  Q- _) ^9 C6 L3 u- R# ^; J5 {
                        end;$ S( K" W4 [; g$ i: n: V
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ i0 n9 f. M* k- w7 b  w( J
                        part := @.transpOrder;
; ^& Y$ c! w7 Q3 P! c! x                        part.move(@);-- load part1 o' E2 i, k$ ?. t
                        @.CurrIcon := "load";. p8 c7 G7 T2 W6 }1 y
                        GlobalDistObj := part.globDestination;2 o* f, x- F+ U* X* e
                        assignLObj := rgmanager.rgAssignL;
! h( l8 {) F- x2 s- l* X) W                        row := assignLObj.getRowNo(GlobalDistObj);, r3 q7 T9 T* p
                        if Row = -1 then -- since 702 A, }/ c( _6 O! ?. J5 J# H
                                if lan=1 then
0 u" h/ L0 d4 z  `                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 A" z' Q' p4 R4 @& R                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* {3 p" ?. B$ D/ n5 ~* n7 ^& D) v3 ~                                else
) k: u: U3 u1 y  \                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: H# f3 ^+ p2 c* n, T+ N$ P
                                                to_str("in docking station: \"",?.~.name,"\""));                               
, }0 U2 M; Y! g. p7 v9 f& P                                end;
5 t% X9 L1 p0 O                        else3 U8 b1 r4 K' p. }4 k* c" X) \& u2 P
                                @.Destination := assignLObj[1,row];
( D4 |7 v' ]* ^# `) v4 I                        end;                        ( c$ w  S' g- W1 ?9 S
                        newDirection(@);3 B: n- O! f4 K
                        @.HasOrder := true;
+ j+ o, F3 D5 u; A6 `& e7 q' @                end;
1 g: H% \: O- r0 {9 n3 B) o        end;5 q' |9 k, D5 V7 f, z2 n
end;        -- of the method% y: w+ O- P" G: _7 R
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% P, R( @: s, z7 y. Z, M/ t  H) y
这是AGV_putin中arrive的method。. r* y; C# ~. g# O) i1 J

$ M  |7 m9 c* G# a当到达物料速度越高时,这个报警更多,
4 i1 Y6 Z' p* [4 U( Z% ?, ^, L可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 A3 x( Z3 I( V5 ^7 }9 b& O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# i" g2 Z( e- l: y, O: V
7 v1 K4 ^( o6 M& {1 P, B1 S
另外一个小建议,就是move,所有的move都可以这样
# a4 H9 u' Z: }9 t- y, c+ xif not move() then debug end
9 d& G  e' [9 w$ @) }9 d% u这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
! i  O+ `: N$ S9 N% r6 v$ t- Q9 mplant simulation中的free libraries有AGV模板,
! G; w& }! D4 G# E里面也有案例。3 t! d5 u9 y' d' G9 o5 J
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 h8 T6 v& g* s  b
0 p- v( w( C7 E
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
& g, c% v/ F0 X' L5 A8 {2 f/ _/ l1 X/ O7 O1 e: O
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : x" A  S, \8 z6 R4 y3 \
这是AGV_putin中arrive的method。. q" u4 M; P5 q2 Q  f7 K

; F& d0 O7 S4 G/ k' a当到达物料速度越高时,这个报警更多,
2 L9 w7 Z' v! y  A: z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-13 05:38 , Processed in 0.018893 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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