设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7493|回复: 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'
4 o, q4 }& w' Y: d& |; t$ Z5 m*/- \! D9 [6 s  J  Q
is
3 O6 h1 [" e, ^: |& r0 Z* x6 `; q7 n5 T- x  D        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; |. L; B( s; n; q
do
; x6 F) u/ m: x        Lan := rootfolder.Internal.Tools.AOLlanguage;
' K( m1 \2 Z& f  {& n        if current = @.Destination -- else return- ~4 K. V2 p( |2 _7 K3 s
        then
4 l" N6 A: D" o                @.Destination := void;
7 |/ P- M0 n7 t4 ^                if @.occupied then' |* V6 Z; A! Q
                        part := @.cont;; W; D' U" O3 j( f5 G  C# m4 v
                        @.transpOrder := void;9 M- O4 ]* ~2 D- o& A' A
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,/ G" j& d3 D: I" w. Z
                                @,root.eventcontroller.simTime);) @: C& Z" i% m; d
                        @.HasOrder := false;
1 K# Y; o3 h/ U7 A* s                        @.DrivingHome := true;
' x, J  r! t$ J  T- Y0 n0 D0 _                        rgManager.tryToStartTransOrder;
, y; I) O5 w5 K6 {                        if @.Destination = void
+ C1 T# ?: E5 P6 W; O                        then -- no transport order for vehicle @; V# ~% c1 q8 C
                                @.Destination :=
' Z4 {) |, \/ o# d8 L7 \8 _                                rgManager.nearestFreeStation(@,track.~);5 I. W! `0 G3 }0 }6 }
                                newDirection(@);   
: o7 D" v* Y) ~2 O                                if @.Destination /= void then0 \) A9 s0 I2 M4 C* z* M
                                        @.Destination.NumReservation :=
1 {: y2 T% v% ]7 [9 v                                        @.Destination.NumReservation + 1;
1 p, x% y& {. [8 j7 |8 A                                end;
# B7 f0 h7 V" K* S                                @.CurrIcon := "drivingHome";4 s* _" d! B/ T3 \4 {8 P* M$ D
                                @.DrivingHome := true;
8 J3 }& H" I" ?0 t                        end;; v. ]! `2 Q( i4 l, J8 L
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 f+ H: @( E. p1 z$ I
                        part := @.transpOrder;, i( K# Q# S# u# A
                        part.move(@);-- load part
" o& |' v" w4 u) J5 V$ }                        @.CurrIcon := "load";+ }2 _- v6 R$ q3 z- S
                        GlobalDistObj := part.globDestination;
: L% M& b+ j* m+ M, x9 ?! B                        assignLObj := rgmanager.rgAssignL;
. V, m7 v6 W" h! N) U$ D                        row := assignLObj.getRowNo(GlobalDistObj);3 r, e/ f* y6 [# L7 A; [
                        if Row = -1 then -- since 70
0 k, a" [, f5 Y  n1 R$ i) c. G                                if lan=1 then
! o! ^" S& W/ L  }1 t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ ?. p. w) X6 z& j5 T3 D% _* w$ J
                                                to_str("in der Andockstation: \"",?.~.name,"\""));* m" Z  u. ]" H& _3 u1 s7 E: c6 ?
                                else! e6 W/ s& ^+ ~$ G
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
. w' _! d) M- T% r                                                to_str("in docking station: \"",?.~.name,"\""));                                $ q9 m+ L1 _* x/ p+ Z( q4 P
                                end;/ ^6 Y3 I' `# d8 |
                        else
( [' X8 o3 u8 P* T                                @.Destination := assignLObj[1,row];/ ]" g! j2 r/ I' Q
                        end;                        ! V* ^7 C, R8 t- A# W  E. {' E
                        newDirection(@);
1 J% H) F  ^( t                        @.HasOrder := true;( F5 h& q; r+ \. m$ X% P
                end;" g$ e. H+ m& N5 n. v
        end;9 \. k4 M4 x4 \3 j/ [+ t/ q7 G
end;        -- of the method
/ J! u" C/ @( N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ C1 s% z, K1 r: d- _4 x# J; k2 U
) N) ]3 L% K# g; r% Z这是AGV_putin中arrive的method。5 `; J0 h3 _. _! z

3 Y8 X/ Z# s4 d7 G6 T1 ~当到达物料速度越高时,这个报警更多,; {3 p4 H2 g* {  m3 Y& r
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 {: t/ }8 T( F
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 N. S# C3 \4 T3 }+ \, ^% W+ R) D
, p" d( s' H6 n$ n( w1 [. z另外一个小建议,就是move,所有的move都可以这样9 M& a$ D! ?2 ^8 S
if not move() then debug end
' t' W+ w& V& t/ J& ?& `8 V7 r这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 z+ }: x/ K) _+ ~$ V" H
plant simulation中的free libraries有AGV模板,
% ~4 R8 u$ |: l2 E, C& L里面也有案例。" m- L% g, y" g- ?4 N! W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ w; K* ], ]& b( z( a; s

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

- L5 X2 U+ r1 L& v% }! ^; Z8 ^那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # B  f; q5 s1 e8 r- v
这是AGV_putin中arrive的method。, h( H6 Z' l( t& s) h
& d( X, u9 N' c9 H$ q' U
当到达物料速度越高时,这个报警更多,

, P* d6 d; B5 ~另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-14 18:34 , Processed in 0.018049 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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