设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9974|回复: 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': t0 g' C/ u+ h: W. z
*// w  o, _& Y' J# g( j# r4 O- a
is' H+ ^* k1 g/ i' m5 U4 ~
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ q# B* D4 W" F3 Z+ j+ b1 |
do2 L2 e& o, b+ `. H5 o
        Lan := rootfolder.Internal.Tools.AOLlanguage;
" m. c  _8 Y; P$ k+ b! _        if current = @.Destination -- else return& t/ e$ C9 ?. M& Z
        then4 X* t; X% ], d
                @.Destination := void;1 a4 O0 r: a; B# |# p6 V
                if @.occupied then9 s. ^2 N2 d5 o# U: O
                        part := @.cont;
" E3 a# @: |6 I; f                        @.transpOrder := void;
( F7 S1 b* O9 s' L! h1 e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! R1 G3 b3 F/ v% t- ~) Y
                                @,root.eventcontroller.simTime);
, ]$ K! K! }- w& Z0 m- a  o                        @.HasOrder := false;! a" q( }7 v$ ~( t1 P; h# _
                        @.DrivingHome := true;
. J" ]$ U$ K( o6 E6 O+ J                        rgManager.tryToStartTransOrder;
  N5 x! Y5 x( _: }) Z                        if @.Destination = void
' i9 S8 m' m( ^7 W2 [( S                        then -- no transport order for vehicle @
* Y: j9 o, T- d/ x6 t2 C: i                                @.Destination :=) A. [, Y4 N2 T2 M" K% J
                                rgManager.nearestFreeStation(@,track.~);
& n  I) o8 U% V6 l2 @                                newDirection(@);   $ J& z/ E( T# [- B0 @
                                if @.Destination /= void then
1 V0 v& f  s: O2 l2 S                                        @.Destination.NumReservation :=
* Q7 q. \2 T4 k! t" W9 J6 E9 x                                        @.Destination.NumReservation + 1;
1 {" k& C! x6 L6 _  _0 B                                end;3 w6 |3 e1 `$ }1 x. t% |
                                @.CurrIcon := "drivingHome";
9 X  R; }& B2 _$ [' O                                @.DrivingHome := true;6 l% o2 h9 m8 ?# _0 y* z5 e  o& H7 ]$ P
                        end;8 J4 y1 `  t: y+ w& H3 |
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
; r- j5 }# g" U" ^3 {9 b                        part := @.transpOrder;
8 ~9 o* d7 U! i7 X6 p' [& @) ^4 W                        part.move(@);-- load part
; o, X  x7 [' `2 b/ W                        @.CurrIcon := "load";
0 Q4 q# Z! v  J8 s2 m$ b3 @                        GlobalDistObj := part.globDestination;
- u2 \. t4 A" |5 V                        assignLObj := rgmanager.rgAssignL;
- O& X3 m$ q' H/ A( f) o( E                        row := assignLObj.getRowNo(GlobalDistObj);- b( g- z5 u) d" z5 o; Q
                        if Row = -1 then -- since 70
. h6 j8 }- I4 l" B. E                                if lan=1 then
0 j6 y6 R' O8 r" ]" O                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- m$ N% o4 R7 \9 d5 f$ q/ X
                                                to_str("in der Andockstation: \"",?.~.name,"\""));; A9 P* o" Z# {4 F8 }1 T# S/ [! S
                                else3 Q' j5 [2 }/ |7 f8 D# r
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ E5 J& I! S; m( Z
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 O; Q8 w& u3 P" U
                                end;
# Y, B, e& `; L+ ^                        else4 T# ^8 |6 e6 n
                                @.Destination := assignLObj[1,row];
8 `$ y5 q3 U( p0 j  `/ S                        end;                        - g; O+ S0 Q( j1 s  p. b2 i* ]
                        newDirection(@);
; a6 V6 @- V" N" K                        @.HasOrder := true;
" Q$ ]' \; y2 A1 A9 s) p/ @7 ~                end;
- F/ W/ c0 m9 R        end;4 T' [1 {! h, z% ~" k0 u& e- p1 N
end;        -- of the method
" a2 S) ?9 U7 v* K; \0 \
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ! s9 m* B& G. z4 q

6 S. f  H0 E) C0 K% e; _! s+ Z! ?这是AGV_putin中arrive的method。
3 w# ~. \* `# X2 R! Z7 r
$ C# {3 P  Q; T# f# P3 ]当到达物料速度越高时,这个报警更多,/ |: w! F2 m3 W8 \
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。9 ?; l7 e/ Y" E* X7 o- o
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 ]% ^) u( ~' w

2 @/ L9 b1 j8 P. e另外一个小建议,就是move,所有的move都可以这样
, a# @! _. @4 n# o: Iif not move() then debug end
0 p3 {) D* a' q这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. H* W4 Y& {: n2 o
plant simulation中的free libraries有AGV模板,
& _' J/ f  G" }; k里面也有案例。
7 k3 z5 W; [0 W我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* z7 r! h, z9 f0 w3 K" Q# h
: J" v7 t1 S3 k# c$ L- u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- W# E. L6 ?7 [0 N% S8 T5 T, H7 i' C0 \& v, k! H, ~
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- E* Q; E$ j' g" n* d这是AGV_putin中arrive的method。
. F2 B( v$ q. \% m. P5 X* B0 a6 C; S0 _! q1 X
当到达物料速度越高时,这个报警更多,
( V9 ]+ J8 X6 E, A' e; M
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-5 09:25 , Processed in 0.018042 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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