设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8293|回复: 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'# O' i. Y8 B) A; r; [
*/
% }3 w' Q! y8 H5 f9 zis3 Y2 W0 x; D$ O% ^) k& ?  h, b
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. d0 ?& t  T5 d- @: l8 L  k( y. K4 zdo1 z# k2 ?( q, \# u( D8 ?& H2 P
        Lan := rootfolder.Internal.Tools.AOLlanguage;, x' z3 k* f# c7 y
        if current = @.Destination -- else return( J1 R; k' p8 k6 v! S; ~
        then; }0 A" M3 V# u6 F
                @.Destination := void;
  K* \2 U' A. G5 B9 ]1 G/ F                if @.occupied then5 Z. I3 l' Q- u& i5 f
                        part := @.cont;$ e7 ~" {& {  G4 U
                        @.transpOrder := void;1 o# ]% b+ {' _( M. r
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
+ N9 `. o& ^4 B9 p                                @,root.eventcontroller.simTime);* c4 A- u5 a2 _5 w, `
                        @.HasOrder := false;5 |! W/ |! u3 r  \3 y
                        @.DrivingHome := true;
$ \- X" J3 O8 f7 A: ]                        rgManager.tryToStartTransOrder;
$ |' f2 r+ X9 `8 E8 [1 o6 Q$ t                        if @.Destination = void
4 C2 o$ r- E+ b. _1 b                        then -- no transport order for vehicle @
8 L' E! B+ R2 c% O% Y9 {% ~: [                                @.Destination :=' x- B! y% w2 G( ?0 u  y2 [" Z
                                rgManager.nearestFreeStation(@,track.~);0 M' ]6 ~- c( u0 C
                                newDirection(@);   
0 b. U$ s6 V4 w7 x3 j. A                                if @.Destination /= void then
( r2 U2 C% A- x( s$ t5 h                                        @.Destination.NumReservation :=
9 f2 {4 r6 S6 \% B* A- a- l! t                                        @.Destination.NumReservation + 1;
) @  h3 s0 v* v/ ]                                end;- [' o( N' P) r3 n* q" Y8 Q
                                @.CurrIcon := "drivingHome";
6 o1 y2 g* R5 S1 L                                @.DrivingHome := true;) B* _7 e" K  V* @8 ]2 S* T
                        end;$ }/ O, t+ m0 H
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. Z0 B5 g! r8 h5 U# |
                        part := @.transpOrder;
( o1 e, o2 ]2 y/ M! ]! f, e7 q                        part.move(@);-- load part
9 X; F% j& M' T- d: Z7 ]& A" E2 N                        @.CurrIcon := "load";
) q4 m: t  E! q+ o" E6 q                        GlobalDistObj := part.globDestination;
1 D. R* H2 j" }5 z                        assignLObj := rgmanager.rgAssignL;
2 w- g* q$ g$ f9 v/ ~                        row := assignLObj.getRowNo(GlobalDistObj);
7 @3 ~: @+ W' o6 e$ t/ J: n! Q3 p                        if Row = -1 then -- since 703 X) t1 T7 v3 a9 n
                                if lan=1 then
/ A  ]; k+ t3 N- r% \0 I0 u                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 K9 z6 h4 E& h. i5 ]. L                                                to_str("in der Andockstation: \"",?.~.name,"\""));
# {( U  ~+ d  L! g2 g' Z                                else, C& w4 V1 E3 r
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( s" ?: m; ?$ I% k+ b7 e" M4 p! G1 I                                                to_str("in docking station: \"",?.~.name,"\""));                                " Z- [# Y5 N; J2 K7 o0 e
                                end;' A# Q& \' S& k9 F& I
                        else
0 b" g& M# _0 T/ A7 z* e$ \) B, ]                                @.Destination := assignLObj[1,row];
' |9 x7 Q$ L# w3 @) ^5 e) }                        end;                        6 I% n1 q# v7 x. r: [( W( P
                        newDirection(@);
/ T( H6 u0 e8 [4 r, ^                        @.HasOrder := true;
6 o4 B9 ^/ S' Y1 E) p1 H                end;) t6 M1 Y$ ~" L5 k; e
        end;
2 K  x, x2 F- B  r2 C5 n9 C9 U2 ?end;        -- of the method
/ p  F7 l0 A+ e, g9 B
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" [2 l9 m6 l3 Q
' p7 A2 a1 g7 D1 E; |& {5 l4 ?& |0 U这是AGV_putin中arrive的method。
) ~. V2 O& |: ?8 q! u1 ?$ B
0 E; I. f5 [3 N1 v) T7 ~当到达物料速度越高时,这个报警更多,
6 Z; {3 |; n/ c0 p& _. M1 L可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: D' K. ~7 s7 L3 @$ f% R* A5 B程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?5 Y$ Y2 }+ L1 P6 m+ k; o& I
! X& S- P/ y& _3 ^) [$ R9 e: D* k9 m
另外一个小建议,就是move,所有的move都可以这样' ?2 F* S3 i1 E% ~# C3 W
if not move() then debug end
! }  z& J2 s# C6 k这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; `5 g8 e  W' E  h3 H
plant simulation中的free libraries有AGV模板,9 j+ A! I% _& M& q: P5 X
里面也有案例。9 b, u7 W% ?( A7 H3 o2 y2 |
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! a% w! B3 |6 n- T" `$ O

. w3 ~3 l8 E% U: K! ]8 ]我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; o& ]# l/ l7 h7 G7 C
% a2 q% }2 [3 x! p0 m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 n0 R0 q; d- F* Z% i  q7 w, ~
这是AGV_putin中arrive的method。
- P/ K5 H& w# d+ x. J0 P6 ~. D3 n' U4 Y( I4 L: X& J
当到达物料速度越高时,这个报警更多,

$ p. i6 u. q1 t9 l' |5 c9 u另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-25 23:32 , Processed in 0.019569 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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