设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5924|回复: 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'& e% ?  [4 s+ e% J: z# v9 t
*/
; ~, h9 c/ i" Q8 qis, P% F5 @0 r" t0 n9 m
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ w+ v% {* @( M$ i$ U* \; g, P
do) X9 }* B  q* Y9 w: V6 _; q4 ?
        Lan := rootfolder.Internal.Tools.AOLlanguage;$ X) C, T( Q! G+ J* g
        if current = @.Destination -- else return: w5 s8 a/ ~$ v" @
        then
5 ?; N  A) \+ U                @.Destination := void;0 X- K7 ?% F8 x
                if @.occupied then
$ D3 X, X4 L& F+ p  n3 f% L/ a                        part := @.cont;0 u& g2 @* k) r2 J
                        @.transpOrder := void;
( X4 u, S5 [/ a4 @7 b. S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," V# L( g' U( [  k1 a% J
                                @,root.eventcontroller.simTime);7 J) x2 U( I5 s2 J8 L
                        @.HasOrder := false;" e/ V0 V# e1 t/ [1 _  M) r; h6 P
                        @.DrivingHome := true;' ?$ I- J0 r) i6 m% s! K
                        rgManager.tryToStartTransOrder;
) V! O0 M1 ?; n0 U  O3 Q                        if @.Destination = void7 W7 N5 P1 U/ ]  [5 g; ]
                        then -- no transport order for vehicle @) l" E; A" c3 l1 h% R9 L
                                @.Destination :=
$ `5 w6 {- U- B) H& G' A) Q                                rgManager.nearestFreeStation(@,track.~);
- @6 {1 D# O' \: |7 ~( M                                newDirection(@);   : D2 p1 M1 P' W
                                if @.Destination /= void then4 A: k. N: @8 g5 }9 v
                                        @.Destination.NumReservation :=
1 I1 [: e# s* \                                        @.Destination.NumReservation + 1;
& @8 e6 ?7 p, f  P' r1 Q+ h                                end;
4 J7 q* n6 Q1 R& q0 Z                                @.CurrIcon := "drivingHome";
9 H! Y4 O# ^) j( t2 c& G/ y7 N                                @.DrivingHome := true;. b2 x1 ]# S# |7 S
                        end;
3 g. z/ p9 L3 S- y2 ?: z                else -- the vehicle @ is empty, both vehicle and part are in the same dock station" P7 k$ _, I! R! \
                        part := @.transpOrder;
  x% s* \! P4 z                        part.move(@);-- load part4 k& d- A1 v" V# `
                        @.CurrIcon := "load";% G( |# D* Q: |5 j9 G
                        GlobalDistObj := part.globDestination;
( p7 W" q$ m" l                        assignLObj := rgmanager.rgAssignL;
& q) D- e. `  E$ ^' [/ j9 m                        row := assignLObj.getRowNo(GlobalDistObj);
3 U' M8 h7 C) {4 K                        if Row = -1 then -- since 70
( v. y/ [4 t' O8 V                                if lan=1 then1 y* b) F% z" j6 b/ m4 G) x  N5 H
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
1 |% l, Z9 q8 \) B                                                to_str("in der Andockstation: \"",?.~.name,"\""));& n7 U$ K% y( @  \% Q" |( b
                                else- I6 S. `" I  R) A7 F
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ D" L, j& I; f2 F0 @; m
                                                to_str("in docking station: \"",?.~.name,"\""));                                ; ^4 f7 F7 G9 S$ i# }" y1 S2 q
                                end;% `- |* r3 x) G) @6 h& E4 I  o
                        else; g, r9 h4 z! T/ B0 S  L
                                @.Destination := assignLObj[1,row];/ |9 |; a( a  e$ C& x
                        end;                       
5 a( _! |$ `* ^( x6 H  e% o                        newDirection(@);
. z3 }7 K$ G/ f3 T7 \+ e                        @.HasOrder := true;5 W2 E0 c2 v9 t7 j9 W
                end;" Y6 b% T; F$ t2 e" Y5 h
        end;" N- ^- d5 r# s4 N
end;        -- of the method: ^( P# w( J- W( Y( t  ?/ C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ) }- s, [' Q' A( s: ]
# }/ j+ K3 ?! u& H- A8 H: e" j
这是AGV_putin中arrive的method。: a6 D# m- o% D; S; D. X

; S) ^. A/ v+ |1 p" R( K当到达物料速度越高时,这个报警更多,2 D2 R. \/ j: k6 w1 P
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( o! v( M- m6 E
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 v3 _2 [$ F! l) w$ g
: h* [( ]8 _. b7 c4 ]/ a8 {另外一个小建议,就是move,所有的move都可以这样
4 w" h  ?8 R: ~, ^( Hif not move() then debug end5 {6 T  F8 W) i" k
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 a; V8 }1 I3 q6 a* l! Cplant simulation中的free libraries有AGV模板,
! |" I0 S6 c' a+ j里面也有案例。
3 I& u! k0 s6 A/ f  i我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' [5 C: E# e( w- E; M2 X7 ], M

- p' U4 w3 q9 ?% h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 9 H* {% E/ \0 [+ O! y/ F1 v

9 w" j  \0 b- `+ L那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 T8 ]$ B1 z1 _/ M( d9 k. {9 n8 {) T这是AGV_putin中arrive的method。
/ o9 ^/ d# @; S( s. j% @0 d- X' Z" c% F& `, F
当到达物料速度越高时,这个报警更多,
  a+ o+ s" s+ J; \8 c! h- S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-2 16:52 , Processed in 0.029571 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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