设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5492|回复: 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'
* ?  g: s4 S7 ?% W* s9 h*/
; F3 H6 C; V) pis  Y5 W  P/ F- \7 v+ U
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 H! k! V  A0 ?/ W; f, W
do  R4 o$ N9 a/ V% h
        Lan := rootfolder.Internal.Tools.AOLlanguage;
0 T/ ?  J/ ^/ e, [4 k        if current = @.Destination -- else return$ o+ b/ e& A! d1 j
        then
# R* R1 r) u0 G" B                @.Destination := void;/ O# Z) S1 M* [" G. B3 h" u
                if @.occupied then
8 ~$ R: Q! s6 k& Q3 p                        part := @.cont;
8 ?9 l2 R5 M3 e* Q# m+ ^                        @.transpOrder := void;3 j( t4 C8 o' G, J9 {7 ^
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ Q* z+ j: `7 I9 @; `3 |
                                @,root.eventcontroller.simTime);- Q: @2 [6 ~' ?8 T) A) V
                        @.HasOrder := false;
% c4 ]5 l1 E+ H. u$ h& Z: Q                        @.DrivingHome := true;
$ H6 c4 G: O! Y  A9 ], n                        rgManager.tryToStartTransOrder;: {) l/ g! @! R7 k% Y/ d% R
                        if @.Destination = void/ Q) a6 i( b& S! I8 _! o6 ~  ~
                        then -- no transport order for vehicle @
6 \/ t& I4 K. O1 G3 R% r$ h1 h                                @.Destination :=
2 [) \0 {+ v# x# }                                rgManager.nearestFreeStation(@,track.~);
. Z0 ]6 d( X4 G: D$ J; d5 L" v                                newDirection(@);   ) Z% }2 B6 O- b3 j  q- K9 C
                                if @.Destination /= void then
; H6 t! k4 j" C- U                                        @.Destination.NumReservation :=* C) F" {8 l% R. r' g9 v8 m7 O
                                        @.Destination.NumReservation + 1;. Z6 u6 C0 R9 \' S9 h- E8 o2 U& D
                                end;
4 b. A8 \: j2 I9 K/ k* A! C  m                                @.CurrIcon := "drivingHome";8 e% J$ l1 a8 K- u  n6 d
                                @.DrivingHome := true;5 O- ^* l& I( [' Z7 R* {; D/ |
                        end;
- h6 o; \2 Z( [; L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# N$ p1 `7 v" C( ?" C3 Y& V1 d) o
                        part := @.transpOrder;
6 h+ z9 {7 G) _6 G" J                        part.move(@);-- load part. \0 I1 u' a9 U
                        @.CurrIcon := "load";
" ~7 i; _" t& L$ g; L$ }6 \                        GlobalDistObj := part.globDestination;
! }5 ^" T: c* y* G5 I                        assignLObj := rgmanager.rgAssignL;" N- C$ }% D8 l' q6 l( A
                        row := assignLObj.getRowNo(GlobalDistObj);( ~+ j9 H0 `: l/ R: H
                        if Row = -1 then -- since 70
: H- x- ], ^# ]- _: V1 q                                if lan=1 then' i9 e. ~; Y  b! s
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. P- a2 {) Q/ x4 i/ A
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ \: w0 |' \- F, m                                else
! G6 s& l" U! p                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 X3 W" S7 u2 t, {
                                                to_str("in docking station: \"",?.~.name,"\""));                               
# j% I. u" K& x- l                                end;9 S( }, I- x) i; y. P% G7 e4 W
                        else% G. U% ]; Y+ y9 k1 e2 b( N
                                @.Destination := assignLObj[1,row];1 m- u' k9 e1 R. R# [/ K
                        end;                        ( Q. @  l3 N7 K
                        newDirection(@);
& Q% K9 u% N8 C+ Q4 }                        @.HasOrder := true;8 K9 D; M. J- a4 z
                end;+ o. b! k( ?# K
        end;1 c( q7 g+ M( S$ a+ g$ H
end;        -- of the method
2 @1 q+ H) O$ B* x, x9 q) g) }* j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% ]6 W! `" e! t' A% i3 d
7 u" [% d" P( R' M: I这是AGV_putin中arrive的method。' |2 g4 G6 Z3 u: I6 e- _

- U2 w: ]: k" {, o6 `$ V6 g当到达物料速度越高时,这个报警更多,# v3 N, U3 u# J1 t% h
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 Q/ V  @7 d$ D/ W
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  Z, X0 x1 c' c2 I* M% D
1 S) t7 K2 O: L- k4 k, Y9 u1 M1 B2 y另外一个小建议,就是move,所有的move都可以这样" O# F; g1 @# \0 e" n
if not move() then debug end# Y/ T. q1 R3 |0 O
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 f9 R: c  k8 M" e. J& {plant simulation中的free libraries有AGV模板,
. E! J2 Y: z% V7 Y里面也有案例。0 b. L% N# ~" l: c" A
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
/ J; c, j; p4 m9 o+ _5 u
7 |/ J: }! N$ w  N0 ]+ U- E! ^我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 X5 h8 i+ B8 Q$ m9 h
' q/ H9 E) j2 N4 V* n! T& L
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
/ E! U$ }" s1 ~1 I! h! t这是AGV_putin中arrive的method。
" l: p+ w7 T1 q8 ^/ I( o0 |5 R" ~, @" S. s5 |
当到达物料速度越高时,这个报警更多,
* k- L, f6 C( f0 {% f4 m2 Q% ^* c. z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-27 14:49 , Processed in 0.022119 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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