设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5859|回复: 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'" v/ x) {$ e, P; P
*/- Q+ a8 ]7 U# I# W% `/ ?+ Y
is
+ p! X# C5 w2 n; `) D0 o" ]/ X$ K( w        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 X# h( a/ U5 q/ F0 X  ddo
; h; d7 i% N  B0 o( f1 U" y        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 z) `6 b4 {, W; A. q* C  s        if current = @.Destination -- else return
* `1 `+ e  D  Z8 {        then
+ r; p. [: O* U1 g0 L, o& f( w, a                @.Destination := void;
, F  C) q4 M3 r0 Z) K, i                if @.occupied then$ {- ^% w" R0 [6 |2 Z3 w
                        part := @.cont;
, {% M. j; `: ~7 D2 d                        @.transpOrder := void;5 _* Q" d8 W; t6 w
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% q  d7 p+ x+ ~: T
                                @,root.eventcontroller.simTime);
3 A9 P9 S" ?) ]. a! z& \                        @.HasOrder := false;! ?; H* C$ u& W9 L* ^3 a
                        @.DrivingHome := true;
2 V$ Z7 b3 W( s8 C# J                        rgManager.tryToStartTransOrder;
- h+ o$ m8 ]' d# A. v                        if @.Destination = void
( @/ t3 Z# _7 t3 D4 J1 Z8 z                        then -- no transport order for vehicle @
& m/ I* \% A* i8 S# {                                @.Destination :=
' q# c( E) z# }  c                                rgManager.nearestFreeStation(@,track.~);& O8 F2 r# e; [1 I! X
                                newDirection(@);   
; i3 T) k; A/ M- f. E  D  k                                if @.Destination /= void then
$ f) P0 b" z* e. a2 X                                        @.Destination.NumReservation :=9 U) K* W4 N! @8 x0 n' [2 D. b
                                        @.Destination.NumReservation + 1;
3 R% Q* p/ V! x" I$ w                                end;
9 u  O) ^2 c, A* L                                @.CurrIcon := "drivingHome";
/ F3 l8 D+ w& q1 Q& a" z. O9 ^                                @.DrivingHome := true;0 T' I4 l1 ?# R1 m
                        end;$ u  w* T/ ~! ]  j/ s
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' g6 ?+ U" _: p, k' e4 z" n; Q: a                        part := @.transpOrder;. a5 U5 q3 D# l% H9 W, B
                        part.move(@);-- load part
7 C3 k6 Z/ ?2 F2 u9 Z/ s+ S* }                        @.CurrIcon := "load";
. B1 |& @' U' d  G                        GlobalDistObj := part.globDestination;( h& ^6 y  O: y+ o
                        assignLObj := rgmanager.rgAssignL;" H  n" P4 j$ F: S. L9 r7 F; S
                        row := assignLObj.getRowNo(GlobalDistObj);
. f, v6 }) n. T% N. f                        if Row = -1 then -- since 703 |7 L( s8 Y- X
                                if lan=1 then
2 i! F. F' @0 p% e& h                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," W9 M+ M: F1 q9 I, |
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( @- a' }2 p* m/ F                                else
$ s" J. @2 c% ?* z2 e                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 b, p6 p8 L$ ]/ G- v. x6 }                                                to_str("in docking station: \"",?.~.name,"\""));                                ( q$ g1 s3 v+ \
                                end;6 @& F, d& ]7 A% M
                        else* X% E  F# e4 P. w2 E7 T2 r
                                @.Destination := assignLObj[1,row];/ {$ o4 C8 r- Z$ H) a6 ^4 l
                        end;                        1 d5 P+ `4 M# T) ~( \, o
                        newDirection(@);7 L- p4 B+ o8 O8 |
                        @.HasOrder := true;
8 `1 k; |4 k% \6 E                end;
3 a. _, ?( I# M8 L        end;4 L7 ~+ w0 \8 e. t" n% t0 p
end;        -- of the method1 E. }# m$ B1 v) k- z! [4 J! O8 d; r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: O; U5 ~. |: h3 k* D/ M
& q5 m9 {% T0 h  O! ^2 Y* z. {这是AGV_putin中arrive的method。2 ]2 Y# k9 T9 D/ w

' B0 t6 q4 z9 P$ G. u当到达物料速度越高时,这个报警更多,- t( p$ Y+ B2 S! D' O
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! B; H, f4 N' j" P3 h/ s- i
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?0 `/ _3 z& U1 Y. `

$ ]3 D( h/ y! S0 h; _% B另外一个小建议,就是move,所有的move都可以这样, b+ ^9 D, n6 D( v/ F/ x7 v3 q/ ]
if not move() then debug end" |+ e5 l& B- [5 X3 T5 b, y* e
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。9 n9 C5 s  ~1 c
plant simulation中的free libraries有AGV模板,) Y, ?2 f- d6 |- O( Y" q
里面也有案例。: C  H/ t( |6 Z9 A, x/ \
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ G' B! g- E! W1 m1 D0 j7 N* P3 X% u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( c7 s* I5 C0 ]6 v9 @+ D2 \$ A3 h. s$ S8 l0 V( n5 A. B
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
6 U" y8 ?  S5 ?- A1 {* T, @2 C这是AGV_putin中arrive的method。
7 v, T* @! y5 L4 h: Q3 q8 D* ]2 \6 m
当到达物料速度越高时,这个报警更多,

! h0 F% u+ R+ u5 j" l/ A另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-27 07:37 , Processed in 0.013877 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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