设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6876|回复: 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'( ^) o0 B' k$ j" R1 I
*/
' @/ M2 A, `5 @' cis9 ]$ v7 h2 v. h$ h
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: c5 D3 l1 C- s1 F' A* }# ]
do
' F4 P! g8 [! Z; R* [9 ?        Lan := rootfolder.Internal.Tools.AOLlanguage;# G5 R+ P( c8 q8 M9 H$ e
        if current = @.Destination -- else return" l8 B3 k3 k$ S# ?$ U
        then
3 W  J0 G, p' L, S# z) Q                @.Destination := void;
2 y, S/ |) X; x* M) x$ m* g                if @.occupied then% b, ~! H1 Y+ L
                        part := @.cont;7 _; f2 z* v& j  Q6 s, |1 ~* k9 U
                        @.transpOrder := void;7 z) M: k$ I5 i; j
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% P2 o" J- w3 \/ @# A& q/ j) N
                                @,root.eventcontroller.simTime);" Y# W* W; c* M$ T
                        @.HasOrder := false;' E; ]' O1 S& p
                        @.DrivingHome := true;& ~1 h8 d5 _: W& J8 }" i
                        rgManager.tryToStartTransOrder;
0 {% i  s$ i- s                        if @.Destination = void
1 y/ e3 L3 l/ a' u# Y7 ~                        then -- no transport order for vehicle @" B" a  D& Z% y; P% T
                                @.Destination :=
: U; t3 A+ l& J3 \' F# y                                rgManager.nearestFreeStation(@,track.~);. K2 B- p, n" x: W% s
                                newDirection(@);   6 {: o9 @; j) }7 N- V) {
                                if @.Destination /= void then$ F, H; D' U5 q8 }' T! |$ t# k5 O+ o
                                        @.Destination.NumReservation :=
, r) E* n+ z/ _' s  ]) \) t                                        @.Destination.NumReservation + 1;
- X( Q' p) q  A+ Z+ ^                                end;
, `, M6 f  ^$ p' i$ D# @                                @.CurrIcon := "drivingHome";. \1 ^  k1 g: O8 f
                                @.DrivingHome := true;
, i' ^' z9 T( y/ M% S* M3 K                        end;4 j# M# G: Y( k: d
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ q3 |; o" Q' K9 }) Z  Z) W
                        part := @.transpOrder;" G, g( O7 b& h  B  x
                        part.move(@);-- load part
1 d1 x# v/ {* h' X6 P                        @.CurrIcon := "load";1 i1 H/ e( n, w: S( ^
                        GlobalDistObj := part.globDestination;
8 l. W" U5 l  v$ c6 w                        assignLObj := rgmanager.rgAssignL;# ^7 j# w2 A/ Q
                        row := assignLObj.getRowNo(GlobalDistObj);2 v, g8 g) X% [- x  l# _
                        if Row = -1 then -- since 70
5 q$ e( [; j% J                                if lan=1 then- v6 H& p6 Z' \& A
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 x6 \, W- N% n! K# @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* k( K/ ], b4 ~* i8 Y                                else+ t) u7 q  P1 n; t4 t+ t# z$ D
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' R) Z& @8 n7 b0 M% i! r                                                to_str("in docking station: \"",?.~.name,"\""));                                $ }# m/ S+ I% b+ T$ ]  P) m% @
                                end;0 m- v  R- W% `8 E6 v
                        else" P  W. R/ b7 c$ i+ R
                                @.Destination := assignLObj[1,row];
! w( c' C! C. e. R                        end;                        ) j9 n, [: ~9 S  J: y
                        newDirection(@);& [- J$ ?- h: O* V) \% b
                        @.HasOrder := true;1 a& ^. G5 q+ R5 `! g; o
                end;7 w' @* E$ `+ [8 P1 k/ Y, i3 h: I
        end;' Y& e( v% G7 e1 `% t- u
end;        -- of the method8 n! @3 B" h! ~5 B" G  v
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ |- P& h: ^& H& g. v3 b5 `' Z
% ?4 B! Y" V2 E. I5 a' D2 G
这是AGV_putin中arrive的method。
8 ?7 u8 R* i; E/ ]- }
. a8 J, ]7 _' j* S2 o8 X当到达物料速度越高时,这个报警更多,
. N  k- c& O# @可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  i# M' e/ x. `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! g2 r3 D8 e/ n6 w

: z4 v& q% [: P7 c; @另外一个小建议,就是move,所有的move都可以这样
* p! y* N; p2 Cif not move() then debug end" o( X& l/ w8 ]# {3 ?$ z8 k
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
% O; V  G3 E+ r6 O& oplant simulation中的free libraries有AGV模板,
. w, E; r6 ~9 Z1 V* Y4 o+ Y* G里面也有案例。8 p) ^5 I1 d" o0 X/ j! C$ H( a% [
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- r9 L) R: \0 l0 ^5 |
( P# _2 J- Z1 r8 C  O% Y
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
* {+ E7 _+ f/ @2 O& M+ f8 M) b% b0 Y8 T3 Q* }$ Q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
" [; v0 w/ t' z& I6 i0 Y& d这是AGV_putin中arrive的method。
( I  |6 D9 R0 l- z# o0 E; }3 F$ t0 q, t- S) i
当到达物料速度越高时,这个报警更多,

, |# V2 h: B' v2 a" ~9 q1 a$ S) q) Z7 h另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-4 04:37 , Processed in 0.021918 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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