设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9465|回复: 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', g6 |- C5 c' P' c* F
*/
. G/ P3 @- C/ P" Sis: \$ z7 O$ L2 _3 e" [2 ~4 C
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 A/ k' [+ A2 Tdo. \1 \# I2 F; v. J
        Lan := rootfolder.Internal.Tools.AOLlanguage;
. P% E2 W. \- [2 ^4 r        if current = @.Destination -- else return2 H4 q4 J% Y* g6 O( k+ j
        then) Y1 n! Y0 [0 ^6 k) M, X7 E
                @.Destination := void;4 I+ S5 p& w% i; d2 K1 w* F
                if @.occupied then' [* e9 {' Q+ _4 U' {- ~( _
                        part := @.cont;7 ^7 k% t/ `! z; N
                        @.transpOrder := void;
9 v' \* p' l4 t/ R, ^! T                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,) e4 [, u' q: x& W) a- a
                                @,root.eventcontroller.simTime);! Z) Y% r7 b7 z( _# |9 ~* L7 e
                        @.HasOrder := false;
- S, i0 ]4 t" w( j  C% \                        @.DrivingHome := true;' ?# |/ f. M  n5 o' I
                        rgManager.tryToStartTransOrder;( q" V8 ?- i6 w
                        if @.Destination = void
. U2 V8 j/ @5 Q) p                        then -- no transport order for vehicle @
4 ]' N3 m/ ^7 o  E                                @.Destination :=( P% O  p1 p$ a
                                rgManager.nearestFreeStation(@,track.~);3 C+ O% j  R. p3 b3 J* T. H  V, Y
                                newDirection(@);   
9 f; j  S! x7 E9 S6 O                                if @.Destination /= void then
8 Z, A7 B" v, ~: a* l2 m                                        @.Destination.NumReservation :=
) \  ~" K7 V3 ?6 Y+ S, ?                                        @.Destination.NumReservation + 1;6 m# p( k% k3 b
                                end;0 n" X1 `7 Y$ y* F9 L, S* ?6 a
                                @.CurrIcon := "drivingHome";
3 |* U/ o7 S- k' k                                @.DrivingHome := true;4 m3 B( Y  V5 P4 @
                        end;! Z  ?9 o  R$ t; B0 K" d4 N
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 H" Z# P+ ^" u' I" e3 I+ h                        part := @.transpOrder;* v( w, e! k5 S/ @
                        part.move(@);-- load part  j& B) C" w" |7 B( d: s0 K
                        @.CurrIcon := "load";$ K) Z  ?1 C6 y5 k
                        GlobalDistObj := part.globDestination;4 V9 I5 E. H# r4 Y/ y& G  d3 W
                        assignLObj := rgmanager.rgAssignL;& p6 Q& w: B7 O& }  ~/ x4 `
                        row := assignLObj.getRowNo(GlobalDistObj);
" D2 n: o- J/ M! X2 W5 I, b+ O9 U' V                        if Row = -1 then -- since 703 t# }. S. p/ m* A7 o4 T2 a, k
                                if lan=1 then
( J, p9 P; C; Z6 }0 e8 |% y2 p                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. J0 l* g. _2 @6 P' @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 W7 ^7 `7 _" g# ^+ x+ g% V& Z) c
                                else4 n) O; S! a- {( c8 L0 T
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),$ R) o; u. }* e1 d2 D& V9 w
                                                to_str("in docking station: \"",?.~.name,"\""));                                3 Z6 X- V/ j: s; J. B  _
                                end;
6 l2 R  n, }6 G+ o                        else2 R  m; q- ]% M
                                @.Destination := assignLObj[1,row];
! N1 r2 t& f+ T                        end;                        ; _. B9 ]9 ?' P5 o2 N) x- f1 v
                        newDirection(@);% ?% G/ q3 L: F" f8 s
                        @.HasOrder := true;1 R* g1 G( I% T# h1 M& q) E' N1 P1 g
                end;
. v& t7 `* @/ o, E! h$ F) ~6 T        end;
5 F0 }- l- k- i6 W7 G  E5 Cend;        -- of the method
2 A1 @* [0 N4 M& ^- L! l$ n  d; Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 |1 _. U; i4 X' @
' U) P3 U3 u+ R这是AGV_putin中arrive的method。! }# t. B& V; M/ \7 W

& Z& h4 }4 \% i: ^当到达物料速度越高时,这个报警更多,
5 N; D  X  c4 J可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" G  ^6 M5 A8 W2 |# v, x5 o3 n程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?' d5 e+ Y' y" d$ L

- z/ ~2 w+ b1 o# j! _/ }: h0 q另外一个小建议,就是move,所有的move都可以这样
& V8 B9 B/ L  b9 j( u3 {; d: nif not move() then debug end: j8 D: B% K! h7 H8 Q' r' v
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。5 Y$ \1 G+ D$ N+ U5 l- `6 M
plant simulation中的free libraries有AGV模板,; a( }2 A% ]4 S! M
里面也有案例。( c6 r& b+ W) _& j1 t5 K
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% l+ T, [6 v( W
6 z2 i6 h* k, s1 w
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 c8 w$ h; m7 n. N' J
$ Z# `) E; Y0 b1 u4 n/ F( c那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& b4 b. `+ P! b$ @这是AGV_putin中arrive的method。& A+ ]# j" u( Z) e

0 g" q, g2 z  F当到达物料速度越高时,这个报警更多,
7 p3 H$ J" N. ?! _
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-2 09:45 , Processed in 0.019528 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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