设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5626|回复: 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 r8 H5 v. U! K$ F- u$ D* ?* P*/
. \1 X! S1 R. i2 Kis7 N$ I6 a1 ], `! D2 _
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# |6 s8 X$ X" b$ B- C: m% o% p. b
do
! E- W/ c7 P3 R$ D0 S        Lan := rootfolder.Internal.Tools.AOLlanguage;; P0 K9 p: x: ]
        if current = @.Destination -- else return
/ \3 [2 ?; j6 W& Y4 Y# N8 \0 G! g, x        then
/ p/ e) o! H3 g% y# u                @.Destination := void;
9 X- v, H& P; [/ y: E                if @.occupied then9 y, c! |/ Y$ ?- g: c
                        part := @.cont;
, P4 H' o0 \4 i# `9 T" {2 u7 t                        @.transpOrder := void;
1 [7 T0 F6 a# N% o$ Z: |" V                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," r/ h2 ?+ W0 \" y' c& k
                                @,root.eventcontroller.simTime);4 _/ W: k& |9 y% h; J+ U
                        @.HasOrder := false;! i5 \* b# ~5 R$ Z
                        @.DrivingHome := true;
. w; f/ w" U) I4 b2 M9 r                        rgManager.tryToStartTransOrder;
9 V# T3 x/ o- y8 p  u! v  L                        if @.Destination = void
! z+ y" G! D: A% R                        then -- no transport order for vehicle @
0 H; j8 _" d6 i: }; F                                @.Destination :=& |/ ]2 P0 E) P$ V- z5 ~
                                rgManager.nearestFreeStation(@,track.~);* I6 z' T. o6 j
                                newDirection(@);     A% b* P1 s1 M% H
                                if @.Destination /= void then
/ @: m2 t) D8 ^. s3 T                                        @.Destination.NumReservation :=+ v0 e) Q3 p' L- k
                                        @.Destination.NumReservation + 1;* w$ X6 a2 J1 S0 H
                                end;
% |7 H# v4 Q3 Z4 ~. N$ ]                                @.CurrIcon := "drivingHome";3 O3 J$ y, I$ w3 C6 s" [/ S
                                @.DrivingHome := true;4 H  R! p( _! e1 M6 @9 ~9 j8 Q( Z1 C
                        end;
$ J9 J8 Y$ r% o1 a  k* J2 @# A                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ W% _/ k+ [0 z  v3 [3 ^                        part := @.transpOrder;
* t- r. h- d5 Y% {2 C                        part.move(@);-- load part
4 Y$ }- m: O# u$ y3 d/ a                        @.CurrIcon := "load";. p$ p' c& [  `- X' X9 u. f9 t0 z
                        GlobalDistObj := part.globDestination;, f: a; p9 L! q# L5 K
                        assignLObj := rgmanager.rgAssignL;
: l+ @6 S% ~& j. s5 f3 u! u$ g/ q                        row := assignLObj.getRowNo(GlobalDistObj);0 P' h4 m- J' n9 ?
                        if Row = -1 then -- since 70
, C# \2 K2 f" T/ B0 x% p  K                                if lan=1 then8 x7 g% ]7 L& }+ h* u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; |# I: ~% S, ?: T+ d                                                to_str("in der Andockstation: \"",?.~.name,"\""));6 k/ \+ e5 i; P0 s, h
                                else8 W6 s- C. V$ Y/ n
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
2 r' s5 h( u" V1 q( O0 I                                                to_str("in docking station: \"",?.~.name,"\""));                               
5 w6 l" H/ Y/ E- c                                end;1 E# K% \; c. C( ?
                        else
0 g% c% R. G( O0 @  U                                @.Destination := assignLObj[1,row];& Y0 F6 F7 F: w" a2 Z2 D$ T
                        end;                        2 i9 P" ~8 N8 M
                        newDirection(@);
( ~* ]/ G4 E/ t1 d                        @.HasOrder := true;+ N- ]) ]* p* i4 R
                end;
- p5 a; Z( T; l0 D# V! O% j$ U0 M        end;
1 A$ g  w$ ?4 C- t. M& Jend;        -- of the method
! n) S% p- V% F4 Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
) @/ r( A" ]5 U3 M% o3 u# B( W( I2 h) }  Q7 k
这是AGV_putin中arrive的method。
, t& `# o. u- F: f6 i0 a* P/ w: t& Q( u6 A
当到达物料速度越高时,这个报警更多,1 V3 @" ^; W8 n+ O# N1 Y: M
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 k' @7 D7 Z6 A' ?- C
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 l0 l3 J  m: a, N  X8 A* b/ z, Q
6 |7 D% O( I$ }/ n: {* \1 ]- T
另外一个小建议,就是move,所有的move都可以这样! N5 M' P0 r" E
if not move() then debug end
. R5 i  R6 L- ^1 i3 L7 G1 I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( T  w; g* m& r- t+ c/ i
plant simulation中的free libraries有AGV模板,
; F% I! }6 }4 @. f$ i7 `里面也有案例。
% k, Y' B: p6 l. c  j( B1 m我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# i- N0 J& r9 p+ L

# J8 O3 P6 F& G3 X- ~我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 J  G" f; P9 G' I

$ n* `  k, W# Z# i6 y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - t+ I  \1 t# j) K
这是AGV_putin中arrive的method。3 D7 |1 z4 [4 Y) v+ }) J  g# q6 t9 @
7 o* `( o+ p, P
当到达物料速度越高时,这个报警更多,

: y3 j3 f' E; T* x* ?另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-9 23:58 , Processed in 0.021167 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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