设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8962|回复: 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'/ M* m7 ~9 u" N
*/
% @; l8 @4 w, ^0 Y. J: h- @! x3 wis
. ~- L; s- q" I$ L: P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
5 Z; P  I* j* P! R0 b: edo1 `% u0 o7 [" l
        Lan := rootfolder.Internal.Tools.AOLlanguage;$ ^2 z$ a, X/ H) C5 S- d, B" ~
        if current = @.Destination -- else return
: Z4 `1 _# _0 W3 o+ ?        then
4 N/ e+ Q' ]( W                @.Destination := void;% @* t: `  O3 a; ?
                if @.occupied then* a, V. H2 @) t1 W8 z. J; w
                        part := @.cont;6 |6 e/ n: G8 f' F3 ]0 |
                        @.transpOrder := void;# K; [( ^1 W; e% P8 }
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( q. C) {" N* x7 w" a$ K                                @,root.eventcontroller.simTime);
( b' H8 |* p  f4 L* i. o                        @.HasOrder := false;: P& {* W- }; d* h, @. _
                        @.DrivingHome := true;
% v6 k1 f4 N6 R8 J. s) k# N                        rgManager.tryToStartTransOrder;4 j( v2 [7 a* R. k3 u- j/ l
                        if @.Destination = void$ ^( }( d3 @  P0 ^& O# O
                        then -- no transport order for vehicle @2 p+ |% |5 T  p" ~3 t: ^
                                @.Destination :=
- Z, x7 [$ D* w                                rgManager.nearestFreeStation(@,track.~);
- j* O; C. S& }6 q4 R! e% J                                newDirection(@);   5 s5 H4 }- F  f) E2 m9 t
                                if @.Destination /= void then
0 b8 O$ V% ?% {8 a                                        @.Destination.NumReservation :=
! t" a( t( V! ?9 Y, u                                        @.Destination.NumReservation + 1;2 m2 M+ g, \& L* I. E- t0 j4 l! J
                                end;3 C' t$ N8 m7 f$ q/ ?$ V% n! o9 U
                                @.CurrIcon := "drivingHome";" t$ `$ X  _, p+ ]
                                @.DrivingHome := true;/ D# f4 R$ K$ ?7 C% Q' ~
                        end;. L) p+ b. Q+ R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: b  t7 J" \7 n7 V
                        part := @.transpOrder;/ p3 o" o& K" @! `. l9 q: i# ]
                        part.move(@);-- load part
. M& U5 o) D8 X6 R/ w                        @.CurrIcon := "load";
* `0 _, Z4 X7 T9 o3 I; j: U4 l: z                        GlobalDistObj := part.globDestination;4 }! c% o. S1 q
                        assignLObj := rgmanager.rgAssignL;8 y7 V( _& p* w% P- S& [! d5 z6 \
                        row := assignLObj.getRowNo(GlobalDistObj);
( O& W6 p) ~. s                        if Row = -1 then -- since 708 q+ D5 o+ w! b+ T2 |( ?
                                if lan=1 then6 d' I; g  V  g. K
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- M3 v6 L, d) S- O- o& |                                                to_str("in der Andockstation: \"",?.~.name,"\""));, p8 i$ E3 n+ }3 J8 C/ q, |5 w
                                else. w. v" ?: }9 c1 h8 [6 W
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. q  s! z% d4 {/ _% w( U5 w
                                                to_str("in docking station: \"",?.~.name,"\""));                               
" Y; j7 M  z4 e/ w                                end;
( T3 Z+ {  {9 y: P& K0 y! n! V7 d                        else6 j: |' w5 J- [, {( z" [
                                @.Destination := assignLObj[1,row];
4 L0 C4 Y9 s. V) H, {0 N, J/ d+ W8 S8 {                        end;                        . f/ @' ?( I# U5 P) Q: o
                        newDirection(@);- }! b, y' n) l+ y; a+ E$ o2 ?1 H1 e
                        @.HasOrder := true;
: p2 P& A7 R+ ^! \' t3 z: p6 W/ H                end;
, P' O& e& e. M' c' P( k        end;
9 Z3 Q  \" x- o5 G6 @  Pend;        -- of the method# h& @4 Q3 L' q3 f* V  ~1 L  P7 p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 U/ Y+ J4 ]0 D) `" U8 n! n+ {0 q4 X' u6 d- ~
这是AGV_putin中arrive的method。
  P+ \9 |! b5 h5 X: N
/ X6 U; Q$ y0 H- o3 g) [当到达物料速度越高时,这个报警更多,* |! H! {$ K* [! O1 Z, {5 z
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ b5 e- J0 C: G7 \  c+ N# L+ y程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ `' ]' ]; R% M7 h, X
0 U8 \% z) f) l+ N另外一个小建议,就是move,所有的move都可以这样
0 v6 d$ U4 F( K5 e% i! A* N9 Fif not move() then debug end
* x9 `( x" o* [9 u5 A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
' F/ n$ N0 p; lplant simulation中的free libraries有AGV模板,
, r: ^' f2 G% V3 w# E1 h, H8 T( j里面也有案例。* G% b3 B3 y& o2 M% V& v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& y9 X. j; d: K$ }" C

& C$ Q, [" f1 }: i9 X. R我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, d1 m% q2 s; d, I9 n6 _3 G# O' [* X. _9 g- F4 v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 B9 J3 o' q( x+ O" L; ]
这是AGV_putin中arrive的method。4 z; D% Y9 W1 n9 W. J- f8 \
$ v( r9 Z* C" U
当到达物料速度越高时,这个报警更多,
+ E1 v# V% n9 x! e3 A! J
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-6 15:12 , Processed in 0.016158 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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