设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10257|回复: 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 d& L' }- E7 L*/8 t1 W5 o2 C% y' A4 W" H- P
is
! C- }8 @5 ^9 j: [. E5 I% u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
! n* Y: F/ V) x& g% @* D: xdo
4 w8 q- v: j: B* v4 C. O        Lan := rootfolder.Internal.Tools.AOLlanguage;
4 w, _8 \; r, \8 w0 L        if current = @.Destination -- else return
) ^9 f. S3 ^9 f        then) z# h1 y3 ]+ C1 L- b
                @.Destination := void;
4 A" s1 g' u$ j+ h" S; e2 I                if @.occupied then
/ m- T# U! K; b2 a; W5 O                        part := @.cont;. W  C8 s: N3 h. e) h$ N' c
                        @.transpOrder := void;
& ?% i2 U, k% Q  r                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
  b; g& R) |6 _2 p2 n; ]' d                                @,root.eventcontroller.simTime);3 B1 }; ^9 Q/ A5 ~8 A, g
                        @.HasOrder := false;+ y3 y9 S8 `6 f6 |
                        @.DrivingHome := true;: I6 z- M# v: n
                        rgManager.tryToStartTransOrder;( i" ^! R3 c# r! T' \; o' ^& _0 Y
                        if @.Destination = void
( r' u" g: Y8 u9 A- N                        then -- no transport order for vehicle @
' Z6 H7 I' ]2 f- K5 j/ [                                @.Destination :=) _& Y4 g- I: L
                                rgManager.nearestFreeStation(@,track.~);
9 E4 D; C# L; B# w5 E/ [$ U- L& t                                newDirection(@);   
, \0 B% ?1 L& a9 H- h4 s4 X                                if @.Destination /= void then
% `0 l7 U5 t8 W# \/ E5 u# t                                        @.Destination.NumReservation :=
. e* p' V- u* J9 F$ u                                        @.Destination.NumReservation + 1;
" t' A5 I# t" S( m  R2 ~) C& M" c                                end;0 Q7 u5 j3 e/ V! |7 m
                                @.CurrIcon := "drivingHome";& z. z, J" N& w; G1 }6 s; x
                                @.DrivingHome := true;3 X* ]5 \4 A  f0 B; w' v$ Z% z7 X  K
                        end;2 t, O" c4 G# O# }9 ]! i1 p$ G3 `- _2 D
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& r2 `% a: B' C& A, Y; f" p5 \! I- _
                        part := @.transpOrder;
# N; m$ j& J' c+ r2 P. q2 `+ D5 u                        part.move(@);-- load part7 b- }$ a3 G& H6 O, ]( n" s
                        @.CurrIcon := "load";1 ?4 I; h7 f% X) E+ f1 Y- D
                        GlobalDistObj := part.globDestination;, A8 g$ V0 G4 T1 ~' h5 G( J
                        assignLObj := rgmanager.rgAssignL;$ O( P! J8 z" w% Y( Z
                        row := assignLObj.getRowNo(GlobalDistObj);. y0 }3 [% P. T
                        if Row = -1 then -- since 70
1 R& o3 c+ Y) _2 K# I                                if lan=1 then* _+ ?3 @8 L4 c# Z, R& n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),* T! e9 l: _: E' `- K* s
                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 Z. J" ^2 U$ n) O7 p4 d! C$ o! M
                                else
! E( \) N2 ^, N! J" F+ X                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' j% g! Y! a# }
                                                to_str("in docking station: \"",?.~.name,"\""));                                4 p" L; _6 j* R/ ^* l) `
                                end;
0 I& s. e- |7 I$ R/ b                        else
1 F1 U. Y! _/ K6 r$ j# \& R                                @.Destination := assignLObj[1,row];
# r$ J2 Y9 H  x* ^2 W& \1 a* X" D                        end;                        - }* v$ `* {1 ^0 S
                        newDirection(@);
9 ^4 N- Z# b$ C% _, F                        @.HasOrder := true;( c. x2 s- m1 E. W
                end;9 `( I3 I- F" i& R% V
        end;
  F2 h# C( a% q  g0 o( aend;        -- of the method
( ?: @  Z) c: |, u1 O  w9 z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 J, j! x$ G0 G  ~, S
9 `+ j6 C8 ~+ f: w& p) c
这是AGV_putin中arrive的method。
" t; U( I$ x1 u/ D8 r; ~
% U; R4 m' T" W+ ]) y) h当到达物料速度越高时,这个报警更多,# c" M4 J# M6 ]3 h- a% H8 B* G
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。: o$ v7 y& }( \# t- D2 X
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 V" d( F" B. s3 Z( D$ {

& d0 ^  P1 s# m) }  g' R' X9 k另外一个小建议,就是move,所有的move都可以这样
  a9 v1 k: N1 t" pif not move() then debug end0 m- G, e% `) p) A' S8 A( L/ n, [# b
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# W7 N4 v; L( h4 b# j1 t
plant simulation中的free libraries有AGV模板,8 ~$ u1 D1 }! O. g3 f4 W
里面也有案例。6 f7 M4 n7 H! b+ @+ B4 w0 S
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" N: S. l) y6 ~. R% w( R- o3 m2 f$ [7 S$ z5 P8 V  D
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- ]$ Z$ a* Z) b# L: L+ c
( f: {* g7 a5 m) c; N# D那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " }1 k/ l6 ]6 {
这是AGV_putin中arrive的method。
2 i2 A; t; H8 e# t  a. C' f0 Z' z" L7 t: H& ~& i
当到达物料速度越高时,这个报警更多,

+ n1 C' z2 Y. ?: I; F另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-22 21:12 , Processed in 0.017496 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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