设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8839|回复: 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'( {1 g6 V( }' b; k" w
*/: p) {" z6 s, s9 B
is6 E9 ]2 Y1 y/ `! O* X  K& ~2 ]
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! K+ r( k7 y! M! \. X/ Y+ h
do
, h9 M8 v3 o7 N' v$ H        Lan := rootfolder.Internal.Tools.AOLlanguage;
) H8 A# }. J  K        if current = @.Destination -- else return
) c- o1 F: ]1 n% ~3 {        then& {; M% v7 f" U$ g2 g$ S/ }
                @.Destination := void;, w% E( r! U' w# h
                if @.occupied then
1 g" O  d  X6 W, o% Z2 m8 y: d  e                        part := @.cont;
4 f* m6 j- U* {5 p                        @.transpOrder := void;
8 `' A* Y  {/ S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,  l& ~/ T9 R1 Y/ u
                                @,root.eventcontroller.simTime);
. k. d6 k5 z  O# m/ z) L                        @.HasOrder := false;( P& ]' W9 ^/ B4 e, f, Z: ^% T3 }
                        @.DrivingHome := true;
! G$ g. E! e0 @                        rgManager.tryToStartTransOrder;
6 ^' Q) J# v8 B                        if @.Destination = void6 a1 m+ A2 `" N' i+ ]
                        then -- no transport order for vehicle @4 g& P: \! n4 H( K  \
                                @.Destination :=; W4 Y- t+ I( I
                                rgManager.nearestFreeStation(@,track.~);9 f: [0 o* g5 ?# I3 @; q9 {
                                newDirection(@);   . s( N7 g5 s! d, {# t6 K% K8 ]
                                if @.Destination /= void then
+ M0 u1 j7 d. v. r                                        @.Destination.NumReservation :=
* m, Z% p8 P9 G  x! _                                        @.Destination.NumReservation + 1;
* r# f; X8 k% Z; [* ~                                end;
0 V; m  |1 x+ B' T' d  w                                @.CurrIcon := "drivingHome";
8 [6 c% ]# H) A1 k' D                                @.DrivingHome := true;
5 B7 E# |4 J; x# s' a" i+ a                        end;
) V% i) P; |+ k: L. C                else -- the vehicle @ is empty, both vehicle and part are in the same dock station: |8 g. q( L; E  a: C3 q1 C/ Y. ?
                        part := @.transpOrder;( ]4 h- t- y/ ~: O: b
                        part.move(@);-- load part% o; f  _, ~2 {% v- J+ L
                        @.CurrIcon := "load";
" I& ]& E  ^. |                        GlobalDistObj := part.globDestination;6 q/ [  ~8 D& }5 N6 t
                        assignLObj := rgmanager.rgAssignL;
$ ]% `% o( J( H$ \0 D                        row := assignLObj.getRowNo(GlobalDistObj);
0 o1 h. t- u! v. m) A3 d                        if Row = -1 then -- since 705 u1 Y3 a, L; L2 P6 v$ g" h
                                if lan=1 then1 g4 [' a% s0 S" P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 [$ i) w* c, \& m% @
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
) h% ~. j4 ?- q" P7 y                                else
, Q+ p4 C% A/ `$ s9 t6 X6 `                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. y% T) j) g; K0 k2 |$ e5 U& U  D
                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 y* O% X3 W1 g' |6 g                                end;7 n" @6 e6 H& d3 J
                        else
1 ~+ a+ {8 z3 q9 S1 T! l# l                                @.Destination := assignLObj[1,row];
& B9 a" ?- J4 c/ [" f9 t                        end;                       
# l5 \! [! R" ?! G( ?! X- e                        newDirection(@);/ R4 M* N8 s" V% e" S
                        @.HasOrder := true;9 ]$ Z% a3 W& h5 B
                end;
- {' T! o7 T# w# b! O; W7 M! ^        end;
& I! j2 Z5 U; V3 }) w& f, zend;        -- of the method* n8 o# J6 t: d' q6 s
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % G3 @* O5 S% ?( @7 [0 e

1 L) ?8 V8 w% Q0 e" L& Y这是AGV_putin中arrive的method。
2 F% z6 K$ F. J9 x& R. l+ v* l. H4 L9 k: t- n" c7 b6 M9 P
当到达物料速度越高时,这个报警更多,
" F7 f7 h8 _2 k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( v  c+ \; }; b* j* D9 X1 ~$ x2 h
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- t2 g) S* p- \- Y

* j: y! S' v1 y" u  c9 X, e# e另外一个小建议,就是move,所有的move都可以这样* N' [8 p8 C, h' w: Q2 m6 f0 _
if not move() then debug end( G- M7 D- t, A1 E
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
  x' }) p: j) R* r6 u$ kplant simulation中的free libraries有AGV模板,
* L8 _7 Y( f) j里面也有案例。( D$ i0 T5 R  j
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ t; F) M; b: g* S7 h+ e; F) f! r0 J+ c( {2 D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; i5 A2 C. w6 V7 a- B( _* i$ ?% N9 x5 |0 _! N
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08   r4 K" H  {' {) M3 P2 }) ?
这是AGV_putin中arrive的method。6 ~0 y* D7 Z) d8 h4 y" }

6 M+ h$ C0 P7 i  m7 g当到达物料速度越高时,这个报警更多,

( o. N4 @. x# F2 m: Q+ y& U$ c( L另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-29 10:02 , Processed in 0.017419 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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