设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6857|回复: 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'
. T, N$ M/ o" d" p/ E( K*/
0 W5 J% X$ |  A* S3 q4 _is/ H2 p6 V" p5 ?; X; p0 H
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* A: |5 M9 k/ U9 G4 q9 n" f! x7 {
do! R- E, V  I0 ]& }, |7 `
        Lan := rootfolder.Internal.Tools.AOLlanguage;1 E8 Q% g6 S3 S' ?* ^" Y2 X; x
        if current = @.Destination -- else return+ }  M! Y2 {' m: Y
        then) |0 N. S0 V/ H2 `: N9 P* V2 d
                @.Destination := void;
: e  G6 B7 i7 k% u                if @.occupied then
) j2 e- E5 I$ I* _2 B                        part := @.cont;
5 m" W& ]7 L; h" e, J5 y                        @.transpOrder := void;( d8 q  r# {, y# L3 H- z
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 S2 H5 d; o& p: Z4 ?9 `# `8 D                                @,root.eventcontroller.simTime);, b0 n5 n: J' ~% d# Y
                        @.HasOrder := false;( U4 j  s5 O7 t/ V, ~
                        @.DrivingHome := true;
  }8 m; u: I  D/ F. F                        rgManager.tryToStartTransOrder;8 w- m" K4 t! C: m! Q7 t
                        if @.Destination = void4 w# D9 H0 A& S5 A4 C* V
                        then -- no transport order for vehicle @9 \3 i) ^& v9 d
                                @.Destination :=: h! ?0 k! R8 H: _; R5 X, u6 c# [
                                rgManager.nearestFreeStation(@,track.~);
! M: x2 }$ W* f0 ~                                newDirection(@);   
$ s0 }6 c+ }. A: g+ e- K$ Y/ s                                if @.Destination /= void then
% H. `( N6 O/ F& P! h8 @+ n& K8 X$ n                                        @.Destination.NumReservation :=$ D% |0 x2 m* @, k7 Q
                                        @.Destination.NumReservation + 1;4 U, j' z$ `: {& G
                                end;
& e; Z8 D/ _9 r                                @.CurrIcon := "drivingHome";
4 k/ R. @) A% \) }0 E9 u& ~. l5 `" t                                @.DrivingHome := true;8 ~! A% f2 n& X2 ~. e
                        end;
* Z/ n' O& k& @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. y- }# {8 ?: {                        part := @.transpOrder;$ Q" v% s+ h0 |' ?7 F, @( W1 B6 i
                        part.move(@);-- load part
/ Q7 E2 \2 S/ I& U" U) e                        @.CurrIcon := "load";
6 S5 `$ J+ x9 ^                        GlobalDistObj := part.globDestination;
( e: U/ C* a" P2 Y  |- t8 s0 w                        assignLObj := rgmanager.rgAssignL;$ p6 y( S" p. Z( J" d, I/ a
                        row := assignLObj.getRowNo(GlobalDistObj);
3 A) M3 f- }5 f, O' |- l" [                        if Row = -1 then -- since 70
$ `, j$ j9 R* O" V- D8 E, \                                if lan=1 then
- M+ q0 N  e9 a$ P* T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),- G; I7 j2 @+ ~& [3 J7 j8 [( J
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% Q) B1 h& J2 }$ d8 C                                else
  `5 x4 A. u4 C% t: m9 ]8 h2 O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),3 N1 K5 k  ^1 h
                                                to_str("in docking station: \"",?.~.name,"\""));                                7 ?( Q* J1 g1 x+ [: f* p$ I
                                end;  ]" B, [  m0 ~3 g; p9 B& ^
                        else+ p, W+ U/ p' _7 h6 ]6 L- ~1 o
                                @.Destination := assignLObj[1,row];
1 W9 a; ~4 c. B8 y3 x  @7 G# j                        end;                        7 {1 }) ^7 O& w$ F7 d  L9 p, j
                        newDirection(@);' s8 j, a2 L# ~1 D& V% S
                        @.HasOrder := true;
# Z, p3 D( Z" y                end;
' J. v: B/ ~6 r# p. z- \) M! v        end;
4 G+ @- }% \  s* X) pend;        -- of the method$ Z( K* `/ P* c* t- E8 b$ a
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
8 @) j( u" l" K/ G3 c3 f- w% Q6 o% g. |8 `: {: k4 e( f
这是AGV_putin中arrive的method。
: U: o3 c1 N9 C6 H/ a7 i8 {0 B& F+ t7 G5 H+ Q' b  n$ A! p- g
当到达物料速度越高时,这个报警更多,2 H4 J, e( O2 S$ L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
: Z0 T* x% F8 [# m% k3 t- w. C程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  v1 `, C+ o6 t. Y- Q, ^
, |- z+ K% R. R% s! T& y/ g7 p另外一个小建议,就是move,所有的move都可以这样
# N4 D( V8 ^3 {/ b5 Sif not move() then debug end
1 |" q0 Y1 w4 Q% \5 u3 S* J这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
, E" G9 `) R  _plant simulation中的free libraries有AGV模板,  {2 f3 l* ~" T3 @2 y+ p8 W
里面也有案例。
5 h9 i. `* n, Q* O# J我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& |6 ^0 {' l( A
, R9 s$ V2 F. j# w2 m5 {  h6 G
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' o( B% H; _8 y8 s) j* g1 j4 v7 ~# Y" L
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 " p& n  t! _* s$ w' N* a. T+ z
这是AGV_putin中arrive的method。
4 y$ v5 Y- _& @& z  p9 o4 ^& x  w- E* V, F# V
当到达物料速度越高时,这个报警更多,
/ g$ ~4 b2 f) ?
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-3 01:26 , Processed in 0.017991 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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