设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8738|回复: 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'
6 c& P7 i  S; ^( I7 M*/# ^, o0 g/ W" {0 @9 a  i; V
is2 ^- |8 h4 p& r1 [8 v
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
0 U* N7 y0 Y! m8 F5 l# ]do
, Y* E# s" o. F        Lan := rootfolder.Internal.Tools.AOLlanguage;
' f* ~8 r, V7 q. r1 G        if current = @.Destination -- else return/ u2 h" k; j! f
        then
. n) ?/ f/ y1 w5 R1 T( }, O                @.Destination := void;
9 M% r0 J5 L% Q8 L2 D6 w3 q                if @.occupied then
: F- m' Q) g5 B/ U' n& D                        part := @.cont;
% O& d7 d$ c  \# G                        @.transpOrder := void;
2 o% @6 u9 K+ q# p5 ^                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 ~2 ?) h8 |6 O6 Q# J                                @,root.eventcontroller.simTime);: m: K0 B3 s# j. K; z2 j" ~% i
                        @.HasOrder := false;
' ]& y4 Y+ ]: {; F+ k) z3 a* j2 w                        @.DrivingHome := true;
3 U) Z' n& u3 D. m6 G; A                        rgManager.tryToStartTransOrder;8 E6 L. Q! X9 h
                        if @.Destination = void
" A% j$ G- T' I4 B6 g- `4 ]                        then -- no transport order for vehicle @
, V" e5 s/ @% z) {  D  N& \0 s# K                                @.Destination :=3 f- h9 w! e" r0 D% v% m* |9 L4 E
                                rgManager.nearestFreeStation(@,track.~);
; s5 s( }2 x. l+ g                                newDirection(@);   ( y) F* x: _7 c# }1 F% \9 L
                                if @.Destination /= void then( b8 {* P0 W: Q( X1 G9 G6 T
                                        @.Destination.NumReservation :=! B3 A9 h/ t  r1 ]' s" Q2 C
                                        @.Destination.NumReservation + 1;
# E" U3 G4 h2 t8 Z                                end;. Q. D( b2 Z/ W9 b4 i
                                @.CurrIcon := "drivingHome";
# U7 O- Q3 p" u                                @.DrivingHome := true;# n9 `  x5 F! L  n: e" j& m
                        end;3 o. q* u! ^( v5 d2 w) ?" @( A
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
9 _+ `/ ]& Z) V                        part := @.transpOrder;7 d$ A; b4 X2 h4 r2 e1 u  n' c
                        part.move(@);-- load part0 k- Q5 p4 `9 o# D" X6 l0 G
                        @.CurrIcon := "load";! l4 a) K  K  g9 ]" k8 C
                        GlobalDistObj := part.globDestination;
2 @) D1 N9 {$ ], p/ i2 p6 \                        assignLObj := rgmanager.rgAssignL;- f4 u& {. e* V
                        row := assignLObj.getRowNo(GlobalDistObj);) H( i# V/ O2 i  E4 T8 D
                        if Row = -1 then -- since 70; x5 y* o7 O' b* V' y9 }9 i0 V. n
                                if lan=1 then7 f0 T/ E% n4 I: b) f% z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),, ^$ p6 x# k; `4 T# Z5 I
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
; b+ B2 k; E! s+ I5 o' {7 c4 o                                else
" [: O0 B% \* y( \  I& A' z0 ~7 O                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. {7 \1 x- Z$ e: S5 ?
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 d1 G2 [9 @5 m! o. z7 @                                end;/ T) E9 P  Q0 `, W
                        else
, _1 a- _/ n0 Q+ e& X                                @.Destination := assignLObj[1,row];
8 o+ m- o( G7 \& b% o) z                        end;                        9 x; q) c: e" F
                        newDirection(@);& |& [/ E$ x& e  ?0 E% U) L
                        @.HasOrder := true;  z1 B( _, G/ c  R! {1 R4 D! ?! D
                end;& Z: d9 n: S, V; q' D1 e
        end;* H3 q7 Z6 `* H4 P* }0 ?
end;        -- of the method1 E4 q+ Q: D: ^9 B% S# F( k! @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
2 p2 C- C# ]" \: S4 ]8 _- r- E& ~  |4 o% v9 E5 R
这是AGV_putin中arrive的method。
; _  [: {+ W! d8 r2 U3 |& a4 ]3 `9 ?" L9 Z! q  b( t5 _2 z3 y
当到达物料速度越高时,这个报警更多,/ S! k# C  o0 R! t# `
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
1 ^; V7 _# Z' Q. J& `0 ?( M! b程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# j$ f) @! s& e" X  |
3 A& O2 n+ I" h- F* V3 S另外一个小建议,就是move,所有的move都可以这样
' \7 {3 q! p3 U9 v3 O3 tif not move() then debug end
* w9 L! f1 T% p这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" {0 q" s- @3 ~2 Z/ b# `plant simulation中的free libraries有AGV模板,
3 {' z# R/ s' b/ S- ^; q. P5 u) a, d2 W里面也有案例。- J' e* _* k- _5 B; K. |
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& \# P8 p9 Y- l$ L* y# a. u

. M$ l9 ?3 I( T9 w: c0 k  E我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 N, Q) [  r9 X
) E2 y1 r5 I- w3 R5 [. R4 C, o0 x* o
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 7 U( P$ B( L, e
这是AGV_putin中arrive的method。) ]& [7 |+ q5 P0 F' O" V+ r
8 M) P  b; v- W$ f, P  C+ C: H, ?
当到达物料速度越高时,这个报警更多,
9 d) N# M# q, }' v3 K9 S- H
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-23 14:20 , Processed in 0.020270 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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