设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9118|回复: 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; h! r& x! [5 J4 i% c% h# y  M
*/5 r- K* N; t" ?4 E
is
2 C; h% e3 H) ~+ b8 j; o        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
; r! I8 ^8 A3 N9 g& n/ fdo
9 h6 k& Z2 p3 v4 \% V# F1 g' J        Lan := rootfolder.Internal.Tools.AOLlanguage;4 c  n4 R% h. S3 X$ \8 h
        if current = @.Destination -- else return
9 V' e9 x  r/ r/ O9 ]        then
% C9 {9 c2 n. ^$ [                @.Destination := void;
# L* G! v! I2 j  X! t0 F                if @.occupied then5 `4 }3 W' m: A% @+ M, v
                        part := @.cont;  n9 q3 ~* [, r. P9 ]& O
                        @.transpOrder := void;
6 U0 p8 Z4 _# W+ t                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  z/ @: R1 b0 M! U1 w                                @,root.eventcontroller.simTime);
* x1 ]# [- q  q, U7 a) v                        @.HasOrder := false;
. ?; W4 }! Q+ M3 ^( w* b* P                        @.DrivingHome := true;
; ]$ p. r1 h( @" z                        rgManager.tryToStartTransOrder;
3 D* h& s, a$ Q( {; o) R) r                        if @.Destination = void2 P4 q! S& |( D2 k
                        then -- no transport order for vehicle @' j$ J# [# r% Z* k, o; ]* @
                                @.Destination :=. Y# U0 n7 q5 Q4 [
                                rgManager.nearestFreeStation(@,track.~);
1 w+ M" \9 {/ c7 y+ G. u  g) P                                newDirection(@);   / h( |& I8 W) K' C
                                if @.Destination /= void then
# _8 i8 t0 b' Z# K- K) k* ?6 m6 n/ Q                                        @.Destination.NumReservation :=$ g- U0 \& g4 r
                                        @.Destination.NumReservation + 1;' @& M8 M* F  ?2 R( o* \* a$ e0 |" M
                                end;1 _% L: }1 {4 h& R& g, x
                                @.CurrIcon := "drivingHome";
* ?' a8 V9 [0 e2 z                                @.DrivingHome := true;/ _$ q2 B) h, R& y7 ?  r
                        end;
, M9 y8 O& Q+ v6 {- l1 g/ L" u                else -- the vehicle @ is empty, both vehicle and part are in the same dock station8 E& `: y8 q3 ~" h4 `( |
                        part := @.transpOrder;: ]4 x! f5 D+ a; Y  e
                        part.move(@);-- load part" B$ A: r/ z% B/ P
                        @.CurrIcon := "load";% }$ W  r3 E& a- u( o  j5 ?
                        GlobalDistObj := part.globDestination;
' R- C5 G2 x9 p  A: |                        assignLObj := rgmanager.rgAssignL;
5 U3 n" k- N2 }+ @3 z                        row := assignLObj.getRowNo(GlobalDistObj);
6 @' s' T3 e, U/ u$ l                        if Row = -1 then -- since 70
5 ^1 T4 _& R  S  i+ K# f  ^                                if lan=1 then/ Z) r/ G3 p' j$ j8 f/ g2 ]: d
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ {# a% T6 d" P/ i2 H" A5 o                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; U5 F! I) E( p  ]& H                                else5 i, J$ Y& K" V* g0 {- A1 i
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
/ C# u9 Y! C5 E2 ~                                                to_str("in docking station: \"",?.~.name,"\""));                               
* o2 c* z' G) w* i2 z+ e4 G9 {                                end;$ H! L2 e% f; c+ I+ _
                        else. M' z! M4 `1 r4 Q1 j
                                @.Destination := assignLObj[1,row];' ]1 O8 d0 V! b
                        end;                       
& e! U" l+ a. S: R( z; ^" x                        newDirection(@);9 l+ l, J8 k& i* J0 }
                        @.HasOrder := true;8 o: k8 E  a% F
                end;
) J6 z" w# C+ r6 i, L. p4 n' k" o        end;2 J" v# N* M" W, G
end;        -- of the method
& }. |( v/ K5 J0 q2 W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - r# P! m7 h- R3 ?& y9 e

( s1 y! Q2 x3 f6 Z( t这是AGV_putin中arrive的method。
  u) U# s1 _2 l/ Z' S
0 `! _9 P+ Q% K  v4 Z- a$ I当到达物料速度越高时,这个报警更多,
4 n# ~: F$ @3 A5 J: ]可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ N& e2 L% G+ `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! U/ k. V% z2 Z7 y6 y9 P  R

" `3 w' H* P+ P7 N; z0 S另外一个小建议,就是move,所有的move都可以这样" T# b8 W; O% K2 |- M! P$ L
if not move() then debug end
* R3 q0 g! d1 ~  N这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( x$ R% U8 R# L! I
plant simulation中的free libraries有AGV模板,
$ q% C" l# t. |里面也有案例。
  V  p) R: h. ~+ \8 E3 x我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ A( m% c5 k$ f' P

4 F4 m" F+ o3 Y7 x我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
1 H, e$ e7 j- K1 K. k4 X$ ?0 ^1 c+ n  x3 `( W$ ?
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( z# W3 N% w+ w. _+ v% [这是AGV_putin中arrive的method。
) z6 P2 Z; p5 J1 i: {" I. L( [$ W1 g4 S; Y* j5 G. ~1 \
当到达物料速度越高时,这个报警更多,

. ?! I) \; \, b, h! x另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-14 18:56 , Processed in 0.018182 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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