设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6964|回复: 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'* b$ m- I3 C4 [! L1 L/ C& I
*/
* r& v! W) n7 M7 Yis" d7 t8 i$ L4 ~  J' e# j' G: @% S* L
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
- r* ]! S( m) ^( }9 udo' f& ~7 x, C" q! f; t" L
        Lan := rootfolder.Internal.Tools.AOLlanguage;9 k3 g6 h5 g: G5 q" ~
        if current = @.Destination -- else return
% g1 t# G' Q/ ?* ?/ Z        then1 c) ?8 P; @0 o. y
                @.Destination := void;
" @' S0 ]# m& d2 A6 G1 m                if @.occupied then
0 s( \* R& @5 H) |# i  l: y7 \                        part := @.cont;
2 Q  l: v& s( s* @0 r5 Z$ Y                        @.transpOrder := void;2 V. R( B5 `* \( ~$ b
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* t# J! y1 l# ~! C! ?9 c+ V5 ]
                                @,root.eventcontroller.simTime);8 ^7 G  @7 _0 \0 x3 v
                        @.HasOrder := false;. r' d2 ?8 G( b: x4 Q. y
                        @.DrivingHome := true;
: ~* s' K* t' H3 ^0 B6 ^, g8 L                        rgManager.tryToStartTransOrder;
; ]* ~* X, ?5 P                        if @.Destination = void- a* v3 |1 R8 C" u1 F
                        then -- no transport order for vehicle @- i$ F$ v/ o6 I7 ?8 v4 i: a
                                @.Destination :=
2 p" }+ U2 [6 ^( s; M                                rgManager.nearestFreeStation(@,track.~);
! H0 r- ]+ ^6 x4 Z  `) m# l                                newDirection(@);   # r" o: W7 X6 S; z  `$ y( |7 l1 s0 x
                                if @.Destination /= void then
! J3 H+ t2 @7 ~- R3 N- d! B: J                                        @.Destination.NumReservation :=
3 u" Y, f" e. n                                        @.Destination.NumReservation + 1;8 Q: s2 C* B  k7 f
                                end;
' f6 V  ?9 d+ ^4 ]                                @.CurrIcon := "drivingHome";* [# t5 \4 ~1 X  |# Y
                                @.DrivingHome := true;
" y* ^7 l7 U  u9 a7 k7 }7 O+ U2 H8 v6 Y                        end;
" ?( X3 r5 v' {  z4 K                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 m) @9 o4 _- x
                        part := @.transpOrder;6 ~8 z$ S' H( l/ v" \
                        part.move(@);-- load part* T4 Z# x- h  C7 k
                        @.CurrIcon := "load";3 S0 J- Z) u! h+ g
                        GlobalDistObj := part.globDestination;
: f, w" d, B& d$ d/ k                        assignLObj := rgmanager.rgAssignL;/ t( s& Z+ F* K
                        row := assignLObj.getRowNo(GlobalDistObj);5 ^: q2 s# h- C0 a
                        if Row = -1 then -- since 70' T7 I3 z+ k; i
                                if lan=1 then$ x8 G4 f9 ?* F9 h* B3 I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 T9 V9 @: T# N
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
& z# T5 j0 e8 r8 Z( D                                else
+ s; o& O/ n2 P9 b# X* N; p5 _                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 r2 ?% l3 h& G7 k3 A. @4 u+ {
                                                to_str("in docking station: \"",?.~.name,"\""));                                ) i6 B4 q# W7 `, R' C# Y, F3 E
                                end;
# E4 G) G* }" c- h5 t9 e                        else" F8 w# ~. N5 k- w
                                @.Destination := assignLObj[1,row];
  `. p, z+ E" B3 r. @$ r                        end;                       
) b2 J, ^2 ~- {9 }  m! a                        newDirection(@);
$ O. V+ a) ]5 B  L                        @.HasOrder := true;" d9 O1 `9 m! ^% p2 s$ @& m
                end;
" L( {6 C" G: k        end;9 z; w; T( P5 `5 ]' J% T+ `/ R# k/ M$ @
end;        -- of the method5 D" z/ `  ]& l, I/ ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
9 x) V8 e6 V6 V& A- R  w2 E& c* U1 i0 V/ @' G! r
这是AGV_putin中arrive的method。
- O! R9 ~; P6 R( X8 n6 s0 e7 D; a' J) k7 q6 W: c0 h9 t1 a
当到达物料速度越高时,这个报警更多,
1 @' m4 W! m# \可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。8 K; B! Z. b- b  Y
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ p5 r+ _: k6 {8 q* d
* g7 b: ~  z3 a8 H# s另外一个小建议,就是move,所有的move都可以这样
$ c; [* D  D& qif not move() then debug end
5 D# z9 T, }/ ]- @这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ J: W, l! c  M9 I
plant simulation中的free libraries有AGV模板,3 }: ?: g1 x5 c$ o( y# I
里面也有案例。
7 d& s' K4 M( f, c3 g* g我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
& R* w" K7 e: Q& o% k- w, ~2 X9 n1 J$ Z8 R
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ( s: S6 P! p& e& i
. T9 {# p: p3 V! _2 W9 ~, J
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 Y. z- m4 O9 Q& u7 \" v+ W这是AGV_putin中arrive的method。
% l! _! }0 A0 q
, Y4 p- z! [. u* [4 H当到达物料速度越高时,这个报警更多,

4 W: c3 z  x0 p9 u1 \另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-8 13:45 , Processed in 0.023035 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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