设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9476|回复: 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'
3 m. o7 L( h- H: r/ h+ e# K+ r*/
& `# _* P8 ~& S8 w* W! Tis
5 ?* N. ~6 N: P, w        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
, v. R0 ~' [& S& r  U- q' h. Ndo, {6 h6 I1 I6 T+ h3 t$ \8 a# T
        Lan := rootfolder.Internal.Tools.AOLlanguage;& T6 p) H& x& y+ e% C9 c
        if current = @.Destination -- else return2 H) O7 S3 d4 r: X+ m4 B3 [  F5 \
        then0 c) `2 w8 {" M' h5 @8 i/ V
                @.Destination := void;
% k3 f! X$ @0 e% G                if @.occupied then) \6 h% |* d- \, G- {9 \4 l
                        part := @.cont;
* U* q- Z, \5 f: \9 B- C                        @.transpOrder := void;, U- [9 D$ S1 \0 M( i
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' R9 U, g# f! T4 f& I
                                @,root.eventcontroller.simTime);
6 S7 n% @6 H. e5 ^7 f. f/ g7 A( |                        @.HasOrder := false;4 `! W' _% D  {. A: P6 k. E$ m
                        @.DrivingHome := true;
! u/ }% d: g' f4 J; N+ H                        rgManager.tryToStartTransOrder;
( i" }+ @0 K% @0 T: Z                        if @.Destination = void
" z0 f% k' i: S- z5 \                        then -- no transport order for vehicle @0 z/ w, n2 |3 y$ w
                                @.Destination :=
! P) r" u! l) N6 ^* I1 p                                rgManager.nearestFreeStation(@,track.~);
) R, Q3 r" N! H8 l* ]                                newDirection(@);   
3 _0 c: O- \$ l* H7 W                                if @.Destination /= void then  `6 F' E6 ?4 d. Y# B  x2 n
                                        @.Destination.NumReservation :=" W! @2 @& B$ `: a0 A
                                        @.Destination.NumReservation + 1;
- q# D$ b* }$ J2 R9 c8 I1 n$ w                                end;
8 C+ e4 t% Y0 [! z* _                                @.CurrIcon := "drivingHome";" g4 j+ _5 o( r( c: l7 w% W
                                @.DrivingHome := true;) T! [9 T4 q; ^% P1 K
                        end;
3 `; W1 Q- `8 H1 E                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! B4 m. s* x7 ?8 C/ F4 t6 q                        part := @.transpOrder;  V0 ?# O6 ~9 G5 ~* l
                        part.move(@);-- load part6 O; S' m1 q9 k
                        @.CurrIcon := "load";' ^, u/ t9 `: h9 H, m* S
                        GlobalDistObj := part.globDestination;' _9 R) W" ]! \5 t. _9 E
                        assignLObj := rgmanager.rgAssignL;2 j! f* b7 y* k. Z
                        row := assignLObj.getRowNo(GlobalDistObj);
2 Y1 H) S+ J$ N7 r                        if Row = -1 then -- since 70
6 I# {, E$ p# \/ ?/ U7 m% K0 E8 z* y6 H                                if lan=1 then
; q! ]2 B* w; [7 S/ i                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ i" X5 k/ V2 L6 S( v                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ t0 v0 s9 H3 {6 _6 p                                else1 T6 e0 A- V  L
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; S4 x, ?* s) L9 S; W) @                                                to_str("in docking station: \"",?.~.name,"\""));                                % u- _: I. p! g
                                end;3 W; ]- K; T: b1 x9 i
                        else
  _5 D8 T2 T9 K& R) c                                @.Destination := assignLObj[1,row];' r& v# V& H$ e! R$ H
                        end;                       
* @$ ]" N2 V& |5 U) S1 ^                        newDirection(@);
6 y+ d$ p5 Q1 {* u! E% n5 K- |                        @.HasOrder := true;$ _& J1 q; b5 m& q. D# u
                end;
, ]2 j5 I' H; A; ~. f        end;
  u( h+ N8 V/ ?/ D/ z7 }, N, Qend;        -- of the method6 B2 H6 \) B2 ^6 s. F; k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 x+ c6 }% F0 j2 A. Y( B- u; P. f! q) R: r3 h' o
这是AGV_putin中arrive的method。
0 P& A( l2 J/ T. M- `; @( _) ]: J* K- e/ }: }# A3 [$ [
当到达物料速度越高时,这个报警更多,0 Z* A. Z! d5 |4 }- B9 k
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 ?" @3 q- v6 I( h: U7 n程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?) w3 t; H& o1 \6 [. p3 ~
/ }, q6 Q2 \" P! s
另外一个小建议,就是move,所有的move都可以这样7 K7 i* x- E% Z0 H5 ~) L. E+ {
if not move() then debug end
) b/ C: r: w7 F2 ~. j0 s1 j这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ `. X5 L4 A* B* _' |3 W: M
plant simulation中的free libraries有AGV模板,
7 b+ t' j" {. c$ o! P里面也有案例。
& R# S+ x: d( y, R; u我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. C2 n0 |3 S6 k
8 O" L2 m9 q/ J$ u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; r7 z+ W8 i, \3 N
" }2 {; |$ s8 _, p, h那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" {0 @7 h4 n  H- D这是AGV_putin中arrive的method。
5 _  Q& ]; g5 E* n$ y( Q
/ x$ Z3 M7 ]: W  @# y当到达物料速度越高时,这个报警更多,

9 u( A$ v" |# z% J0 Y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-3 05:42 , Processed in 0.018177 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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