设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6367|回复: 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'
0 g  o+ l; `( W% A/ p*/$ g$ ~% P! ^/ L4 E
is2 J$ K. @. X1 P" I
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 ^* w7 H/ A3 Q& w9 h$ \do
/ |+ m# H$ N7 |        Lan := rootfolder.Internal.Tools.AOLlanguage;7 P$ \! A4 @3 |( }, Z
        if current = @.Destination -- else return/ @& u! J  X% j: Y+ N2 S& D6 w
        then
6 a: D2 L; L" R1 F( E                @.Destination := void;3 A6 P% ~9 K" `$ C' l6 j3 {
                if @.occupied then+ {* g$ V: I! u9 l; U5 W' w0 v* H
                        part := @.cont;: U- b% l# V8 w: p/ M
                        @.transpOrder := void;
. i8 x4 M4 c. F6 s. N                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
# K7 C+ w/ ?# a9 U                                @,root.eventcontroller.simTime);6 V/ n+ n2 [0 a4 }" k, ]
                        @.HasOrder := false;* ]) Q& P- k4 Q% X# I& N! p; e! G
                        @.DrivingHome := true;
, H! c( V; O: h4 x: d3 }8 n. z2 X2 K                        rgManager.tryToStartTransOrder;
* j: F5 ?5 E8 k( s4 V                        if @.Destination = void$ b" r3 L- {2 O; c6 i1 K
                        then -- no transport order for vehicle @/ Z% I! P8 ?6 N6 S3 a# f
                                @.Destination :=
' g% B7 s$ k, S2 o% }1 P! l                                rgManager.nearestFreeStation(@,track.~);; d0 B1 o/ q/ D: z
                                newDirection(@);   
4 E8 c: ]( Q1 E8 \8 p                                if @.Destination /= void then% M$ U% ]: \, E; N& @6 o
                                        @.Destination.NumReservation :=
% G5 u; e. ~* I, i5 u" {                                        @.Destination.NumReservation + 1;
+ V* ~% H5 G. L. ?5 I* H                                end;7 b: B, _  J- D% t
                                @.CurrIcon := "drivingHome";
. z" r$ m( P, f7 B) i! G, ?                                @.DrivingHome := true;
% G7 T+ @0 F1 o$ I" e" d0 B) E                        end;3 u8 f0 I3 n: y5 e- g# k* P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ k) H- Q+ N, b
                        part := @.transpOrder;7 ~6 P" Z/ ?  V: ]
                        part.move(@);-- load part9 @" \2 n6 C: D. x
                        @.CurrIcon := "load";
. c4 I. {9 T! C5 N- ?4 m! ~  F9 k                        GlobalDistObj := part.globDestination;- s$ Q2 f2 W3 K; V% f
                        assignLObj := rgmanager.rgAssignL;
$ L  m& E  d8 J2 v                        row := assignLObj.getRowNo(GlobalDistObj);! i) i. U3 t$ F. n7 M* X% c5 U
                        if Row = -1 then -- since 70
! m# P2 D' X4 ~8 E6 B6 d9 Y                                if lan=1 then5 U  a6 ^5 L) p5 w
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
7 t. i" H+ |9 t- g- r% g3 K                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 I3 g% }9 ^- H# H  [                                else% I# |! n1 P0 j- z! u* I! P" F
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ j1 S: D/ H- J5 {                                                to_str("in docking station: \"",?.~.name,"\""));                                1 P- B( h+ X0 n0 z0 T
                                end;
7 v6 j2 A6 G0 o- A0 {                        else
* j) t, N% w/ {                                @.Destination := assignLObj[1,row];7 {  p$ `3 Z, A; e( i
                        end;                        * j+ M* W7 z0 V9 A0 A
                        newDirection(@);; r/ G% F+ W/ u( `) o  o
                        @.HasOrder := true;" K% w' h4 T3 t
                end;
8 ^, v( D4 G( q, I, d- V        end;
, C5 K% W: M( x7 c5 Q. Kend;        -- of the method. p; h4 j1 @# o7 k2 _6 h7 L5 z$ N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
- j* C( F" R, W  N& q/ Q1 o5 m+ S# p* b/ Y; C1 z9 q4 m% [7 [
这是AGV_putin中arrive的method。% v- @( G3 g. x/ S

4 @, o) j% O2 w: F" [当到达物料速度越高时,这个报警更多,  k! ~6 U# H1 C, o9 P* f
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! l. ^: G6 u# P* v3 k
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! {2 ~& t. u. i, M3 R3 C

+ O5 t$ j; n% i9 U+ D另外一个小建议,就是move,所有的move都可以这样
0 `$ T# Z7 r* I. Tif not move() then debug end
. l+ o4 _! \" p- K6 O: d2 ]这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( f1 x. H3 A. b/ P! B) y- k+ k
plant simulation中的free libraries有AGV模板,
: X8 e$ u) {2 @2 ~里面也有案例。- O0 \( V* Z- L9 t# j
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。: q9 e5 a7 ?; P# b

* g2 f% e- q6 q) Z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * n, A) s! m$ J) U

0 v# g4 s6 a$ n那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 y" f2 n+ x0 Z" j! Z) v1 e这是AGV_putin中arrive的method。
; |0 {+ [, q- }5 n, T; R
/ o9 s5 z6 w, |& R* P: V, U# h当到达物料速度越高时,这个报警更多,

/ x5 x& Y1 y; K' \; X/ p( r另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-2 03:05 , Processed in 0.019768 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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