设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5402|回复: 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'
  U. j) M4 r0 c) ?*/8 `  {! J+ [/ v- P- L; A9 a- _
is  \0 ]6 m# ]8 a; v( b; \
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 J) X  {& k; g" p3 W) R0 Odo
8 Q3 X. s' j4 V( D9 K        Lan := rootfolder.Internal.Tools.AOLlanguage;& b: F' L6 a$ R1 V3 M
        if current = @.Destination -- else return
: J! b" ^- g5 `; A        then1 H0 V9 j9 s$ P% E6 l
                @.Destination := void;6 w- G! q& h/ l- p: }- M
                if @.occupied then  f% U6 r2 t6 d. U" b" O$ g1 I; h  V
                        part := @.cont;  F, `  k: e" _0 [) L8 r! R
                        @.transpOrder := void;& b/ X: m0 u8 ~. D
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," V- u( P6 x1 x
                                @,root.eventcontroller.simTime);6 C( p, ^! ]( s* i
                        @.HasOrder := false;6 c# Q" @# S3 }" M# S; l% V
                        @.DrivingHome := true;
4 c$ c9 u" f2 l2 e6 l: A/ `5 q1 l                        rgManager.tryToStartTransOrder;' P! o6 K) L- l6 r: y  ]
                        if @.Destination = void# w6 S0 }, I' ^" i/ u7 n0 H2 p
                        then -- no transport order for vehicle @
6 ?1 w5 U# c9 \                                @.Destination :=
% X! I' ?) g3 A: I                                rgManager.nearestFreeStation(@,track.~);
( N. ]  u* w  }/ q8 u                                newDirection(@);   3 E, }1 ^; P! I0 O' B* y
                                if @.Destination /= void then
7 s* N: s3 ^. n9 P- |                                        @.Destination.NumReservation :=
- c" B; }5 U$ M9 [6 a5 m# Y& q9 M& t                                        @.Destination.NumReservation + 1;
/ c, ^' R7 S2 K' ^6 l& \. q! l                                end;' p/ a- J& Q3 ^: Y' D7 v$ w
                                @.CurrIcon := "drivingHome";
6 m! f# d- ]% Y. v) L' T* c                                @.DrivingHome := true;
# t' V5 l& A& _2 ?( a4 ~  z7 U                        end;
( E( }7 |$ K* k9 ?4 H) a0 D* n                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ k+ z7 `, |) Q7 c* y9 I
                        part := @.transpOrder;
1 ^8 d3 u* C/ A3 l( w, I: u! R                        part.move(@);-- load part
8 `  G7 |4 _, x3 ^7 w3 q                        @.CurrIcon := "load";/ s, `/ ^; W" {, f- `
                        GlobalDistObj := part.globDestination;
% i4 X- j. b% D* N6 y5 j                        assignLObj := rgmanager.rgAssignL;7 c; U  E6 i+ g/ U8 ]
                        row := assignLObj.getRowNo(GlobalDistObj);$ D! k- s" V! \2 s' Y. X
                        if Row = -1 then -- since 70
5 G3 ]0 j6 P) b* w% Z# G                                if lan=1 then# ]3 N  |; |0 \- A* M* @, V
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
0 p( ?2 A& Q( X; K0 \( A- i                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 M: ~7 J. b4 e; i
                                else+ W& a6 j3 `, F. O4 A/ k6 ]+ ^
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
( E3 m1 `3 P8 V" i* K7 a0 }                                                to_str("in docking station: \"",?.~.name,"\""));                                3 B) A  C# U! |# Q4 ^6 p
                                end;
4 m5 W. _7 x' H4 n% p: M                        else3 O0 M% {" x3 \) r* L/ U
                                @.Destination := assignLObj[1,row];
1 X! L' a2 v. |: t                        end;                       
/ n( E2 l1 h: D7 W1 U2 u" O( g+ X- k; O                        newDirection(@);
* y- W: \) e0 N/ m                        @.HasOrder := true;1 U- _3 \. x% E3 V. v( O( k. q
                end;
/ K( x+ w1 T& k( W9 T; @        end;, G* W2 F4 U5 t' |
end;        -- of the method
/ B. \1 o3 r2 t* H* @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 O" Y/ G8 ~- L6 B) _, u( A2 [( Q' L) r$ s3 f8 ]4 Q' V0 O" L
这是AGV_putin中arrive的method。, m9 a5 Y, Z4 E6 O8 T! d

" _; ~5 x) F# b# f当到达物料速度越高时,这个报警更多,5 i1 E" |. c# R/ ]; N# P7 u# H- O
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
) J0 B- R7 w) Y' G程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
( ^" E- S$ `4 v3 Q4 V/ Q1 g; y; D0 G: O; I: |6 ~% r- O
另外一个小建议,就是move,所有的move都可以这样# p+ Q2 m4 ?0 c
if not move() then debug end
; G( Q5 q3 M; ?- o这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& g) k* c/ ?: I  K& K& c
plant simulation中的free libraries有AGV模板,; L; `/ D5 S5 s8 x. C  ]5 H
里面也有案例。8 z2 a9 |! E, e5 G; E/ A
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。$ x* M$ ^1 e+ i; U

, C1 W/ s/ z+ Y. q- v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ H( w& @+ m& C7 }& T6 @) x7 ^" m3 L/ C; p% X( E- N" `0 {
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ h. |5 K1 i- g% c! S. V* X( P这是AGV_putin中arrive的method。, d8 D7 L7 @# J: b. u* i+ e

" O; E/ ?! p" s/ i' h当到达物料速度越高时,这个报警更多,
( C. Z: v! M: ]& u& ^: k2 M
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-20 16:46 , Processed in 0.021800 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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