设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7595|回复: 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'
; |  J8 l# I9 J* [+ x# I5 R*/
. a7 k4 l/ }: E# @7 ~0 Cis" N8 f4 |3 m2 L( A; t; ]8 j9 X
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ J9 D  h. p7 M# o- m, l
do) u  ~2 N/ Y9 y" |" u: B
        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 p3 ]5 M/ j: Z9 v  {$ m4 m9 G        if current = @.Destination -- else return- \, q/ n" o- j" [* [
        then2 b! H+ G+ x! n* \+ h/ N- A6 A  a
                @.Destination := void;
8 @* i8 X' J1 a0 i7 ?  C                if @.occupied then
9 R0 m8 ^' ?( n2 o7 _% C                        part := @.cont;
8 U, m) ^1 t5 P2 `                        @.transpOrder := void;
4 }& U. _7 z! r4 V- S+ s, W                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* P/ d7 s2 v9 _% N
                                @,root.eventcontroller.simTime);: L, S5 w4 D% R  R8 S
                        @.HasOrder := false;1 M8 ]# T/ `0 l" k, S' i% F
                        @.DrivingHome := true;
# W1 t# F3 [8 W: ^8 s                        rgManager.tryToStartTransOrder;
0 P% W3 ^% V! B5 M1 g                        if @.Destination = void
! J5 T, p# \, z' W                        then -- no transport order for vehicle @6 n+ \* g! L) ^: u! S
                                @.Destination :=" ^* a  n& ^8 d; t& s
                                rgManager.nearestFreeStation(@,track.~);
1 a2 R+ _. X* L                                newDirection(@);   , R. w" `4 z5 M- o6 `- {# {
                                if @.Destination /= void then+ a* Y. g  {* Q: _* W9 i$ T' `
                                        @.Destination.NumReservation :=3 y0 s- E+ m' q; O+ |5 S
                                        @.Destination.NumReservation + 1;
+ Z( h8 P9 n6 w4 L; G# |3 y3 R                                end;7 Y/ G% N. O; w% \% T6 ^
                                @.CurrIcon := "drivingHome";( U: _7 K) \3 I& E
                                @.DrivingHome := true;# j( s7 a+ C  {: S
                        end;1 G, }5 q/ E. F' `( A6 f
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 {& C% v& _1 I' O$ c; ]
                        part := @.transpOrder;
- }8 l; c$ Q0 c                        part.move(@);-- load part( |; J; {" m4 {
                        @.CurrIcon := "load";4 L% s0 q' {( Q& \9 @3 [/ R2 @3 [
                        GlobalDistObj := part.globDestination;
; W) s0 W0 c. [, n( L                        assignLObj := rgmanager.rgAssignL;3 l: w$ l8 T1 O8 H, n+ H* r
                        row := assignLObj.getRowNo(GlobalDistObj);( X$ p" P4 o. q4 p
                        if Row = -1 then -- since 70  d$ {: Y* o$ e: [* @
                                if lan=1 then
  x& w3 Q2 D' b, p; s  T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( v' M. @) @% Z5 x' o9 E                                                to_str("in der Andockstation: \"",?.~.name,"\""));
8 _! m, S- A& r0 Y9 n% j                                else
2 G& y" Y6 F) \2 ~7 Q                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ y0 G3 G$ r% o! H( e* m( }7 x                                                to_str("in docking station: \"",?.~.name,"\""));                                  s* \' D- D7 F0 m" e
                                end;
) h3 ~6 i4 X' o) d6 _                        else
$ j- o- s* P; ?+ R                                @.Destination := assignLObj[1,row];
8 A  E; m. ^- I! e) r                        end;                        9 T: |9 b: g' a+ G) r& o
                        newDirection(@);
3 W  x6 n. S: k* r& n: @, `9 a                        @.HasOrder := true;
& c; i3 Z/ ^5 K                end;7 i8 T' u" z5 `- w0 `4 H
        end;. k2 y2 F$ M; q
end;        -- of the method
% }+ F# m5 t$ V7 c$ t& O, }0 @5 D
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" J  N* z. d; W$ l' B
6 ~, P5 C1 ], M# r  D3 m这是AGV_putin中arrive的method。
6 [- {& [* [7 Y5 b
% \7 ~2 z7 Z  c' u, o当到达物料速度越高时,这个报警更多,
5 Q' h$ S2 T% o8 ?- A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 K& i. ?& }* S" B6 r' I程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& Z/ B  O. _  t2 y2 ]' ?7 o! o: b

$ h) t/ s3 b7 J" m9 J# J, ?; u另外一个小建议,就是move,所有的move都可以这样
' F0 s; _1 p9 Z& Q) rif not move() then debug end
% ]. D) J! d2 l6 R& t( q% v% u) N这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。, m; r  w$ O0 H* t% b8 J
plant simulation中的free libraries有AGV模板,, {: K( M! r- ]2 g6 E
里面也有案例。
" N( e8 o1 U& u2 s' Q" e我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# G3 A/ }' G9 v# i$ `# @
* K  P0 b$ f. d' [  K% d5 y
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. w  g. `4 O& f/ r% N
" c3 m. v2 t# P! s, [2 [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  A9 a. l3 x1 _) _5 l* X  X这是AGV_putin中arrive的method。
9 A: m1 J" i0 }& z
9 ?( a3 r3 i) Y* [当到达物料速度越高时,这个报警更多,

- |, K" @# H- N$ D另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-19 13:22 , Processed in 0.021316 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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