设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9770|回复: 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'8 m) C( q; h; H$ }7 H+ Z$ F' C: j
*/
9 C+ }# J- g' ?8 I+ S) g% Xis
4 w5 Q1 x% H% B. N1 T7 a# D1 G$ l        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# ]- n; n) v" c4 d4 I# N8 }& Ddo
8 n8 R. l% f$ [" G- v2 d/ y        Lan := rootfolder.Internal.Tools.AOLlanguage;1 q8 @  a3 Z7 F
        if current = @.Destination -- else return0 F6 A0 _4 a4 P/ @, u$ v
        then% V" z$ l1 I1 W! ^& H4 @
                @.Destination := void;
4 u3 V9 f% R$ j% J; P- S( s2 l                if @.occupied then4 m+ F% V8 x+ K/ l% D3 y- g
                        part := @.cont;9 X9 I5 O) y/ D$ O
                        @.transpOrder := void;2 b( @$ N2 Q# c+ n1 G- R% `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 W5 c. h3 E4 ^                                @,root.eventcontroller.simTime);8 B: L2 P, P1 c# [7 E$ w
                        @.HasOrder := false;- S# c/ C8 e$ B( J& r
                        @.DrivingHome := true;* O2 [$ n( c* U. ]  r- r
                        rgManager.tryToStartTransOrder;
, a: s, C3 `6 R% W                        if @.Destination = void
& D6 D% m% U& B                        then -- no transport order for vehicle @) T7 f* ~1 G1 B3 A' l2 V
                                @.Destination :=% H" {- D7 a) N7 d  S$ b: ]
                                rgManager.nearestFreeStation(@,track.~);
/ d  [$ x( X/ X; ], A                                newDirection(@);   
4 Z% q- s) i( Z: r9 p" d                                if @.Destination /= void then* p8 y- F) y9 ?5 u3 h( a: v, w5 |
                                        @.Destination.NumReservation :=
; K% K  \$ h( j# [4 ]9 |                                        @.Destination.NumReservation + 1;+ T. {( p6 k" t& d
                                end;9 g, w* A& B4 V+ ?4 Q
                                @.CurrIcon := "drivingHome";3 P! F3 O4 F! [) _4 g
                                @.DrivingHome := true;% C+ |( A$ \# h" E0 X  s; L4 O
                        end;4 X7 p: Q- Z' b6 H
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 ?7 U; ]4 K# Z% T3 ]                        part := @.transpOrder;1 M5 R& K2 r5 ~4 r! q% m. l2 ?- p
                        part.move(@);-- load part6 c2 g) J. Z$ V1 Z
                        @.CurrIcon := "load";0 L, R/ D2 V& f3 M9 G
                        GlobalDistObj := part.globDestination;$ m$ u) j9 O. t! d6 F1 {, Z
                        assignLObj := rgmanager.rgAssignL;& D6 n1 V  X8 v7 u2 @/ M) J
                        row := assignLObj.getRowNo(GlobalDistObj);- u9 l! e+ ^8 _  i& ]
                        if Row = -1 then -- since 703 J; Y7 @& L7 H
                                if lan=1 then
' u) O  b& h8 b4 Y1 U) E$ ^* _3 o                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
3 r) a% |" z8 m" j$ S                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ Q7 m( q2 e5 L. r% \, ~. H" v                                else
- q. R; q+ d! J                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ Z) X" b( V1 j  n# p/ P8 x
                                                to_str("in docking station: \"",?.~.name,"\""));                                : J& o8 l  w' T) k5 U4 R: |
                                end;
/ q" J! H- x1 \! N  X% w                        else+ ?: n8 X. r" L7 t2 T5 I8 P( Z
                                @.Destination := assignLObj[1,row];0 B1 Q% B8 Z: W, ]2 F; T
                        end;                       
' F% ?8 h4 |0 _% b, S: e% S                        newDirection(@);8 x  Q- W1 D1 `% A# ]6 t
                        @.HasOrder := true;
: }0 \% y& B) ~: r                end;- }8 p4 q+ K7 N
        end;* N* |8 D9 y1 B% D
end;        -- of the method/ z# Q6 k1 y9 X" b% {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 v! o2 M$ T! P3 F: _. V
4 d0 s: `& t' Y4 J/ ?8 r
这是AGV_putin中arrive的method。
( i# o+ j, `& X% o0 }7 f/ `9 H& j9 c1 ^5 S
* d! y: `# X* o$ z" U3 D( i3 e当到达物料速度越高时,这个报警更多,( N; f7 t, \/ l3 _3 U# }' H
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. I# ]% t- [6 s' h4 J! \/ n程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, G; e4 n! ^3 F# E- ?
0 G# l3 y4 o6 C, K  i5 A( e另外一个小建议,就是move,所有的move都可以这样' {7 s6 l+ [  C! B3 J
if not move() then debug end, |$ d, s- l, R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 C0 F2 D; x2 f  J7 I- R$ j- T
plant simulation中的free libraries有AGV模板,
% `$ D7 B9 S0 y里面也有案例。
5 a9 w$ U- Q* j/ p" I我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& m. ]6 Y2 {* t6 X' ^+ r; T: p, X6 O, B( w8 f, W9 E
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' [: a  K! @8 j, a$ G
: p8 G4 @/ N" T* Z, t, }- h那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
! C, T" S$ H1 C这是AGV_putin中arrive的method。* ~* Z8 @3 r. z# K% A! E% q! Z! L3 A
, o! x. U8 W3 i" l( Z
当到达物料速度越高时,这个报警更多,

$ G, g  R6 V& C* _5 d3 D6 L另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-23 17:43 , Processed in 0.017064 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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