设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6349|回复: 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'+ k* X& W3 O1 ^
*/
1 Z4 w; X9 I' q2 J4 I3 w' W, _' ]$ {. his
* n5 z. A) A' S8 E' D$ e; R7 y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ p9 g" R& z; e8 U9 b4 }# mdo
. u9 w! {& {' B$ T- z' }        Lan := rootfolder.Internal.Tools.AOLlanguage;
" N; r  [  z  }" O/ r        if current = @.Destination -- else return
! ?6 E# q9 |9 J6 Y        then+ g3 f! `+ F7 t/ B2 v
                @.Destination := void;
, n0 H# m; r# B3 Q0 C                if @.occupied then4 @7 q2 V$ ?  T% e8 p6 \- F. B
                        part := @.cont;
) _# L1 {. X$ V                        @.transpOrder := void;5 U; R; @1 ?# z- |* B- P4 T
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; c( \9 y5 e9 I1 j1 Y+ P
                                @,root.eventcontroller.simTime);
4 S( u8 g, M, K                        @.HasOrder := false;
& B' y/ R, p' m9 ]" ?: U  ?! X                        @.DrivingHome := true;
: [; `' Q. {6 V" m& f4 F+ o: G                        rgManager.tryToStartTransOrder;1 q. v1 X1 m( @# W2 j# `
                        if @.Destination = void
! S$ u9 T) R: a. N! G; p1 D; o                        then -- no transport order for vehicle @) x3 R& K6 |) T4 ~! D
                                @.Destination :=
7 y/ b5 }( d" r, N# p$ Z                                rgManager.nearestFreeStation(@,track.~);
& f  _$ F1 @% d! x                                newDirection(@);   
6 n5 h3 Z) s! v" `' B                                if @.Destination /= void then
1 }! [) X; v4 h- j% C8 X                                        @.Destination.NumReservation :=
$ E' N9 v, N* ?! u+ X  {                                        @.Destination.NumReservation + 1;
# r. o" a, o' F- W7 v                                end;
+ j( H  r/ P9 y. m" c% G                                @.CurrIcon := "drivingHome";; r. x3 H' |, I8 C( r$ {: x+ x# e1 q
                                @.DrivingHome := true;
3 [( F2 \$ C$ Y; a1 ?                        end;0 a* d% r  q% l: K# {+ n) t) p
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; K% w- w; A7 s1 l3 P
                        part := @.transpOrder;
9 M2 j: H' \5 S8 Q  t7 @                        part.move(@);-- load part
: f5 \3 N( V  h8 I( J2 L$ w                        @.CurrIcon := "load";
% d, _7 S- j; l# I4 p& K                        GlobalDistObj := part.globDestination;$ V" x) X8 ?; @( ^$ B& c7 t4 p
                        assignLObj := rgmanager.rgAssignL;' v3 O- K' g2 H' ~  d( j$ K) p
                        row := assignLObj.getRowNo(GlobalDistObj);' U; Q6 H  m8 j& z$ z
                        if Row = -1 then -- since 706 E  S; t' V9 }: M2 \; c% s8 C
                                if lan=1 then& k2 X% s. q1 B3 k
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ x/ q% F3 j# x+ I- J$ L+ I                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ a; O" D. a4 x2 H% o                                else
# z4 q/ {4 ^9 w6 z! @; S4 ~                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. C/ m7 \2 a* }0 z& @9 |4 z                                                to_str("in docking station: \"",?.~.name,"\""));                               
- V: I6 n" E! |: F7 J7 Y                                end;
& w/ |) i( u, w0 n1 F                        else1 N- E+ d. ?7 r1 @5 p. ]) a
                                @.Destination := assignLObj[1,row];/ C; o6 r8 w% J2 [  k  f
                        end;                        $ i& f; {1 z6 ]9 F- i
                        newDirection(@);$ d( C& n5 `/ n* Z& Y: n
                        @.HasOrder := true;0 H1 d; `' o! ^- L
                end;/ X2 G" W  S, L* s$ \- k1 g0 n
        end;) g2 b& j- X- J9 c2 t( ], q2 t
end;        -- of the method4 F9 M* U  X& }5 H( u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ m& P9 b, b* f! z2 s/ o& g$ b/ n9 S- W( C, G) [2 W8 G/ U
这是AGV_putin中arrive的method。
& D+ }9 r; S$ C( W3 {8 |2 `% }$ g3 T" U3 G- [" R% x$ Y
当到达物料速度越高时,这个报警更多,
% `- P1 S; v$ X3 Z可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, x, l9 y2 O! @1 B
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* S8 q  S$ P; c& S# @# A. R. n

& ^% p# Z4 F4 z% P$ f  G另外一个小建议,就是move,所有的move都可以这样7 y$ L( ^( {* W* p0 }: u! D( {! e  `" m/ W
if not move() then debug end
* L- U$ i0 ]0 P) y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# v* [0 o5 A" p5 }
plant simulation中的free libraries有AGV模板,
) O- i9 ~; M' ?9 u; |7 b3 _里面也有案例。! g$ M- M4 T! F1 a0 k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。7 L) C) C2 {; K/ C; Z* Q2 v% K

2 u6 x# G" \% a4 \/ w% E5 S3 G# d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * t$ }  T; x1 v6 q

( x! ^. D% w1 q2 C7 a% f那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : M$ c, j7 n5 ]  K: a, `' B
这是AGV_putin中arrive的method。2 i$ H  X% X) e9 i# p. ?

( O2 z6 ?3 U" ~" W% g当到达物料速度越高时,这个报警更多,
# ~$ j+ h6 E, [1 Z" K3 ~
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-1 04:38 , Processed in 0.018482 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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