设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6733|回复: 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'" \" {  j( \  \  f5 }3 r" u
*/
; L* U& C" M8 X8 j  J4 `is' `/ ^. M$ m: \! U7 t3 x
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 W  S7 l4 h1 X
do4 V, |. A. g9 @* N. b
        Lan := rootfolder.Internal.Tools.AOLlanguage;
, u$ D7 A7 `) p4 J$ ^) U        if current = @.Destination -- else return
# G, O. |0 ]! E; G% m0 T        then
8 Q3 F, E( J5 ?" P+ `& ^                @.Destination := void;) V. T, h, f' D% ^
                if @.occupied then
: K, ^0 A8 g, g* g- b, Z5 T                        part := @.cont;: F, n  |, P( @. |8 S
                        @.transpOrder := void;
# s& s/ X" q: ^% [; [                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,3 _, e4 n7 W6 x2 |! h
                                @,root.eventcontroller.simTime);
* G: T  e: q" a( o. M9 h: v                        @.HasOrder := false;
9 _/ M- U  k8 W0 `                        @.DrivingHome := true;
3 N  x8 Y( P, R; I! _4 q( k7 H) V7 v                        rgManager.tryToStartTransOrder;, _" ~+ d! ~* F0 B3 ^
                        if @.Destination = void
& w) P8 }; l, m4 @  C                        then -- no transport order for vehicle @7 S4 |5 l% y, l4 t8 U6 \7 ^- v, g
                                @.Destination :=  i- v6 @+ F( d
                                rgManager.nearestFreeStation(@,track.~);( u9 \5 }! z5 e/ l% ^4 N7 |
                                newDirection(@);   
: U' x/ s& q) k4 ~0 {2 d1 m                                if @.Destination /= void then
  a! }7 ?6 L) [* Z, M7 \4 }* o                                        @.Destination.NumReservation :=
  r" N( {  \2 U4 p* H                                        @.Destination.NumReservation + 1;. Y+ R# `' n& r+ X9 p0 P+ D& g
                                end;
( d- T; y3 A: L/ _9 M8 N: |                                @.CurrIcon := "drivingHome";: ]5 U+ h) T& u1 q( l+ e; Q. q) h
                                @.DrivingHome := true;
0 E4 M) b  n2 ~# O4 H  N& a                        end;8 [, W7 y: M5 w2 Q3 F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station9 e* R' f- [' r
                        part := @.transpOrder;" r7 J8 p3 S" ?/ t% d- p* n
                        part.move(@);-- load part
  _7 K" Z7 t4 K                        @.CurrIcon := "load";
: ]# q# t; l9 U$ V- F7 q  |% a, z                        GlobalDistObj := part.globDestination;6 F6 e4 S/ v$ h& L4 U
                        assignLObj := rgmanager.rgAssignL;0 T8 ~' {5 k* `2 q5 p
                        row := assignLObj.getRowNo(GlobalDistObj);6 j) c* \/ y$ Z; a  N( Y) v
                        if Row = -1 then -- since 701 u2 C+ \# \2 [" D
                                if lan=1 then
$ N" u/ S5 E8 u. v0 j8 D6 s6 B                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 W  l: X" g$ |$ D' z                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* {8 ^& s* V# v4 Q! m                                else* j9 |% D' I/ @# G, B! d; B; w
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! i& d1 |# {+ O- d3 W5 o$ L                                                to_str("in docking station: \"",?.~.name,"\""));                                9 N0 j0 |$ b/ O( t: f  i  `) ~
                                end;
, m2 R4 h. i" H4 G! x                        else
& ?, e. i' B1 X4 C. D                                @.Destination := assignLObj[1,row];6 m3 j+ }/ U" S
                        end;                        & ]/ e( V! e2 l! `9 ?8 k
                        newDirection(@);
6 l2 t2 B1 Z3 G, u% V. y3 I                        @.HasOrder := true;
9 ]4 D% e5 e4 g                end;
. H- v* ~0 y. w- m6 g        end;
# E$ j+ B* J1 c# Oend;        -- of the method- i5 @- q  Z5 r" S8 a* d) s1 \9 z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + o' Y  r5 [/ ]) Y" f6 y! Y( ~) p* ^

( ?3 J: i) M9 x这是AGV_putin中arrive的method。
3 C, L7 w9 n' F7 U8 f; O
7 G1 n  y) R; E- \; t; }当到达物料速度越高时,这个报警更多,8 g- K( {1 w$ |/ s8 p/ `0 n
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" g' w, g; ]: O( G
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
8 m1 a3 Y9 Q% M) t' L
2 y* s3 D, i3 U- x' f* U另外一个小建议,就是move,所有的move都可以这样( {2 R0 T/ Y, l( q/ [) V' h
if not move() then debug end
; }+ l# i1 [* @" Y3 E3 Y5 C这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
1 ?9 w9 Z/ R' x3 U$ E* F3 ]plant simulation中的free libraries有AGV模板,7 S2 v- N- c2 q5 b
里面也有案例。
1 ?/ k, {" N: e/ T6 [+ }我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! e: @! J; n+ p6 x0 v% n4 M  N( }
# `; X* o4 A, f. I' }7 x: `# R; X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
0 p5 x; y. G6 L5 i" z/ N+ y  ^
+ v' o3 ~: c0 u- B那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 - I  |% y6 V1 ~6 j0 e
这是AGV_putin中arrive的method。
" [- c, E2 L) m1 V
3 k& W2 c$ S7 b0 J6 S1 U2 h当到达物料速度越高时,这个报警更多,

+ N" h3 }/ L  a! \另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-23 10:38 , Processed in 4.429854 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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