设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6482|回复: 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'6 j( H- R9 c, a
*/' b0 M; Z4 m& X7 i& ~+ r
is( G$ P! Q8 ~: W# |: G' D. b% ]! Z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;; ~& V1 r+ a; Y9 t* z
do/ P- B# }6 `- @+ U# ?* S" `' d; }
        Lan := rootfolder.Internal.Tools.AOLlanguage;4 x0 U% w- V' K! m
        if current = @.Destination -- else return8 F6 f& V! D( t" h
        then/ f9 ?3 q& N+ e' M
                @.Destination := void;& P5 y9 S. v5 K8 I
                if @.occupied then
1 W3 N4 x% a, T+ ]                        part := @.cont;
% h$ o5 l# k9 O) M                        @.transpOrder := void;4 x* I7 ~+ ^+ N9 @
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 o* j: o+ g; P3 U& U                                @,root.eventcontroller.simTime);
& V% ]7 H# P3 c' B9 Y                        @.HasOrder := false;
3 w9 N2 r; z8 j$ b. U                        @.DrivingHome := true;9 U7 J: I/ H( d7 A8 a8 O! w( o5 v- s6 L8 ?
                        rgManager.tryToStartTransOrder;% U' M- m$ B0 A
                        if @.Destination = void
9 k6 x" |- g5 e( Y# K! p2 W5 }$ L" I  v                        then -- no transport order for vehicle @$ B1 O4 q9 q! u" h
                                @.Destination :=
, V5 ~$ M& ~( a% g, L! ^                                rgManager.nearestFreeStation(@,track.~);3 l  b' Y  \8 h. s! q
                                newDirection(@);   
( s& l2 V- P4 s0 D1 B                                if @.Destination /= void then
5 Z- ]8 S" |2 M( _- q0 e6 p                                        @.Destination.NumReservation :=. C* z  ^% i4 o, ~! }1 a
                                        @.Destination.NumReservation + 1;
+ k# C! q& I# G4 B" o+ B                                end;
. W4 ]5 U' H9 `7 ]1 Q; K) u                                @.CurrIcon := "drivingHome";
; U2 c! I. \- g% X: h+ F                                @.DrivingHome := true;7 T& g" h3 o0 I8 i$ K% N
                        end;
) m* e5 Z, C' m) u. I- a, r, R                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- }  B" {" D/ a
                        part := @.transpOrder;
9 T! |  [' r+ V$ i+ Y$ q! u                        part.move(@);-- load part4 z& X4 p  n% x
                        @.CurrIcon := "load";
& I8 I3 `* D7 k8 s& r1 X+ t                        GlobalDistObj := part.globDestination;) q% }' @6 N$ j7 |! b. X6 O
                        assignLObj := rgmanager.rgAssignL;
- g) r' ~, X' t7 ~- A                        row := assignLObj.getRowNo(GlobalDistObj);
$ O1 e, \1 H; d8 `4 Y0 O/ p                        if Row = -1 then -- since 70
) C- g! S6 R9 i# a                                if lan=1 then) t; H- m; M. Q2 Z4 Q
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),, g! Y: i7 H" x/ G9 Z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));  H" t/ Z3 {0 @# H& g1 {
                                else
6 W# W' Q/ \) o+ Y7 Q( k                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 C& M% q* y( q/ E
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ u0 e. N2 \; t+ |2 ^                                end;
/ g3 o3 N) y$ {" v- z0 `1 j                        else
  ^3 F) B) i9 V  w& [2 m7 g* g$ N                                @.Destination := assignLObj[1,row];% s' ]+ s! ~! N! S1 S- e) `' S) l
                        end;                       
2 R, y4 M4 E& ?$ X  p                        newDirection(@);
. ~3 o; k9 |3 J8 e                        @.HasOrder := true;
, |& E% o" z; Y% G: m) k, q4 s  C                end;
' |4 u0 x( I, G; Q4 d9 z        end;1 M# ]: Z0 o9 R( @& D
end;        -- of the method
4 k6 i' Q; o7 y- v: k3 K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; A# y. o+ }) e! M& G
2 y5 T; _1 w$ g/ r2 R这是AGV_putin中arrive的method。
5 ^! i' v' p1 t4 [3 Y( K( f! ], j
9 `/ U, u) {3 W  @当到达物料速度越高时,这个报警更多,
) Y) L, Y8 Q2 m$ l: r可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, g4 q" O' [# [6 z6 a2 v9 k3 \
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  z' n$ @9 }3 g$ D3 F; f! t. @( o, }( x" W; }& I6 w
另外一个小建议,就是move,所有的move都可以这样" @- s& b: A0 k4 ]* Q, O8 A" i
if not move() then debug end
! c- P0 Z3 I! V7 A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 y* O: L) g6 v: j: V9 K: wplant simulation中的free libraries有AGV模板,. c9 b8 _+ J) G7 K9 X
里面也有案例。  l; `, ~9 d) B* L, E0 _
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# N# j; [( Z" ~
. x; _( R/ i, j* U
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
, l7 a. P$ G% P9 Z
, D6 g; N: r4 {5 y" @那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- W1 k( I1 Y' x% S这是AGV_putin中arrive的method。
; r9 U3 z/ [! d" C! o' W& u0 v6 ?" u) p' C1 [
当到达物料速度越高时,这个报警更多,
, I3 a6 e+ B% z+ p# U1 o
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-9 07:36 , Processed in 0.016441 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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