设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8671|回复: 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'5 x7 [# b# ^+ n; x
*/
7 S( B9 j! T8 d3 |, i7 ?* @is# F' Q* E- r2 ?/ i7 a% F4 E! f1 A
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 S/ s( l* k3 o/ w% w8 S, Bdo+ r* D( H' b9 `! D
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 W, h3 g6 g( {; D0 L8 f! J2 ]% M        if current = @.Destination -- else return
0 S4 U2 K# n1 }/ S( f1 a        then; A0 k2 |: S5 z
                @.Destination := void;
+ X! i: \" Z" s                if @.occupied then& t3 E+ R# o, D9 {
                        part := @.cont;
" `- I5 i9 u+ e* G                        @.transpOrder := void;. }9 W. H2 n; Q. n3 `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 {% W, J( d6 z3 B$ V                                @,root.eventcontroller.simTime);
/ k7 T/ w8 c; r+ F" i. i                        @.HasOrder := false;
! l! L& X  x, `; \; Y                        @.DrivingHome := true;8 q( O6 \4 j. N+ u% G/ L/ \) ~
                        rgManager.tryToStartTransOrder;
: V5 o! ^% |1 \7 S8 X, ~& J' n1 U                        if @.Destination = void4 P4 e/ p, F* f( U2 `
                        then -- no transport order for vehicle @0 Q: x* g! q+ l+ V% c; g  Y6 E
                                @.Destination :=
. ~6 G# g* X: g# D, ?                                rgManager.nearestFreeStation(@,track.~);
3 y/ n5 H( I0 a                                newDirection(@);   8 z' {9 i2 x' M; a9 }* J" D: n
                                if @.Destination /= void then
' Y/ l; j( r8 Z                                        @.Destination.NumReservation :=6 z/ ^, o3 y. ]" \: A& o
                                        @.Destination.NumReservation + 1;- ^9 J- r9 Q+ W  `- v: t3 E& |
                                end;6 T4 Y# b6 I3 [! o; K) ~8 ^2 o
                                @.CurrIcon := "drivingHome";" U; b5 t. W2 @4 ~- {
                                @.DrivingHome := true;* B) X9 {: z+ u7 z1 S
                        end;7 Z5 j" c( u5 ^2 |& |' d
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 U. U9 X5 u1 q% z                        part := @.transpOrder;8 c" i1 k4 h+ F$ S5 z( K$ c
                        part.move(@);-- load part
$ ^$ n1 D/ f* d2 x( Q& u                        @.CurrIcon := "load";' K& z' ^  G' ^" g4 R; l+ W
                        GlobalDistObj := part.globDestination;
1 _9 u" p9 v6 X# \, Y                        assignLObj := rgmanager.rgAssignL;
/ I8 S" v2 \: {, T& _4 w+ {                        row := assignLObj.getRowNo(GlobalDistObj);
6 f) O! M$ b4 C  ?* p$ a                        if Row = -1 then -- since 709 }/ K: R% `5 ]
                                if lan=1 then
; I$ X6 d" u% o2 q$ v! ]                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 h8 N) |' M/ |- z3 W$ D
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& J, Y) y/ p/ m                                else' W6 H+ U, _  F
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
0 a) R0 k) w% s& R% F+ B                                                to_str("in docking station: \"",?.~.name,"\""));                               
( Q& W+ a! k1 ^! F                                end;) s- Q- _) i5 ?' A" u% s
                        else8 r. M. z, e9 |# e
                                @.Destination := assignLObj[1,row];8 [" B8 ]  D0 o) I
                        end;                       
% C2 Z9 M9 ?7 U. `                        newDirection(@);
7 k7 q5 f* ~" B7 C" R* v- i                        @.HasOrder := true;. V- C% p! R8 i% y  n+ l5 H5 Q
                end;
$ z* ^; z% H* \7 D8 a$ h3 i- f( J3 `3 |        end;
% E( V/ [. e) `) w- A- X- W' ^end;        -- of the method
: x/ E, a; l! ~8 Q) L6 g$ [. j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, F" |' B& s( A7 T3 d. ^2 X9 @" d/ z  i: [. Z: S
这是AGV_putin中arrive的method。
5 w( |3 L& w% y2 {) F$ }. ], t1 [% b3 E; @( U2 V6 p" j6 x4 ~0 T
当到达物料速度越高时,这个报警更多,7 p8 M! {! K6 ], t* U" `' Z. k; v
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! b; N1 b, t" Z  X程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) A. ]& K% l! v* u( Q- n- @7 i( f* h  W
另外一个小建议,就是move,所有的move都可以这样
8 B! @4 T. Y$ `* mif not move() then debug end
0 _9 `+ ~  a% _. _! k$ x这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 B( m. z' _6 p( J
plant simulation中的free libraries有AGV模板,, T, S5 ~( L+ T* m! j. O
里面也有案例。4 }) N! ^8 m6 |' S: P! u6 E
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% t5 @. g; V& b3 J6 C) f* s# O5 q6 P8 K8 O# _2 _( N( a$ l) ^! V5 o
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
7 v1 [7 ]  _5 S( E: ]3 Z" U) ?+ ~2 n2 x6 Z1 u$ ^+ r0 c/ M9 C. P
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 v* F* E- E. J- o% Z. U  i1 i
这是AGV_putin中arrive的method。
4 z9 T4 H8 |  R9 b4 n0 E3 n$ X- y! G, ~$ r; p& z+ f
当到达物料速度越高时,这个报警更多,

+ T1 x' Y7 @* w1 U* M8 i4 E另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-19 06:41 , Processed in 0.014999 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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