设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5666|回复: 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'
; L- b) r  U" v2 ~8 f& K; \*/
: P, n5 v! p+ W- A0 j, P' Ris
! k" c, [8 M) G8 o% y        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 o, T, v9 E" ]do- j! l& u. n  p+ a, ]7 N
        Lan := rootfolder.Internal.Tools.AOLlanguage;8 O$ x  s! `8 d5 ~! C
        if current = @.Destination -- else return
9 _5 B/ k8 ~+ n% d7 h; k        then) j! `! i- Y% n, y' z# F( L
                @.Destination := void;
- ^% ]6 H5 ?: L                if @.occupied then
0 i' W" ]# x% |                        part := @.cont;
3 }& z8 N0 [! L8 }8 v" k( D                        @.transpOrder := void;
5 r$ K* |- n9 H5 U5 Z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: \, I5 S( r5 m                                @,root.eventcontroller.simTime);
  N, E4 h) q& ~" |% U0 x                        @.HasOrder := false;! V1 x: P5 f6 }) `
                        @.DrivingHome := true;
; I( G0 ^) x, `- k                        rgManager.tryToStartTransOrder;
7 Q) `: u0 _4 w- a5 _                        if @.Destination = void& }$ {! d* f! w
                        then -- no transport order for vehicle @+ `! G  |7 H- H/ P6 j" w6 F
                                @.Destination :=
0 g! U! n$ V6 @                                rgManager.nearestFreeStation(@,track.~);
, j1 g+ m- Z( c7 F# J8 a                                newDirection(@);   8 e% A* g" X# |; s  G; a) J
                                if @.Destination /= void then
( G+ B& T+ R3 o& A' K9 T                                        @.Destination.NumReservation :=
/ t+ A; V. Z2 K- `                                        @.Destination.NumReservation + 1;& D4 M* l' T$ k+ O* [( Z
                                end;
8 W% u3 I! ^" j5 y                                @.CurrIcon := "drivingHome";* p) U$ I' o5 O# l
                                @.DrivingHome := true;
0 b1 s/ e. T: x+ C5 i( B4 r                        end;
: q/ c2 g7 k6 ?$ p* A: ]% y; N9 W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 A  e" w! C# @5 K  K                        part := @.transpOrder;$ Q. B( m. R# Q$ ~
                        part.move(@);-- load part
/ c, b8 `3 U3 f! r: y7 r3 d                        @.CurrIcon := "load";
7 {- `/ c4 `' Q0 f' p                        GlobalDistObj := part.globDestination;
3 M% b2 G5 H' r7 K( i                        assignLObj := rgmanager.rgAssignL;
- |1 ]  B* o- U! D" j' |                        row := assignLObj.getRowNo(GlobalDistObj);0 }! `# U3 z! `  g
                        if Row = -1 then -- since 70
4 c% o8 ?, Q$ _; Q( k. N: h                                if lan=1 then
% V3 s. X  Z. T& Z                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),: r" o" l  V. R6 e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( A0 u/ l$ V, {- B: `- o                                else; q, g" ~; E/ T( N# M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) S$ f# {) z6 M( C( e4 W( ?6 l
                                                to_str("in docking station: \"",?.~.name,"\""));                               
" y6 ^! j7 D2 b& x3 L7 Y+ }/ h7 G                                end;4 ^& Q$ L3 t' O% c: O1 p) c
                        else8 i3 C7 Y9 ^+ T$ |
                                @.Destination := assignLObj[1,row];7 t& P- F4 c6 N) Q: D
                        end;                       
4 X) t5 \! [' b- }; E9 F                        newDirection(@);
% d1 I7 T4 H/ k; y& C                        @.HasOrder := true;
9 L2 P( {: \. Y9 u/ ]7 A* A  H1 Y" T                end;2 |$ B9 C' H- N
        end;
. f: u: B! L% Q! U  x" Yend;        -- of the method
, S# L; a- R4 }1 W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   S0 w+ Y7 V2 @& E5 X
, [4 {; |3 M5 k; I0 t
这是AGV_putin中arrive的method。5 E/ A7 S2 v) M% H- N; v

, h; b- B" ]" ]+ }" [1 z( w! q; e当到达物料速度越高时,这个报警更多,* F9 _  S( f8 u
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。' I5 x8 K; ~" M  T" y- z$ i+ ]
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
3 Y6 z+ x8 i, R4 c+ D# ]4 \& j2 B2 `* Y  f) `
另外一个小建议,就是move,所有的move都可以这样
9 ^2 ^! z# ?$ x8 L$ _3 M0 Qif not move() then debug end
& Q3 F  J( G4 x8 n8 d4 H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
8 t6 T8 ]3 c6 `, Rplant simulation中的free libraries有AGV模板,# [  h: X  \/ m) @- r! [
里面也有案例。
( s# Q1 e0 l# \* A我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 e0 `6 L0 v& N% t
, F( a9 y& s. i0 J9 r0 Y4 \
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 $ O) y/ |0 ]* R1 y4 p1 \$ P% U- T
8 F3 ]! q1 u$ s2 b/ e
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # V4 W5 U, q7 ~+ j$ T/ K
这是AGV_putin中arrive的method。
' M7 O$ d  ?' N# z0 z
$ _7 W  ~: Q1 s2 F7 Y5 e* u当到达物料速度越高时,这个报警更多,

" M( T! v/ M: e  y$ a" z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-12 15:04 , Processed in 0.024002 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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