设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7631|回复: 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'
! q! m  |7 x+ o1 n! j7 o*/' u" q6 m5 C2 Q5 T# t
is
2 ~1 S6 T3 F  p' K: W. a        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 c2 i$ g' M" ^do
1 [( ^( n& e( _  ~' ~        Lan := rootfolder.Internal.Tools.AOLlanguage;# @( Y/ M; I3 w; ~8 D
        if current = @.Destination -- else return0 L1 `8 ^0 _6 U6 @) U2 D
        then
' m% U/ b2 Z& l6 F% M  J                @.Destination := void;
; V2 m% o. [0 m8 e3 B                if @.occupied then9 N8 _" s- i6 K/ |8 r) g8 B; A* O
                        part := @.cont;
! J6 E9 L( w, }0 y4 L7 @" t                        @.transpOrder := void;: G9 G. M$ @' Z" L4 j/ b) `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ A8 q1 Y5 X+ \3 w& k  n* @) |; ~9 G
                                @,root.eventcontroller.simTime);8 T$ c" ?" g) f+ E, u( j
                        @.HasOrder := false;
' `, \) r7 `5 E4 T0 c8 @5 b+ Z                        @.DrivingHome := true;
) z; G  G* ]$ G# V; t$ T- d                        rgManager.tryToStartTransOrder;( F( _3 o1 p/ b
                        if @.Destination = void
7 k5 {5 V: w2 @. |  J0 N4 @& F8 J                        then -- no transport order for vehicle @
+ l- A! P) u0 Z: B3 y. T! U: d1 h, o; o. H                                @.Destination :=
6 s1 s' y% ?% k( ^' @& x7 k                                rgManager.nearestFreeStation(@,track.~);+ p7 E2 K- K: Z2 W- f5 l
                                newDirection(@);   4 r- W* D! w" \' }
                                if @.Destination /= void then6 s. E: `0 L$ U! _
                                        @.Destination.NumReservation :=1 X& n- @) d$ i5 o
                                        @.Destination.NumReservation + 1;
' l# n' O$ D- n( V# i0 [                                end;
+ s, @! c1 ~6 i, D" F) ]                                @.CurrIcon := "drivingHome";: ~4 E5 h6 j+ `* }* b* Y& S
                                @.DrivingHome := true;
; h* B; @% o! k: Q                        end;/ x, A/ W  Q0 j: Q/ P# Q6 N
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' w) c) M& v2 o
                        part := @.transpOrder;
* ]3 b! l+ X- q: Q. y0 a2 f                        part.move(@);-- load part& ~5 m4 S. t- W( p  L
                        @.CurrIcon := "load";7 b0 }$ r4 K  v9 W; x% i
                        GlobalDistObj := part.globDestination;" x" y7 ~! D: e7 m3 g, H
                        assignLObj := rgmanager.rgAssignL;7 Z2 {& \1 {3 p# |; B
                        row := assignLObj.getRowNo(GlobalDistObj);
3 c' ]+ B" d  t8 O* _" \1 f                        if Row = -1 then -- since 70
  o/ n, j" }+ g- A* {, l7 p. l                                if lan=1 then) g1 h3 k5 E" `* M
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* d$ k3 T/ g+ n2 r5 U
                                                to_str("in der Andockstation: \"",?.~.name,"\""));, h% J3 B5 l0 j0 p* m. T* \
                                else. m+ I5 ]! O9 @; ]/ v9 P
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) g/ A# n% r& D- X& `5 @# Z# [                                                to_str("in docking station: \"",?.~.name,"\""));                                0 {0 [; J1 j- ]7 s' c
                                end;
! Y" z/ ]: j! X( q6 ~" I                        else
- {, M; Y1 y0 k" [3 x# o                                @.Destination := assignLObj[1,row];
( z5 U6 z* L: B& `" t                        end;                       
6 A- D# \% P' n9 H6 u                        newDirection(@);
; [# c4 D% k, F6 Q                        @.HasOrder := true;
# b& _# e7 q: f% O& V                end;$ E& [. R6 \: S* B& o3 p
        end;) f0 c( j. Q0 y6 e4 d7 q
end;        -- of the method9 e# H7 q4 T7 P* N. A
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / V0 l, [( U+ x0 O. s

2 Z9 u7 E2 d+ H, e; u这是AGV_putin中arrive的method。  ^5 K- ]4 C0 U& z* x) P7 {

8 c: E; G! }- ?; q当到达物料速度越高时,这个报警更多,
3 P' s- h$ a2 z' R9 Z( L4 F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: B$ t) h6 y/ e. p( l9 n
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
) ]8 ]  a/ S5 k
# G" `" t8 ~3 d" ^* G& B! @" ]8 \另外一个小建议,就是move,所有的move都可以这样
/ g- j5 [& \/ S! {" I; eif not move() then debug end# F. y& \/ w# T: E' G
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; M+ h6 F3 M4 K& X" I* X$ a; ^
plant simulation中的free libraries有AGV模板,
* z: M5 d/ Q2 T  K里面也有案例。2 T1 o$ Y6 c! d4 u, K# F
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
9 M/ P# Y' ]+ Y! I/ p, ^8 k  j& Q) e: b" D# _8 O
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 j8 @7 D1 O; {
7 N) g9 E/ t2 U2 K4 Z0 ?0 g那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
) t- V0 N: ]' {: j% F这是AGV_putin中arrive的method。
  Q: A9 X* O" }* O
' y& W1 |3 A8 c. R0 T4 C. k! f当到达物料速度越高时,这个报警更多,
" f8 Y7 P) S  A! z3 H" B5 D0 u
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-21 05:05 , Processed in 0.021106 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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