设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5963|回复: 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'; a5 k0 u3 I% z- t/ B" w
*/
1 N# \/ d( K) V/ t, P: ris7 A) f9 b  @; Q" C. Y1 i
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
* W3 t5 @' Q- G  ?/ T5 ddo
$ T' H  J) X$ x  R7 X! w        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 t7 i+ L& @0 u9 F4 [* V* I" J  v        if current = @.Destination -- else return1 {  K6 L, l4 |$ C  t
        then& |: j# m% V9 J& j5 s1 R7 {0 H
                @.Destination := void;
& T6 O, b: w& F. ^1 o                if @.occupied then" Y. w) G2 l. B% a
                        part := @.cont;
: F' E+ m4 f. P3 c) [: g                        @.transpOrder := void;, A0 D4 R4 Y% Z+ ~" ]. P& b" M
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,2 n1 y. N, t: @, `! @/ [
                                @,root.eventcontroller.simTime);
- b8 H5 U2 L' i3 Y: `; U2 U                        @.HasOrder := false;4 U2 O- `7 T4 B  V0 c' t/ J' t- c
                        @.DrivingHome := true;: K& w$ _+ U$ V- Q. r
                        rgManager.tryToStartTransOrder;' B( x8 P! q4 `
                        if @.Destination = void
! X- G  H3 f0 |' e1 u$ Q; o& u                        then -- no transport order for vehicle @
  u/ S8 a& e  I2 B' @0 z( b                                @.Destination :=
2 U& e" D* V1 K1 f                                rgManager.nearestFreeStation(@,track.~);9 K# a6 W, k' R$ P  e! `; F6 a3 ]
                                newDirection(@);     _1 V, h4 M4 G- \. y1 g- f1 V
                                if @.Destination /= void then
- u6 d; I) T* I* R                                        @.Destination.NumReservation :=' [# V- w  ?. g1 `  W5 ^& x
                                        @.Destination.NumReservation + 1;6 }3 I/ m) P/ f* ~6 |" f
                                end;$ s, n. m0 H$ L2 e% G. Z5 ?1 t8 \
                                @.CurrIcon := "drivingHome";
4 R; A" J/ }  p8 X                                @.DrivingHome := true;
& ~7 _0 d2 r) r9 K                        end;% Y% j4 k; D3 k# A. Z! [
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# }) n! K5 W/ S2 {. T8 w                        part := @.transpOrder;. k% Q5 y% E+ m9 t3 o; f3 h/ n) g
                        part.move(@);-- load part. F# F( g8 v3 g( Y) @
                        @.CurrIcon := "load";
* `) S4 o8 V9 k& T& p" O1 l                        GlobalDistObj := part.globDestination;6 l: v9 X+ k6 p
                        assignLObj := rgmanager.rgAssignL;
3 F- o( s9 ]' ~6 V0 ]! @: d: i* p                        row := assignLObj.getRowNo(GlobalDistObj);1 x$ d! c! I. j6 P9 k& m" a& f7 Y
                        if Row = -1 then -- since 708 w0 O4 @1 u, z
                                if lan=1 then
& g8 a% x/ v  a' ]8 E+ a# @9 c                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 D7 n$ c3 {" `+ r3 ^+ q                                                to_str("in der Andockstation: \"",?.~.name,"\""));
0 c) i4 R7 T9 e& E4 ~6 z                                else
: o) H3 z: i& s6 p- }                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),- z! s; @3 B$ f8 `6 f
                                                to_str("in docking station: \"",?.~.name,"\""));                                0 U2 U' G+ t$ m; G2 T* c
                                end;
0 u# g4 f/ s; _6 C8 U9 h                        else
' a- O, |0 \: }% i, |3 @7 V0 d                                @.Destination := assignLObj[1,row];4 c! L: _% w( h! z* G3 {+ \/ K
                        end;                        ) _# L$ W7 r2 V- j7 d
                        newDirection(@);
- H. B" G2 L& `0 s                        @.HasOrder := true;" o9 e  v" b3 ^( J9 E
                end;
6 \2 \1 Z  {3 G- ^0 i: i3 W" \( A        end;
# Y6 n* i: e! y$ ^+ B- }end;        -- of the method
: e! d& O# m, `1 X4 G+ w8 i' K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
' m( b4 ]5 N9 K' l4 X7 g3 [, U- o' U( Y8 S1 ]
这是AGV_putin中arrive的method。, \  K  H4 }- n1 k* ]* u
: `  H& ^: _0 S
当到达物料速度越高时,这个报警更多,
( T* @: j/ s' F$ N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! B6 u4 A; Q! z/ Z9 y; G/ E
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! u& E, w* ~- b5 z5 R! V5 l. K3 \6 l* [( A1 ~9 c
另外一个小建议,就是move,所有的move都可以这样2 X6 _9 D7 |( z
if not move() then debug end
. ?) Y, Z  p8 n; o" n6 ]) y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
+ Q4 Z; y+ s# i; q3 u! }6 [& iplant simulation中的free libraries有AGV模板,
/ G) f/ V) @5 O$ n' h9 J4 \, P里面也有案例。: ]& p( a/ t& \& r
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ S2 f/ W. A9 p! u, N/ Q0 ~
! h/ A  U$ ~( h6 D/ J& _# y我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 {8 R) H1 r+ D& T" w$ ~2 o1 T: b9 }
/ ~5 `% r( C. _7 B3 \" w
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 n' i3 Q- b* _# B: c这是AGV_putin中arrive的method。
' J/ N" j+ @$ M( I+ Y) l# E/ o6 A7 f
2 ~4 D2 f7 i9 F/ _8 p+ O# a当到达物料速度越高时,这个报警更多,
1 ^+ p" ^9 y" L! N$ z: S- b
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-8 10:24 , Processed in 0.016206 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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