设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7302|回复: 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'
% M4 P( r: _/ r*/
8 @# J$ F# \) |/ q6 G' }4 iis
" N. f5 H" x: H        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* K% o4 X% @, k  K# }
do
5 [1 H" }  n9 U, S$ z        Lan := rootfolder.Internal.Tools.AOLlanguage;
7 s( [* [+ z- B        if current = @.Destination -- else return
! T, A( P9 I4 @$ u# i        then
. D3 j1 X& S# M7 j6 K: y7 o7 P% S                @.Destination := void;- [! e3 j  _: d5 @  _4 r) M
                if @.occupied then
: B7 Z8 p% J. c                        part := @.cont;2 m! A7 Y2 N7 I4 k/ K0 e: J3 C' J& x
                        @.transpOrder := void;
4 E' h3 p+ {0 s6 V6 T. K                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,* S/ e3 }/ v0 V# ~5 ^
                                @,root.eventcontroller.simTime);/ u2 y# L2 r: M
                        @.HasOrder := false;: `$ z. j* G9 `. ?1 Y2 ~
                        @.DrivingHome := true;5 n- j3 g- n. J" H9 a
                        rgManager.tryToStartTransOrder;0 @. p  M3 H3 [. Q- |
                        if @.Destination = void
) s+ w/ ~9 H  r6 Y& \                        then -- no transport order for vehicle @
* y" F3 t/ Q- L! t) X8 C) O* H                                @.Destination :=
, r- `4 C: q  @% J. d$ C7 |- |) g                                rgManager.nearestFreeStation(@,track.~);
2 E7 M% k1 Q0 h) O- ]$ A* a# Y                                newDirection(@);   
( H$ V9 s9 _* i6 c) y" n                                if @.Destination /= void then
7 q5 T) J5 E8 G. b3 f                                        @.Destination.NumReservation :=
' X+ o9 v  R' s( ]                                        @.Destination.NumReservation + 1;& e+ W" y( r+ }: J
                                end;
2 [0 v$ D* C* o, Z8 z1 l. C                                @.CurrIcon := "drivingHome";6 s4 N  x+ Q* j& b$ `
                                @.DrivingHome := true;
7 J( \/ X3 i! V                        end;+ a( l/ j! k2 v5 m+ }% u) g' F) s
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' O# Q& F# ^) c
                        part := @.transpOrder;
! O# a+ d1 i7 \. B& n" q! c0 Y0 b                        part.move(@);-- load part
& z; ~: a& M7 u6 m& u! Z: T/ f                        @.CurrIcon := "load";9 c" @( }& M4 B+ ]( o
                        GlobalDistObj := part.globDestination;- @3 o; J9 V5 v2 r$ y
                        assignLObj := rgmanager.rgAssignL;
# Z! \3 P6 U7 Y                        row := assignLObj.getRowNo(GlobalDistObj);
9 S$ L$ x2 P7 _! S$ }                        if Row = -1 then -- since 70+ M! ^' r3 R0 |3 G# X
                                if lan=1 then
3 [, I1 p, H5 A                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 \+ k* o* R- r* n: A- [7 ^
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ A2 ^& v- N5 K' D, N9 U                                else
' C0 ^5 |) w4 i+ U* C( v% R                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  W( n8 k5 [7 a8 j                                                to_str("in docking station: \"",?.~.name,"\""));                                2 h- M! G5 x" }
                                end;
4 R' T# v& k, h. Z' [! m                        else) \! B& ]1 S6 n0 H  y9 D
                                @.Destination := assignLObj[1,row];
9 n) t$ x# B. C                        end;                       
+ [9 `/ u% h( x# j: |  ^4 G                        newDirection(@);
% Q* a0 ]# [$ g! g                        @.HasOrder := true;
6 N, Z" V+ g1 e) n6 J                end;& M( ~" T  V/ v. p0 _, G' |
        end;
  |6 X+ ]. T+ ?! ~end;        -- of the method1 O$ B1 v( U+ f- ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / w6 z( M: L( I/ `

6 S' U9 ~. x6 Q) m6 k" N; Z9 o这是AGV_putin中arrive的method。
  p1 v; v. M( j6 I" ], q
; `3 {; k7 D; l( y9 ?当到达物料速度越高时,这个报警更多,' Z$ w" h! c: W2 d- z  J) i! [
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 z, r: T, c: c# R1 R
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& o. p3 `* S% J2 K0 c" H
) _9 \& x9 }8 c' l: A5 S
另外一个小建议,就是move,所有的move都可以这样
4 V( f; Q2 n- o& j9 X  h9 Hif not move() then debug end% @9 \% P) j4 g
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 P: k; z& P8 U4 Q( i- q) J
plant simulation中的free libraries有AGV模板,; |+ L/ a9 J* @( ~, I9 @3 ~
里面也有案例。
, S4 m- e8 r* F. @+ _我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" V1 ]" ]5 P9 T3 f; ~" O" }! N- f& Q9 T# q( {
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 h" A' H& U' U# l1 I0 S7 A8 U, h" J5 m0 s, m
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
# z4 J9 F6 f  f这是AGV_putin中arrive的method。* `% ]7 B9 M, L3 s7 m* w+ B

; R$ _. \! N7 d+ g8 i5 z: z, ^  Y当到达物料速度越高时,这个报警更多,

& J/ Y$ j4 J$ E7 z另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-3 01:54 , Processed in 4.147125 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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