设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8662|回复: 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'6 q- S4 t% P9 V, j5 I
*/
$ U: G5 }" U- L( t, I# t# S* Y  ?' Jis
/ e- d8 y" D$ K5 W$ C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ M2 N- _8 `7 w( N- C$ rdo
8 Q$ F* U0 s3 e, u4 i        Lan := rootfolder.Internal.Tools.AOLlanguage;+ }3 C& V( S" p6 S
        if current = @.Destination -- else return. D$ y8 X$ z! D& {0 }
        then
& F. k* {% M* Q8 b                @.Destination := void;
0 h* p: {5 u0 }+ x1 e+ ?( ?                if @.occupied then
$ Y+ f, K; X# I                        part := @.cont;0 c& j5 U/ S6 i* X
                        @.transpOrder := void;! p* ^( b% O: f' a5 G  U  Y
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 g  R6 t. w5 ~' l2 e6 ~
                                @,root.eventcontroller.simTime);# Q  i& u! R: c: w: g+ f
                        @.HasOrder := false;+ U2 L: n3 _8 |8 X* K+ s) @  N
                        @.DrivingHome := true;$ Y- ^3 q( B7 F. W" G
                        rgManager.tryToStartTransOrder;) g  D! v. D' N+ i0 g
                        if @.Destination = void0 R# F8 R3 ~& l  Q
                        then -- no transport order for vehicle @
: V4 [* n& G$ A  p% }% D! ^                                @.Destination :=* G) q6 h& x) R
                                rgManager.nearestFreeStation(@,track.~);
- U5 z- X* t  m                                newDirection(@);   
) M" g- w  P) B5 `                                if @.Destination /= void then
* r5 X1 _# j! S2 ^6 q) K4 S1 q                                        @.Destination.NumReservation :=9 Z3 P( c# {, p! e* u' {* g
                                        @.Destination.NumReservation + 1;, n* Z% b1 T$ @' d4 m9 [9 q
                                end;
4 S8 A$ A3 W/ S1 v. l7 ^                                @.CurrIcon := "drivingHome";
* F3 k5 Z: I$ x, S: i& `                                @.DrivingHome := true;
3 ^5 a+ N% ?1 T2 n# N6 l                        end;
5 I! F7 O' b( {# w. @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. I8 `* F: F% F0 D1 B& |/ O
                        part := @.transpOrder;
3 B0 L" b, L2 V6 x% r3 ]) d3 b0 c' W                        part.move(@);-- load part3 ^9 }( M% U4 g( k2 F
                        @.CurrIcon := "load";
- {( B0 A# ~9 W% r# l9 @- d                        GlobalDistObj := part.globDestination;
) K5 T' n" `: _5 z7 C; i7 j                        assignLObj := rgmanager.rgAssignL;$ R8 e1 b3 N% Q$ @+ H) ?2 W
                        row := assignLObj.getRowNo(GlobalDistObj);& h/ y" A9 [; [* J
                        if Row = -1 then -- since 70& e. F; q9 \8 B& f: h! P* W# K
                                if lan=1 then( b6 ]5 _) n0 M  k
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% Z2 }) \$ C3 t
                                                to_str("in der Andockstation: \"",?.~.name,"\""));, P2 [* U8 n" ]
                                else
" p* o, c3 V# L                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 T: m+ h. t8 r) k2 X, b5 q5 S
                                                to_str("in docking station: \"",?.~.name,"\""));                                  G5 z: A7 D- E9 ~- O  Y
                                end;1 B. g8 F& T- Q/ [: N& M) J. n4 Q
                        else4 R) d" g0 F8 h( O) u8 f. n6 m
                                @.Destination := assignLObj[1,row];3 q$ _: A! r! n: B
                        end;                       
- z2 l9 G3 r( w6 a                        newDirection(@);# L$ e5 j, K+ q# e7 A
                        @.HasOrder := true;9 E6 D( q0 c% x! E
                end;
+ n4 I1 D8 v/ c9 z        end;' Z7 K+ H8 R, u9 E7 b% N' \
end;        -- of the method
- x% l; Y- N% X" a2 w' g
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + R$ `) w) _- F% k& r6 o3 t: A- i

* s5 i! o( I7 B4 j这是AGV_putin中arrive的method。' Z6 x' m! J) f* A7 H
7 c6 s5 |% k; ]) U; A9 K' T) Z2 G
当到达物料速度越高时,这个报警更多,' y5 d+ C( \- A. A* o$ f" [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 W/ @( u6 h# K. o/ h程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?+ s- [# z  \+ M5 L4 t: \4 t
* W$ Q" H+ _7 B$ ]: J
另外一个小建议,就是move,所有的move都可以这样
: S0 p9 p/ k8 i0 o! u2 F; Kif not move() then debug end7 o" T0 Z; k, n1 K$ P# r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' V9 p% V3 }4 d/ I$ W3 `plant simulation中的free libraries有AGV模板,1 m5 u2 V% r! H  E9 [
里面也有案例。
: o9 q) s: L  o2 c, x" h我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 W; V' M8 X8 Z) y
) {. S- x  \3 n0 z% A
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 A' r$ a, V+ c/ m1 ^% z1 c3 @1 ~/ ?) J  k' M
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 4 M) B% ~" R& o" ~5 M. X% g
这是AGV_putin中arrive的method。
1 m" c/ W" S! M' g: H
- s( U' s1 `5 V  f5 q当到达物料速度越高时,这个报警更多,

9 m& J: R& {0 o  E) D# G另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 17:07 , Processed in 0.016193 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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