设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7668|回复: 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'& T6 Z, @" }: ]# a( v5 k- Z
*/
" r- X0 [5 g6 i9 jis) U( i7 B4 o  `! b
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
# d$ a8 L! R* e, G. V$ Tdo( G' ~0 k1 ~7 @+ M/ _
        Lan := rootfolder.Internal.Tools.AOLlanguage;# j* p, m( \8 R: }+ |
        if current = @.Destination -- else return
$ j0 x( p6 \# f( {0 r9 p( p; o        then
5 x/ T; n( y! s' ~                @.Destination := void;6 L0 g$ t4 G- e5 _4 V( {
                if @.occupied then. ?* D4 |( D) t* Z
                        part := @.cont;2 [. o; b: K% k1 s
                        @.transpOrder := void;' S; h6 L2 ?8 u: P
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 f9 R( s, e9 Z& r
                                @,root.eventcontroller.simTime);2 ]9 s& [+ i7 J8 P4 ]! F8 ~- M: I0 O
                        @.HasOrder := false;0 l4 P8 E. b8 E/ {- s
                        @.DrivingHome := true;
* ]! |) I1 c/ q& n                        rgManager.tryToStartTransOrder;* Y# S& Y; N% k  ~9 i& R, X' b
                        if @.Destination = void
4 o* Q0 {1 W3 E1 ]5 o& W                        then -- no transport order for vehicle @
0 C8 u0 ]5 q. Z8 d. ]* }3 e                                @.Destination :=+ S) i7 S4 V2 x/ d
                                rgManager.nearestFreeStation(@,track.~);& f0 }3 U& P5 W2 E9 {3 }
                                newDirection(@);   
/ T0 b$ n' ?9 H4 p# h9 w! r                                if @.Destination /= void then# s& L3 C! b: Z# Z
                                        @.Destination.NumReservation :=. [+ }7 Y! h3 Q/ h% O2 A
                                        @.Destination.NumReservation + 1;, G5 L! b* b/ K0 i$ G4 a
                                end;
0 o( C" J: z9 F+ B6 k, v; Q. D$ X                                @.CurrIcon := "drivingHome";
  E4 t. F/ v- w& W* |                                @.DrivingHome := true;
1 V+ p, w4 ~, D4 F0 `1 [" A3 ?                        end;
2 B& m2 X0 }+ |1 Y" h5 _: m                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 [9 L1 c* k  ^$ ?                        part := @.transpOrder;' Y, m9 E2 A, O9 E& J& o
                        part.move(@);-- load part
0 Y+ a0 L! N& G% {: K% |6 i9 S; w+ t4 X                        @.CurrIcon := "load";
* t. M- ~2 U1 q- c$ {& a: }9 V                        GlobalDistObj := part.globDestination;( ]& {2 K0 F( @4 Q" d
                        assignLObj := rgmanager.rgAssignL;
0 A6 B  N8 y. }( H) t                        row := assignLObj.getRowNo(GlobalDistObj);
& `6 o4 h9 H( R: R* h                        if Row = -1 then -- since 703 |; V: w9 F& l4 F2 T
                                if lan=1 then- B$ p6 F0 L6 X0 S; O* s
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),% L5 l% O  ]( x* p0 x' e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 H3 @7 q& {; w/ Y! }# d
                                else
3 z( ^7 I$ ?5 q* K7 T9 E" h5 q( `                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ c& A0 o7 z& `) u( `
                                                to_str("in docking station: \"",?.~.name,"\""));                               
( A/ q$ J4 e! m0 M" J: o                                end;, x' j4 e$ A- y$ M0 F( D8 Z
                        else
7 @; b6 o  ?8 O) A                                @.Destination := assignLObj[1,row];9 Z" C# G' F' G0 S" t
                        end;                        ( X" X6 Z# n  ?
                        newDirection(@);  k+ J8 y+ Z4 w( I5 l, w* r5 r
                        @.HasOrder := true;: ^7 D% U  D* @6 q8 ~) O, U
                end;
+ X' v- P, [  ]. h        end;, }. \* A9 k  B5 x& `+ F% E4 r
end;        -- of the method
; u  ]) C  Z5 Z& W, M6 u+ m2 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 L/ Q( x+ V6 d7 @4 [4 M; j9 l/ S0 u0 `
( n) D: s# Q  m8 f这是AGV_putin中arrive的method。7 ]6 B7 H) d% c9 P4 g+ F8 e, f

8 i4 C; [: J4 u3 y8 k7 P: W2 k当到达物料速度越高时,这个报警更多,
" N$ l6 y1 ^" G. h  Y% C0 _可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" l# G) p7 M2 F! `
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?" W0 Y& `! e2 l% K. o

/ s1 ^2 h. D! h2 K# h3 J2 j另外一个小建议,就是move,所有的move都可以这样6 x+ J- Z* X1 v8 \
if not move() then debug end
7 b! u/ `+ d  R* Q$ v; n% A. Y这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 B; W2 c; c" Y" _
plant simulation中的free libraries有AGV模板,
/ f" b- D; L8 w" U: ]3 |# Y里面也有案例。) X* _% R; _; Y: Q- I% n! ^
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ y9 W7 z$ m, f( G

6 G. p9 ]! v( V7 O我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / K1 p6 ~+ i* ^

5 f' ~; ~. q& T4 s$ y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
% p" ?8 y2 m" D' h这是AGV_putin中arrive的method。8 Q: Q- x; _4 u7 [( g' X$ w
* k  _0 B4 w8 F. \5 }4 o- B( x
当到达物料速度越高时,这个报警更多,
0 J. k3 o8 o) v4 r# ^' a
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-23 08:13 , Processed in 0.016877 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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