设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6146|回复: 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 M" [2 h6 G# c: v% e* m
*/
: F: j3 |$ D4 S7 ~/ zis
% ~! V/ v, L6 g4 L* ^        part, GlobalDistObj, assignLObj:object;row,Lan:integer;$ E+ e$ i3 u0 [, f
do7 \$ X1 `2 D& w; \+ |1 F5 @
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! w& O" C1 f. Q* j4 ]! p9 P        if current = @.Destination -- else return& f/ ^8 }+ B" b" c! u& v; E- B
        then* j6 B& B0 v$ G9 l) ?9 x
                @.Destination := void;
7 a% N5 Q9 A" J  q0 B% @                if @.occupied then
( h+ k$ ?* R9 I; Y% P4 A                        part := @.cont;% {- d4 C9 T5 k( W( n2 `- l
                        @.transpOrder := void;
& E+ X, A4 P0 V' f# {                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,9 \$ m* _. a9 X+ R3 T3 i/ f9 |8 ~
                                @,root.eventcontroller.simTime);
; X* B* j( Q! c+ E. u) Y0 e                        @.HasOrder := false;
, U4 R: A! n2 R/ A                        @.DrivingHome := true;
9 b6 X& E! z; w' I: ^3 @  D                        rgManager.tryToStartTransOrder;, J' G) X' a5 R3 {; p# C: s% Z
                        if @.Destination = void
2 `- S- B* t+ C/ _: ]                        then -- no transport order for vehicle @
. J7 ^! U1 @8 ^0 t# w8 `                                @.Destination :=
7 C( K' X& V' x3 e2 l8 o                                rgManager.nearestFreeStation(@,track.~);
( J, r. W" D: f+ V                                newDirection(@);   
+ H( s& j% P/ c, N4 e5 Y5 W                                if @.Destination /= void then0 M4 p/ M& v8 f  X. a) H2 q' y
                                        @.Destination.NumReservation :=0 `2 B0 ^' L* U
                                        @.Destination.NumReservation + 1;' F9 l, u$ S) b
                                end;
( G& E/ q5 l5 l) h                                @.CurrIcon := "drivingHome";
) h1 u8 e/ G' T  O8 ^                                @.DrivingHome := true;
: I) g* B& s' M4 I3 `                        end;4 J/ K' E7 P& u, Z' a
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 M! E, g( w# E
                        part := @.transpOrder;
8 ]( J& _. B; j' Z                        part.move(@);-- load part
5 L; p3 b0 [* \( |- f                        @.CurrIcon := "load";
, {0 m- _4 D, _+ S3 I8 Z( m                        GlobalDistObj := part.globDestination;0 B; }' w5 Y/ z2 \2 ]/ M
                        assignLObj := rgmanager.rgAssignL;4 a. O8 G) p5 s# p% `1 X: d
                        row := assignLObj.getRowNo(GlobalDistObj);
; ?" @9 p7 e2 H% j( W                        if Row = -1 then -- since 70
; d* W% l  }6 T( m) A                                if lan=1 then
' a- ?- t8 A2 G+ v$ A                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: _. V$ `% D$ ]; X. B" m                                                to_str("in der Andockstation: \"",?.~.name,"\""));
1 t. l; ~% H' b8 }1 n. }                                else: X; s& s( x# x  o& V' }+ i3 `- w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ v! |- [7 c& s( `* I
                                                to_str("in docking station: \"",?.~.name,"\""));                               
6 T1 X! m  p1 H) ~                                end;
* @/ a4 h0 }3 {  E; n                        else
+ W( W1 _7 x7 o- ^9 j3 q, n9 `                                @.Destination := assignLObj[1,row];0 e! u- U" g3 K* P
                        end;                       
% C8 V; e- d; t, B. h- s  P5 f                        newDirection(@);$ o- L( G# [' |% w
                        @.HasOrder := true;" Q9 w) h+ B* O# b; f5 }; d4 j
                end;/ ?, _. O3 [2 b- o( g, Y0 k( M" V
        end;
% I) k; j( S4 T4 N6 dend;        -- of the method
  }  C. h& j5 X# y) g. ?
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / }0 U0 s/ `: F0 a5 u6 t+ W/ c

4 I7 n. O; m& @: ]这是AGV_putin中arrive的method。
9 s5 A* l1 I8 L. j9 `5 F
+ Z# {) V# |$ u# [* G) [当到达物料速度越高时,这个报警更多,
2 t6 m( v& y. ~/ p+ w. V$ |8 M可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( j2 N6 u* E0 Q# Y% t# L" c1 ~程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ f9 }- A' Q4 H0 F. a/ w
5 e" G  o. Z/ p% R. `
另外一个小建议,就是move,所有的move都可以这样
/ H! k% V# c, S. X0 |) y9 C+ qif not move() then debug end
! M7 O) t: i: q2 E6 A这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。4 Y. S. S5 a* ]& x2 D; J# h
plant simulation中的free libraries有AGV模板,0 i3 U) _0 h# A. d
里面也有案例。: z; Z/ C# F3 U) V
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。1 k  N' X5 @  M( j! w! p  B

+ m8 A# N  {9 Y7 Z  H( \我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 {% k( p+ v* f6 H
! l. W, B3 }8 M3 m那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ j# U  L4 f8 p9 E  R3 I这是AGV_putin中arrive的method。
, m  f2 z6 `; h' K9 z9 D6 N# A, o& X5 p8 I) M, \- a. y& F
当到达物料速度越高时,这个报警更多,

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

本版积分规则

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

GMT+8, 2026-1-21 12:46 , Processed in 0.025276 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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