设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7468|回复: 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'
' Z- m9 U' ?3 ^% L*/, s/ q5 [  r5 f" L$ N
is
* ], z9 x' d+ `  S4 @        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ k( R9 M* {1 n* I
do2 ]  B- i- A0 @9 s, S# a/ l
        Lan := rootfolder.Internal.Tools.AOLlanguage;
' Z& x5 T5 }; w/ H" ~; U        if current = @.Destination -- else return3 d  _1 n6 g5 W5 f& g3 W
        then
2 S& w" }) N7 o8 ]5 D' j4 z                @.Destination := void;% @8 J7 X+ g5 S: r0 d/ _
                if @.occupied then
, ^: m% K% o8 W# B                        part := @.cont;
$ d  F, E' B$ H7 Z                        @.transpOrder := void;5 ~7 \5 \$ f; n; E: A3 }% b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ r  \+ U) g' s7 D7 I                                @,root.eventcontroller.simTime);
- O' f8 e0 e' {' k- s3 R8 v                        @.HasOrder := false;! u/ ]% h7 X9 z& O$ K
                        @.DrivingHome := true;
8 }% |! Y- G7 F- l                        rgManager.tryToStartTransOrder;- ^+ Q/ c! k) X; z9 [6 L
                        if @.Destination = void
/ n4 e5 {0 b6 G; n                        then -- no transport order for vehicle @# t: Z6 _) R$ u1 l) a
                                @.Destination :=
" D6 s: ^% S# Y6 L) \                                rgManager.nearestFreeStation(@,track.~);
3 `+ |* u& r, I; c, i1 r# I' G                                newDirection(@);   
5 b8 r' c# m2 R* v                                if @.Destination /= void then
9 B; ~' |, c/ t. r: ^4 @                                        @.Destination.NumReservation :=8 t% e* I4 w* j
                                        @.Destination.NumReservation + 1;7 s; j; o3 O+ l) V- `5 y
                                end;
# q. i7 J0 x0 `$ o) W8 G% e' B) s                                @.CurrIcon := "drivingHome";
3 P) w: p6 G! R, K7 m7 w                                @.DrivingHome := true;( D. j. R3 q7 f2 A
                        end;
0 @) a! K* t. A/ @8 d, k3 _. Q                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# u. a( g7 i/ x) P' ^
                        part := @.transpOrder;
# o( k: N2 T/ U' G3 V                        part.move(@);-- load part
' s1 v. Q( Y; B                        @.CurrIcon := "load";! h* E8 m2 [/ N! y5 p$ S
                        GlobalDistObj := part.globDestination;
: |. H0 X) ~( S# Z; X0 U: S                        assignLObj := rgmanager.rgAssignL;
; k7 Y1 ^5 T1 O                        row := assignLObj.getRowNo(GlobalDistObj);
# |" p3 M9 l; O+ V% x                        if Row = -1 then -- since 70/ {- |/ e" h4 v, X; X" r
                                if lan=1 then
1 n% o9 \5 u6 ~                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),5 b( Z! C; H+ B( |. e# [# e* L
                                                to_str("in der Andockstation: \"",?.~.name,"\""));7 E- H! B  e2 K* k/ E( T
                                else
% u3 r& _: C6 a+ |, h: Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
1 I. Y' ?, N/ ~+ q, Q9 C                                                to_str("in docking station: \"",?.~.name,"\""));                               
+ p# V% z5 d/ t( O$ H3 y& v                                end;% J0 O! F: |- E" W
                        else3 @+ w* V% J* I4 [" H
                                @.Destination := assignLObj[1,row];. e. d5 R$ ^. \& H0 K7 l
                        end;                       
; ?/ a; f- s) e$ {/ o8 h+ ]                        newDirection(@);
; x" z! T3 r7 B+ r" Y5 H9 z0 f$ h) }                        @.HasOrder := true;
# }' w' ^' D# A# Q! D) \# I7 V                end;- d/ M6 M4 X/ M1 f3 V! {. ?" c0 t
        end;, ]9 D2 z3 P, X$ S8 S  Y
end;        -- of the method
, ?( ?6 \3 h  ^# s9 P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % Y; g! Z9 K0 l; ]2 V0 D

9 Q) S/ _" g8 y! D& B0 @( C这是AGV_putin中arrive的method。5 J; C7 A3 k' l& j8 S  k* M

! W, O' K/ K& N3 M当到达物料速度越高时,这个报警更多,2 Z; e) R. q# o) e* `/ A: r, |" C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
# r6 A- Y. e& _: C程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# B* R/ S: j3 m- _

! }0 x* E4 u/ H1 V5 E: D另外一个小建议,就是move,所有的move都可以这样* B% m, c0 ~! ~
if not move() then debug end4 m) R# ?3 _# s- v* u6 Q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
& p6 g, Y: y, K' `) O7 L* Hplant simulation中的free libraries有AGV模板,+ g" I7 y7 k' o5 F) W- j( J" R
里面也有案例。
1 {1 h  }3 l- r! v, z; d我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! F0 p( V7 C- J; d# ?' C" O9 g! [7 B" B# Q5 W" V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 W* `7 `+ C6 i6 T" c4 f" @/ y9 Y1 M* e: h& T) H
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; V7 {0 U& Y  J: y这是AGV_putin中arrive的method。/ m1 n4 g6 n4 v3 [7 |1 d

  i, u, Z( ?9 G: h* _3 w当到达物料速度越高时,这个报警更多,
/ S4 p- |! I' w8 B& w/ Q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-13 05:25 , Processed in 0.018523 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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