设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9733|回复: 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'7 R/ X. b* [, \  v+ H0 H
*/- n# O" O9 m' s4 W0 q
is
; A& t( d% d$ @7 o6 P3 M        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  O6 M# y- D8 z* Y: w, i1 a8 g: F
do
! ?3 N& q* z  s" D0 U/ [) C        Lan := rootfolder.Internal.Tools.AOLlanguage;# C& M- x" N8 p" \. ~% e! y
        if current = @.Destination -- else return
) x% K; Y0 y" d( o4 v        then# U) o' J: t/ E
                @.Destination := void;' y2 ^, Q/ T; c0 k$ T8 `8 Z* E
                if @.occupied then1 z1 U: Q* G1 C1 N( x, M
                        part := @.cont;
5 |- x: O! Z) Y6 N5 X                        @.transpOrder := void;
. {; _4 u$ ]% o/ Y" S, p                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 u* i' A  t+ \' n) l2 X                                @,root.eventcontroller.simTime);
0 P7 z% Z( z7 M- e4 m                        @.HasOrder := false;
1 _$ P, `( a9 a! J0 F% x; T                        @.DrivingHome := true;# L% g5 M: n; B/ @! J5 z  r/ o0 o
                        rgManager.tryToStartTransOrder;3 E. l* e. e3 U; J7 C+ W+ C- d
                        if @.Destination = void8 ^! M* e+ }4 |$ y) H
                        then -- no transport order for vehicle @, y7 E5 t$ X0 J; U! n& C% R. y
                                @.Destination :=/ a% K9 I" V( |' i, J
                                rgManager.nearestFreeStation(@,track.~);
7 P1 ?: b  b# f8 Z$ a) f                                newDirection(@);   . d8 g" x' f6 n0 p
                                if @.Destination /= void then
3 s* |# e2 [3 \' @) \' W                                        @.Destination.NumReservation :=
/ U7 ?9 J! U# n  [4 J                                        @.Destination.NumReservation + 1;
, `& h4 J* x3 K2 P9 q& }  R  a                                end;
$ ~# K6 u- c8 V8 U. j                                @.CurrIcon := "drivingHome";- x6 B3 Z& l2 @6 z# Z6 O
                                @.DrivingHome := true;
: H0 |3 O2 ^/ j3 P  l5 R                        end;
' B' K9 J# P& D0 F, K0 \7 J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 \) v- ]$ Z6 f9 h0 ?
                        part := @.transpOrder;
# i+ k, p* w, v. r7 b7 D! X                        part.move(@);-- load part4 E  h9 F, N0 R  m& l) x
                        @.CurrIcon := "load";
: a  L2 ~9 b! p/ B/ f                        GlobalDistObj := part.globDestination;
# ]! P  G( c* J  O, _                        assignLObj := rgmanager.rgAssignL;
0 k" d1 ?" @; v# F5 Y; R0 |  L                        row := assignLObj.getRowNo(GlobalDistObj);
* s; v( V2 Q6 f                        if Row = -1 then -- since 70
/ J; p0 l) }3 x$ `" S1 a                                if lan=1 then
4 ?2 L, Q% r0 |% z0 e                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 R8 e" h6 S9 @9 o+ T! B9 y
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" w+ N5 b, Y( \" o
                                else% w7 O( m1 ~" F
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
9 B! Z: G- @$ e/ O                                                to_str("in docking station: \"",?.~.name,"\""));                                # H( Q9 D( y& v" d' G
                                end;( p' ~5 i* a% u) M6 y3 w! p3 p: H% i
                        else
; F& j" T  d2 w2 f                                @.Destination := assignLObj[1,row];. C& y1 C' z" L; g5 a: O
                        end;                       
3 [7 E/ G, H7 B1 h; L+ e                        newDirection(@);
0 c9 @- ?4 s! n" b. E                        @.HasOrder := true;0 M( P# S" I' q8 k
                end;
/ [/ w. c) @+ Q# x" W# K( b2 R        end;: K* X7 _! p5 h! j# e# Y% C5 E4 ?
end;        -- of the method9 \/ J5 _  g2 J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 E) M2 @! s8 L8 a9 l) K2 E! s! S8 i4 \. L
这是AGV_putin中arrive的method。, e1 I) Y: [, {$ F5 j4 o

" \2 z1 |9 U# D, Y当到达物料速度越高时,这个报警更多,
- w; g1 n) W; H/ R, \可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& A0 Q) @* T6 E程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! d. r5 o! i4 Y2 p# f8 v* ~: E, q: |- ~% }; j4 B8 t
另外一个小建议,就是move,所有的move都可以这样3 e4 E# Z, C- I, [: o
if not move() then debug end( u7 I0 G& z( i# ~8 H
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 I' q5 |8 u' `' U) _: j4 yplant simulation中的free libraries有AGV模板,
# }/ C8 F! e) _9 F# k; I里面也有案例。1 n) z3 k1 s7 J3 |
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
) K! u) w  H4 U, d! [) E5 o4 I! A0 V1 ?4 g9 \: f7 l
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
4 C2 f2 q! i  ?2 i* r- T5 m# c# E+ b: n
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
1 g2 N( S$ K! F( O! b) g) J这是AGV_putin中arrive的method。
0 T+ v) G0 \, ^+ k# o
! k) R( X5 ]/ |( a- W  _* W当到达物料速度越高时,这个报警更多,

6 {/ g( u0 `; ]3 s2 i另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-21 03:57 , Processed in 0.021793 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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