设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7233|回复: 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'& ~! C$ C  x0 G1 O
*/% H1 _5 {6 I7 |( _( B
is' k3 V7 i4 j! W7 m6 Y! o: {  K
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 I9 o( `  j( h
do- j$ u/ e# [  K' V: S3 A, C' O
        Lan := rootfolder.Internal.Tools.AOLlanguage;- m, }- @. y/ `: H
        if current = @.Destination -- else return
& B- L. x2 f! c, h9 N4 w        then
1 Q- Y% x* [' l" n0 m                @.Destination := void;: E+ O+ ^; |2 @5 Z7 W" J( E. r; A: X
                if @.occupied then
1 Z3 T" u& C7 P5 ]3 [; C7 ]                        part := @.cont;! [' ]8 Q2 A( u4 _
                        @.transpOrder := void;9 k3 n; l7 }* a) t! O( S
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,0 C* V% w# o7 u2 T
                                @,root.eventcontroller.simTime);" w# y% o. P' v  \
                        @.HasOrder := false;7 E: ?/ b/ W1 L* |
                        @.DrivingHome := true;
7 |6 e" @5 M0 z, I! }4 E- f                        rgManager.tryToStartTransOrder;
- `! h  W% C* E7 M  W0 p: P) Z( y                        if @.Destination = void
, z% `1 y) X; G                        then -- no transport order for vehicle @# S3 r- w) P, n
                                @.Destination :=! B% ~: r" D1 H
                                rgManager.nearestFreeStation(@,track.~);
! d: ~' m, c; O+ S/ s! s                                newDirection(@);   6 M. z8 k3 s9 u! ?4 N
                                if @.Destination /= void then
9 D  W$ |+ `, ~% y; G                                        @.Destination.NumReservation :=
, j; d4 A; h) q: S* I                                        @.Destination.NumReservation + 1;
: R/ N1 R. l, f- @+ I                                end;$ `1 K- L( @( N3 D( N6 H- N
                                @.CurrIcon := "drivingHome";5 M5 U* M/ t* q. n
                                @.DrivingHome := true;
! Q! i) L% L- a# E                        end;
( a. }, W" o: z, n( K6 r2 D                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ I2 f4 a8 [0 |6 e; J8 U: S
                        part := @.transpOrder;
  m7 f$ m3 w2 K( Y! n                        part.move(@);-- load part
0 w: y3 N- |" j                        @.CurrIcon := "load";
% g5 u( b2 a1 b5 q0 q; Y                        GlobalDistObj := part.globDestination;5 C- I* {4 [# G/ `4 X* h* [6 G
                        assignLObj := rgmanager.rgAssignL;
3 f6 E! u: }3 [" {/ t# P  o                        row := assignLObj.getRowNo(GlobalDistObj);+ U  o' ^& [8 Y, X" g
                        if Row = -1 then -- since 70
" o; X5 L; ~4 r2 o, {7 h! M                                if lan=1 then8 f: a' ~( Z, d. u
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
2 Y: \: g" D# G8 _                                                to_str("in der Andockstation: \"",?.~.name,"\""));! H' _7 ~3 X9 Y4 `* n' Q0 ~
                                else$ c* |. p4 k! c  c  L$ Y
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 ?! ?) P, h% L- h6 E0 N' w                                                to_str("in docking station: \"",?.~.name,"\""));                                , y( T7 y3 j, l/ Y" J' l$ J
                                end;7 p/ |  _2 N! W7 U3 n
                        else
. ~  i- ^% i  w, U% o                                @.Destination := assignLObj[1,row];& F$ i+ c! K) q% ]
                        end;                       
8 u1 I$ q5 n/ S8 {                        newDirection(@);
" _1 P- f& N3 N: ?! h7 B9 @3 y                        @.HasOrder := true;
! ^# O% n8 p. j/ W& L, {# G. u                end;3 q9 {4 q8 i0 y. S7 {, O
        end;
3 M" A" D8 J6 `  qend;        -- of the method
* g( z; H$ [" ?9 i( k: C) U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 / O- \. X* Z2 j6 [% Q! |+ d
9 Q6 K8 l3 l' W+ r9 K4 H: d9 O( \
这是AGV_putin中arrive的method。
8 \& L/ e0 g5 T: F6 S& l# q3 m
当到达物料速度越高时,这个报警更多,
  S* U8 S6 z; `2 z. E+ i可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) N5 Q/ L- N9 w$ x  A
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?5 h) e! f4 d/ P
( {  ]- }  v% y4 U3 g' I
另外一个小建议,就是move,所有的move都可以这样
9 T, n- W: R9 Q' |8 x1 V1 u; Cif not move() then debug end; u1 a- ^% w9 s, I$ f! R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 X9 V7 H: j: b
plant simulation中的free libraries有AGV模板," n' r: z" l) Z; y- f
里面也有案例。
$ B1 [! K4 a1 k# ~+ L, b# F我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 `" `$ q7 M( j1 K7 C+ U
' u) l! `+ i- ^% w6 Y5 s' ^2 |  a我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : K8 {* p0 J  _

& ^+ h2 ^$ ]# k9 ~那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 E+ @: G0 ]4 `! k2 ]5 l
这是AGV_putin中arrive的method。2 `6 T' t" `6 R8 O7 R: B, p

; o/ ~. u3 C0 B! K# y6 z当到达物料速度越高时,这个报警更多,

% z$ k. z; X6 G# q& u" B" j另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-29 10:13 , Processed in 0.037396 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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