设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6031|回复: 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'
0 w: A& a  K5 k' A1 d0 A*/8 X8 ?3 _" f: u3 E% {8 q: j
is6 }+ A, u8 Y# j  @2 C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ `0 |8 A$ G- i! p% j. q1 U
do+ L+ M7 j4 L8 P$ z' x* |
        Lan := rootfolder.Internal.Tools.AOLlanguage;% {$ X5 [4 x1 y1 C7 |7 ]
        if current = @.Destination -- else return
8 V' m  {) t; {; \- l2 J) w) g        then
9 }: h: b, l7 z8 q/ g                @.Destination := void;- P7 A7 q: f7 t; k0 V* B" Q
                if @.occupied then" e8 J: h$ P2 j4 r( V* ?
                        part := @.cont;
) O' _/ f/ K9 F9 {                        @.transpOrder := void;% I1 o/ M' |0 E- [/ f& r& D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" |2 G% b+ S# t4 E+ w, N                                @,root.eventcontroller.simTime);
9 b4 C# p1 X9 [  E6 W( l( a: t  \2 a                        @.HasOrder := false;$ a6 M$ j( z9 E9 ~! Y( G
                        @.DrivingHome := true;
# f6 _* `2 Y& \& W4 R8 U: q! w                        rgManager.tryToStartTransOrder;
6 ?6 b- c* A4 ]$ a, Z                        if @.Destination = void
! K' R) g! J/ E% S$ x# ^- L$ J                        then -- no transport order for vehicle @5 D' r9 `& e7 _- x7 v3 E& e1 T
                                @.Destination :=
, g2 s! x3 i0 d$ y5 G- ]# d                                rgManager.nearestFreeStation(@,track.~);. i8 v, {& W: h! S! g
                                newDirection(@);   * b  H0 I/ \& r. T0 k5 `' @# l
                                if @.Destination /= void then0 p% Q+ p6 L2 G8 P2 s6 t9 R  w& N
                                        @.Destination.NumReservation :=1 b4 Z: g6 u; i/ e+ r+ |
                                        @.Destination.NumReservation + 1;9 K, M  O! i0 N/ I- a& Y7 ]
                                end;
' Y- B# T; G' o0 H                                @.CurrIcon := "drivingHome";
3 @' D; \0 R5 T' \! O4 ?7 `$ D                                @.DrivingHome := true;
+ j# ~: O% [: W+ _6 A% t  X                        end;8 j* o5 M- d8 X1 I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 C8 j& [  D6 Y' H- S( X+ N
                        part := @.transpOrder;
6 d/ f. }0 c; l( n# I% V8 n+ Q+ R                        part.move(@);-- load part  Y1 Y! q, C6 X9 H( E
                        @.CurrIcon := "load";
/ F5 Y- V) @; t                        GlobalDistObj := part.globDestination;
' t  |. S6 _2 R0 Z1 j                        assignLObj := rgmanager.rgAssignL;0 P: h* v  `) a$ ]
                        row := assignLObj.getRowNo(GlobalDistObj);
1 m) E. x1 X$ R5 t                        if Row = -1 then -- since 70
$ J# j* c, c% |8 _' H* b. s                                if lan=1 then: e. V# c5 G# p  u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
% S) s/ X! B! o* ~5 b, e                                                to_str("in der Andockstation: \"",?.~.name,"\""));  Y# t6 h0 `$ q4 Z6 e
                                else
) y, p+ k5 d" j0 B* H                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, l$ f7 a9 X( X9 L
                                                to_str("in docking station: \"",?.~.name,"\""));                                9 }4 w! I6 v- a: c  P" h" @( r
                                end;0 n7 V. Y7 ~+ i; {, R
                        else
$ [2 J# J- k( C# N3 r! c( [% k" I6 {                                @.Destination := assignLObj[1,row];/ _- q! o4 l" P) v
                        end;                       
; H9 q% G3 R+ l                        newDirection(@);
/ i( w3 A) u3 ]                        @.HasOrder := true;
3 q' d( L4 N4 h% J                end;: I, |" u3 f2 G; Y1 ]6 f
        end;$ `  b, o( j$ N$ E9 b
end;        -- of the method" L5 \( T' k7 C' v0 P
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
/ T8 L6 p3 \; [& j" S( w! p3 O
8 X" ]! a+ n  Q这是AGV_putin中arrive的method。
! M6 q3 P0 i( ?$ E* E7 A0 g& C$ ]  C" O8 {$ f6 b
当到达物料速度越高时,这个报警更多,# G" T* w! b3 A: x/ i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 Q" Z: v$ o! G/ [! ~: F% ]程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 Q$ N2 o6 l- w$ B2 p8 m: o" c+ |: H4 m$ ~' O9 M$ L
另外一个小建议,就是move,所有的move都可以这样: ^) [: y3 u& F" B) e9 ~
if not move() then debug end! h9 C7 F; n4 z" ^/ ^$ u: x
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 R2 _3 T; I* Y. `# X
plant simulation中的free libraries有AGV模板,) N6 K( v2 p+ ~" x+ t4 s
里面也有案例。) {- r( j) O8 R4 |
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. l  \) C8 }- v3 z9 z
- C7 _# y5 {, C. `; |" Q( c
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 {( q3 y5 G. I% X5 F$ r' S. {' D4 x/ M& [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " Z# {  V4 \' p- U+ q. V" {3 @
这是AGV_putin中arrive的method。
6 @1 K, [9 |! G' ^+ T- Y
. U/ {# e/ }# o2 \0 T$ B" g( a当到达物料速度越高时,这个报警更多,
$ g0 _! n/ k# _$ ~
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-13 18:11 , Processed in 0.018631 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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