设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8928|回复: 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'
6 ^; ~5 K% ~' C3 v*/: B; E  d3 `# G& i& O0 X( `- k
is
% z* c) ]* i, G8 t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( T3 ^9 c. S- K, v; G4 W& d) Xdo! u% Q, T: ~( z2 ]+ p
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 f$ }; {7 s0 P# r        if current = @.Destination -- else return8 @8 l3 C/ n5 a; v4 b( V- m
        then$ i' E( Y9 l! ^7 M
                @.Destination := void;
- j6 h' l' R, M* q                if @.occupied then
+ G- u2 S: u# }                        part := @.cont;* Y6 u8 O0 q% Y* C6 f* T8 p
                        @.transpOrder := void;
0 ~! {# I, z- x. O+ h, |% e                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! t2 ?9 H5 ?7 g
                                @,root.eventcontroller.simTime);
$ O1 ~& J( B. J  l1 o" ]7 @                        @.HasOrder := false;
6 T, ^( g; B$ w5 r( `- R                        @.DrivingHome := true;- e) x# Y" q! j
                        rgManager.tryToStartTransOrder;
% J  X+ T/ P* R5 ]1 T( z                        if @.Destination = void
: T0 b" s- i' ?                        then -- no transport order for vehicle @, f1 @/ R- ^/ y4 L6 u+ F1 \
                                @.Destination :=
% I. t$ S, {8 Y; t' E5 z                                rgManager.nearestFreeStation(@,track.~);" U0 U3 x4 Y) f
                                newDirection(@);   8 x) Y; S) I) I( y9 d) U3 B- C
                                if @.Destination /= void then  H+ R: r5 k  q  N  J  J
                                        @.Destination.NumReservation :=
% Z6 o5 F9 b+ y% s% T5 e                                        @.Destination.NumReservation + 1;
$ o% J- @7 B# M; H! Q7 y( _9 w                                end;
0 j3 a  ^9 J( Y4 B* [; C7 u                                @.CurrIcon := "drivingHome";" ~6 W" R' j/ N9 s0 _' a5 n
                                @.DrivingHome := true;) B% X' U1 D7 I8 H9 t% @
                        end;; ~" [  H7 D" `; [2 E9 [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& {: T3 s- L: z  q
                        part := @.transpOrder;
0 X% t8 \9 v& e/ H7 ?3 H2 x                        part.move(@);-- load part1 e1 }* \( K  O/ M# c% Y
                        @.CurrIcon := "load";& P4 o" Y6 N2 \, j. B9 u
                        GlobalDistObj := part.globDestination;) Q/ a' K4 F3 z4 P" z1 f( H5 q
                        assignLObj := rgmanager.rgAssignL;
$ h) Y; F8 l& N/ A7 l8 b' ]- U! E" Z                        row := assignLObj.getRowNo(GlobalDistObj);- H8 M* o; K4 ?# l6 B$ Y+ Z
                        if Row = -1 then -- since 70
* K7 q& G( Q" I                                if lan=1 then
6 t, ~; s9 J# m$ j0 j' |# x                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 V9 X5 `1 u3 ?  ]# @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" `3 |9 q  A7 Q- F1 J: e/ {$ m0 `; f+ _
                                else; [5 s7 J# o7 `% _3 o: X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 j6 i$ G5 X: D7 k% [2 b                                                to_str("in docking station: \"",?.~.name,"\""));                                . w+ r# o; k* Z3 @0 q5 G
                                end;; a, R9 f. R. e
                        else
9 H% A' h' x* j" J- J                                @.Destination := assignLObj[1,row];9 h2 U6 |5 v, U: E( A
                        end;                       
' ~0 H4 @. K+ ~" Y$ A                        newDirection(@);
1 ], f9 i- B& D7 r; l) y( O                        @.HasOrder := true;$ j3 b7 t" H9 `
                end;4 A: x6 ]  L* o& n7 K/ F# I
        end;0 E' `! j3 _+ x8 E! X- [
end;        -- of the method# u$ L' \% Z% P* C' P  b7 M$ l
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + r5 X. s: E0 \7 H# G- u
! z4 C5 Q! |: \- N5 p# t  q8 L
这是AGV_putin中arrive的method。0 A* I  Y5 \% S# R- `, Z

3 i9 S9 B1 F. d( n3 F当到达物料速度越高时,这个报警更多,. [) _% `6 v5 ^' {
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- z# b8 t; O+ T3 }: {2 K程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 G# V9 }/ R8 e3 v+ T
5 S% `. s1 d- x# T) L3 P另外一个小建议,就是move,所有的move都可以这样
/ o; L( h1 s+ p# J" uif not move() then debug end
5 x* T  W% n0 i, Z+ H8 v这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) P( G" Z4 F  Oplant simulation中的free libraries有AGV模板,8 _! y* ]5 L  V
里面也有案例。9 M5 `6 F8 u9 f! C6 G+ n7 o
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! j5 r$ M4 r0 g
. E$ D& [* e: Y$ h
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 X1 p. }& W- w2 k# C- v/ v7 b
6 {5 T: y9 q( J6 r1 V
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. A6 S* N1 k+ ~6 [# q, ]这是AGV_putin中arrive的method。
" C7 t4 X/ ?' N9 B7 v$ u+ v) m1 I  l* @7 M' e' @4 k; t6 A0 |/ l
当到达物料速度越高时,这个报警更多,

" g! J7 W, \' J3 z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-4 19:28 , Processed in 0.016762 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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