设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6021|回复: 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'. U  h# G4 K+ h9 J
*/# F" y, ~! r% J5 N8 {6 p# M/ g; |' |
is; S- U- b4 T" {
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: p8 z7 g! M/ r' m: E! ?do
9 A7 v  }) F6 c1 V- Q        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 @4 ]: o- J3 P, G' r        if current = @.Destination -- else return8 B( G( X$ p" y  z
        then
. a9 @7 B/ g' o                @.Destination := void;
6 B; L% r- ?/ J' ]                if @.occupied then
* {( X+ _! L: @$ h( I6 D1 F                        part := @.cont;2 d7 k. T, z( {1 e# d) q
                        @.transpOrder := void;
2 U$ {/ V/ u* m. |                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% _8 r2 q9 R2 ~& ]) M9 Z& A0 q                                @,root.eventcontroller.simTime);
; b- f4 h- p9 Y" ]$ n3 t                        @.HasOrder := false;
, I8 E  I! y) E# D7 I                        @.DrivingHome := true;
8 b+ [  q' q& b& r8 r                        rgManager.tryToStartTransOrder;! [3 {, r0 G" l4 I
                        if @.Destination = void
8 ]4 _$ i0 M' a1 c( U: n7 u                        then -- no transport order for vehicle @
9 P0 _) o4 f& F7 B- d- m                                @.Destination :=5 d- `' O" J/ ~& `9 B
                                rgManager.nearestFreeStation(@,track.~);
: M5 S# G8 I9 \- Z& P7 s. F                                newDirection(@);   
4 L- `  w. f; n5 P0 h# I                                if @.Destination /= void then6 e& G2 p/ H! m
                                        @.Destination.NumReservation :=3 ^$ l8 n# K9 s" z
                                        @.Destination.NumReservation + 1;
* \# }. W; N1 g9 @& E& Q- U                                end;* h/ i0 G& \" F5 \/ H  m
                                @.CurrIcon := "drivingHome";' O/ p: Q7 m1 v9 G
                                @.DrivingHome := true;
! u# @: }6 l: n0 u8 z6 B+ X& D! U                        end;, w5 Z! P" w# ]+ ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) g) s, u. A' U' T9 }! l/ I                        part := @.transpOrder;
7 O6 [$ D* B# {7 x; m                        part.move(@);-- load part
4 B" Y! W: `; R5 m7 q; S& L& ]8 R; D                        @.CurrIcon := "load";
, n4 C: m, Y0 o, B% ?1 |* C                        GlobalDistObj := part.globDestination;) J& w; g! j1 k' I, V
                        assignLObj := rgmanager.rgAssignL;! ~( O/ Y9 x* L; s3 C) |
                        row := assignLObj.getRowNo(GlobalDistObj);* y( S+ i6 k9 w( F" w/ m
                        if Row = -1 then -- since 70
" @3 w. s2 l& g* |/ m: |                                if lan=1 then
3 V! b7 Y2 J  v7 }2 [& H                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),' b  ]0 f9 _! t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));& S( O  M: a" q. ]& ?( F' d
                                else: M# s& d1 g. E
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' X  s& x0 z6 o; b% b
                                                to_str("in docking station: \"",?.~.name,"\""));                                . Y) W5 ]. f& b; _
                                end;; u7 S+ I$ L1 w7 F& O! N5 c% f
                        else
8 ?# ]: h( O9 [  {8 G                                @.Destination := assignLObj[1,row];
0 u9 I5 W1 p( t: R" a0 t3 \                        end;                       
. `1 S! j/ w( \- ]! X: M4 ?) h                        newDirection(@);1 K8 p' D2 o" Z; K9 n# D
                        @.HasOrder := true;
' c; M! K. @' P! }( Y8 H1 }* p1 a                end;- W- w  e# n& E
        end;7 b$ b8 j5 I9 _5 a5 S$ p
end;        -- of the method
) W( L+ D- @# n( Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 @/ A  N0 T7 \. ]
* b& k0 W& c) N5 E( M这是AGV_putin中arrive的method。* w) x9 T9 b  n
( z" [2 G% {/ k+ G1 a# A
当到达物料速度越高时,这个报警更多,
+ W7 a6 \! y5 g9 ?/ [( E) N2 j可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 B5 F$ k5 V! B- w9 B5 T, [
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 B& J9 c6 v0 m8 i. ^
5 A) X9 \: ~2 B+ H* @) y  {8 i
另外一个小建议,就是move,所有的move都可以这样
. |2 G# K- y0 q/ p& Wif not move() then debug end
/ J. c5 P+ w2 [( ]% |这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
* P6 I) i" B$ ^1 O- x, Xplant simulation中的free libraries有AGV模板,/ T' U& a. z$ b: @1 K8 e
里面也有案例。
% M2 U- Q5 u( H" J我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ \; H3 Y- a) \+ e5 G. Y) X
3 t/ W+ M3 q( X# I+ {# S/ H
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 h( n' [5 J' _  Z5 w4 L+ p  R; ?
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 $ q( v6 l8 s' |& g) |( [+ u1 b8 ?9 j
这是AGV_putin中arrive的method。
- v  k; h$ Q/ p/ x
+ }# c. g# K6 n7 O当到达物料速度越高时,这个报警更多,

& m( f) S, c8 X2 t% G- r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-13 07:52 , Processed in 0.024710 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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