设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8650|回复: 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'9 P$ H, D8 Z6 s* A& V& H+ O
*/
7 i1 F+ N' C! `- uis. k' ?; k- {5 |7 P+ X
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- q/ [0 M6 d$ n, J7 ]/ ~7 d
do
! y# F- B6 z) s* U, _; l        Lan := rootfolder.Internal.Tools.AOLlanguage;( F0 H7 b. p% n' ~% e! Q$ D
        if current = @.Destination -- else return
( x1 `3 l, T! S- d; L/ M        then
6 {! k5 H' R7 l% p2 H8 Z( J1 ^                @.Destination := void;
. b+ T% m, {( @2 t5 ?                if @.occupied then
! ^1 c0 A" b$ s                        part := @.cont;
" B/ }5 E# _5 O% T$ |                        @.transpOrder := void;/ w* o4 m+ {$ O, k  \" `% I
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ O9 S/ [0 Q- w# }+ g0 ~+ z                                @,root.eventcontroller.simTime);7 B/ I% M' j1 u6 V: ^3 y$ c  |
                        @.HasOrder := false;" ?& q+ Z- |3 X8 V0 c; q& I
                        @.DrivingHome := true;" M' k) b3 r0 O  a
                        rgManager.tryToStartTransOrder;
$ n" F7 a' W" o                        if @.Destination = void, H: Q7 V0 v" Y: k) m; i4 E" m8 X
                        then -- no transport order for vehicle @
9 t2 B$ v" `; Y( G2 N# {) P                                @.Destination :=
6 G9 G2 S8 W+ a) |, u) d                                rgManager.nearestFreeStation(@,track.~);
3 q+ `2 w( q5 E5 n8 }                                newDirection(@);   ! w. j, X- A, Y  T! a3 C
                                if @.Destination /= void then: `0 S: w$ j" _  @) Y
                                        @.Destination.NumReservation :=0 @4 e- R: M+ U' H$ l/ W
                                        @.Destination.NumReservation + 1;
9 `: c5 |: J2 M' H                                end;
* n' a6 m# j- c( z0 Q- u                                @.CurrIcon := "drivingHome";1 F8 a( Z+ r6 Q# L
                                @.DrivingHome := true;
1 L4 [+ L, o, M. q+ J% b                        end;
& l/ Q) t  a4 [                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ A9 P% Y$ e$ ^) g$ j( T9 \                        part := @.transpOrder;& ~# P  @0 k; n& d1 U
                        part.move(@);-- load part
* L- _* q, Z  l9 Y6 ?  v' r                        @.CurrIcon := "load";
, _0 V$ h9 y0 p4 @! P% {$ w4 W                        GlobalDistObj := part.globDestination;: c) T. z6 I+ }, `0 w% H
                        assignLObj := rgmanager.rgAssignL;
# f) P/ a. o7 ?& d                        row := assignLObj.getRowNo(GlobalDistObj);
$ a- k4 W3 ?% Q                        if Row = -1 then -- since 70
5 e# p0 e8 R7 a# g                                if lan=1 then! _0 y" I+ a# l% e$ _: g& h. e
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
! j1 B: D: O# k0 v9 l                                                to_str("in der Andockstation: \"",?.~.name,"\""));, d9 J" G' }. @3 @8 z: A
                                else1 X: F9 F- q" n1 X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
- f/ b9 i) O+ I1 }' x                                                to_str("in docking station: \"",?.~.name,"\""));                               
- ]/ D, V0 F: G+ i* z. L5 }                                end;3 ~' o6 {& M" m6 Q) s( X& ^; o
                        else. H- f" M& K2 v- j. f9 a0 W
                                @.Destination := assignLObj[1,row];- n) F0 R3 p+ a  Q2 v3 G7 ?1 ]
                        end;                        7 m7 r+ V$ f  `# c0 V7 z6 f4 s. J
                        newDirection(@);
; e: K' s. q  u7 ]3 v$ p6 r                        @.HasOrder := true;4 ~( q! r: N! j& `5 f. f  X' }
                end;# c: [: _5 w( n
        end;2 A6 x. q& g5 h5 R# B( ~
end;        -- of the method
# E; W, C$ f2 q& [6 u; U) }2 f' V
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 E: O' M: _9 e9 Q; @) @

: [; l! U6 E5 ?" o' X这是AGV_putin中arrive的method。
1 K  {" d& q  z( X4 A0 y, F: Z$ a; P9 L) S$ s+ k. o4 V9 g; O8 a" t* G, U
当到达物料速度越高时,这个报警更多,
- ^+ ]( J# `- x3 o! y可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( a+ y; I  i2 e$ e9 b) }# C
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?  c0 p; Y1 @% Q; }/ o

* z" m0 ]; }6 e! u% ~( [, Z另外一个小建议,就是move,所有的move都可以这样/ `, }; S/ Y  V( e8 E
if not move() then debug end9 ?0 r& D. z6 a* O' o; E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
4 G# m' G# x. d) k% D2 {9 iplant simulation中的free libraries有AGV模板,
. g2 n1 H: x& [4 v7 l, ~里面也有案例。
$ S3 G; l9 L% Q, c9 f. s我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* z4 U& k. v2 y) d- D8 |
! a  X! ]7 _& a& a' k
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ w6 Q8 M& y9 G6 C: D" x% J  @. Z  X) W* P% U; {* ?, Z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % s, x9 q* }1 e0 q2 X5 U
这是AGV_putin中arrive的method。& V4 ~- C& }; h
+ T4 R6 f. }7 L
当到达物料速度越高时,这个报警更多,

/ }$ z) N5 \( U6 j另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 00:39 , Processed in 0.018136 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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