设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5918|回复: 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'
+ G8 w" {8 e0 q4 a*// I& ^2 o5 I; o
is
  x- U" K0 F1 m/ V6 R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" x6 |) V) t) G6 Z7 y
do
$ o+ o+ W  ?3 ]& n0 c' w        Lan := rootfolder.Internal.Tools.AOLlanguage;- N+ f' K, G5 r5 x
        if current = @.Destination -- else return
! A) D/ [0 P% P& E. A        then
8 Z& P0 [) L; b9 y0 ^; ]                @.Destination := void;2 U- q* s: p$ {- Z1 E/ M" x" N& J0 s
                if @.occupied then
& C; ]( ~4 t4 f6 g7 L                        part := @.cont;- U% b5 K& @& t3 k5 K4 F" w
                        @.transpOrder := void;. j& n; W1 h1 c; E, A8 n1 ?
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% o* v4 ^# M5 _4 \                                @,root.eventcontroller.simTime);2 v2 T5 K' |1 X& B' t0 b& r
                        @.HasOrder := false;
' g6 D8 z7 D9 a% t7 \9 D# R: Z                        @.DrivingHome := true;2 L7 Z) ^/ |% i6 X* \: w# d
                        rgManager.tryToStartTransOrder;' [* l9 j3 P  `) R- l* ^- e
                        if @.Destination = void
7 L& X; M) ?5 R/ A                        then -- no transport order for vehicle @( a2 V7 u  }, d; [+ p2 J( V
                                @.Destination :=
& K8 @$ I' f  o* J                                rgManager.nearestFreeStation(@,track.~);
7 ^6 b$ }& R6 T* ~( b/ B1 j                                newDirection(@);   * [8 w- }# c! u# e/ U8 f1 p
                                if @.Destination /= void then5 N3 C4 S% _7 K( P5 h
                                        @.Destination.NumReservation :=+ G4 I, n$ x1 j2 F, D1 x; A2 Q
                                        @.Destination.NumReservation + 1;' c: V0 n- G/ Z- u! k6 N! t
                                end;
# j; P6 J) V; Z  J/ l: w                                @.CurrIcon := "drivingHome";) m5 n7 P$ m% L; s
                                @.DrivingHome := true;
+ `* \2 D- N# b0 {' ?! f1 E                        end;" N( y9 G: _3 f( k8 X2 T, g
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) p8 W8 C8 a. _3 U$ Y% ]3 ^                        part := @.transpOrder;* g( n9 ]  K3 E3 y) G/ l7 {
                        part.move(@);-- load part
1 r/ f$ B) A7 a2 T2 Q# s                        @.CurrIcon := "load";3 ~+ t, S. x, s* H: A/ l
                        GlobalDistObj := part.globDestination;
) F' i. P" s$ ]; e1 J. U, H                        assignLObj := rgmanager.rgAssignL;
0 v3 K4 r  u$ `2 ], `                        row := assignLObj.getRowNo(GlobalDistObj);/ w2 E# \8 C5 D' ]. |  u4 _6 y# ]+ P
                        if Row = -1 then -- since 70
8 e4 I7 A, K$ B+ u                                if lan=1 then# D- {7 R( f9 w* m, @
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, c: ?1 d% D- w- l7 W& k                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 t/ Y3 w7 z1 o$ U. ^3 l; n* N
                                else
" V% W; U  g) v" y9 M' H" ]* H                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' d+ k  q; R4 {' @2 O7 \4 ^                                                to_str("in docking station: \"",?.~.name,"\""));                                , w8 q1 i, O, ~' O7 e
                                end;& k9 A( R3 z5 R4 w
                        else
* k1 n  O9 a$ j2 C/ L' {" u                                @.Destination := assignLObj[1,row];; u4 u& Q0 r9 S: @# e1 A
                        end;                        2 [3 W9 o' v- [0 H
                        newDirection(@);
  l7 U- ?! ]- t) D                        @.HasOrder := true;6 M  o6 e9 ^+ g$ P" r' G2 R
                end;, G- z0 h, ~# i
        end;: U9 ]! r- X2 a5 l$ E. K
end;        -- of the method8 c( s# X0 K5 N  T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 2 |1 @1 T/ b6 I2 A
1 X# A0 @! O: [; H9 c: j" T
这是AGV_putin中arrive的method。3 Z' a7 T$ b! |

3 U" T7 ?& V3 Z/ X! b3 G' @- {, ?. S当到达物料速度越高时,这个报警更多,
8 t7 w) p" m& F9 _8 q  e可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 D% ~' n9 y! Y1 w3 O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- E! P1 c0 q+ D1 w6 Z* U, A+ x

' q0 e  l/ T# |另外一个小建议,就是move,所有的move都可以这样
' H. k: W# r( h8 S$ N# dif not move() then debug end: D3 ^4 W/ c. T' m8 K# N0 W% L
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ H6 z- @( m$ P: V8 `
plant simulation中的free libraries有AGV模板,* p3 E4 A8 `( p$ B
里面也有案例。8 I' w( t% E0 w3 ?/ y: w& o1 W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。4 t6 E  `' W/ O& p! D* F
4 @( Y- F8 Y' ^, s/ J
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 h7 u% m2 w5 x7 k' q- Y
3 q7 j: j4 e! e/ E1 I
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 2 u6 k2 W9 N; x, c9 X  Q( A9 q7 Y8 `
这是AGV_putin中arrive的method。1 z* [* c% m* a  e
: ~3 `  P  y. B2 o5 s8 d: b
当到达物料速度越高时,这个报警更多,

. m% O2 ~: q( G8 v; |4 y& r$ Q9 _  W4 S另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-2 05:44 , Processed in 0.016909 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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