设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7187|回复: 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'" l3 c8 F# b0 w) O
*/
% D5 l4 m+ i$ R( Cis
# d( a, x' z0 ^/ \) z* ^        part, GlobalDistObj, assignLObj:object;row,Lan:integer;" M- O/ ~) p& ?6 {
do/ B" o/ F. F6 d
        Lan := rootfolder.Internal.Tools.AOLlanguage;6 z+ e4 q2 O  a
        if current = @.Destination -- else return( R- r% z" _2 r6 n
        then
. N/ B2 w6 C7 R' c5 |" u                @.Destination := void;
5 |/ ^9 x; f4 j1 x; H                if @.occupied then
' I. c7 T8 q' d                        part := @.cont;
& f% D7 K) j' n+ G                        @.transpOrder := void;
( i' R) m0 E# F* e& w                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 M& x6 N0 c5 f
                                @,root.eventcontroller.simTime);
, k$ ]$ V/ q: q9 M                        @.HasOrder := false;/ W; M2 b4 B: F; b- S" Q. g( m6 E
                        @.DrivingHome := true;
* b( M; X& Y. c/ Z: }9 J                        rgManager.tryToStartTransOrder;  Q/ H0 v3 W7 f( ~
                        if @.Destination = void
+ m# f: G+ Q$ a7 ^                        then -- no transport order for vehicle @
' ]7 A+ D) f( O% O. K$ p3 l                                @.Destination :=
, Y1 I9 j7 y, Z" }3 a1 A! w                                rgManager.nearestFreeStation(@,track.~);, Q$ Q  C+ ^. T- u1 W
                                newDirection(@);   " d5 z% h, d/ o% {
                                if @.Destination /= void then. Q7 a% K+ X9 h3 \2 e
                                        @.Destination.NumReservation :=) B7 C/ [0 S1 O# g
                                        @.Destination.NumReservation + 1;
7 f& Q0 f( j3 q" ]4 C                                end;
, V0 Q6 S# e$ |  E                                @.CurrIcon := "drivingHome";2 k/ u% }8 D$ H5 v: e" {" a! I
                                @.DrivingHome := true;
' ~. B" L. {. K& [( r                        end;
/ w1 R7 s( k! f, t" v: w/ ]' Y                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
6 C. S; I0 ?: t3 H) \; m                        part := @.transpOrder;( F8 _% G9 U. ^, P* d
                        part.move(@);-- load part3 |, R- c# n: t, j
                        @.CurrIcon := "load";
# X  ?: p. R5 \: @- w3 Z                        GlobalDistObj := part.globDestination;
5 W& d1 p7 @8 k" G0 x                        assignLObj := rgmanager.rgAssignL;
0 u8 @; m& V  `, r# H                        row := assignLObj.getRowNo(GlobalDistObj);+ X: i# w9 _: G' A: a
                        if Row = -1 then -- since 70
9 e7 F! s* x& A4 u# L' M/ s& F  U                                if lan=1 then
# T- r. T9 {/ Y) s                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
. [+ H5 s1 s% J5 _- V' H8 O                                                to_str("in der Andockstation: \"",?.~.name,"\""));
  _5 D# d, x& y- [                                else
# U# `  F7 G; y+ B0 x! L. v# m                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) a/ f0 ]: z" I. R/ ~4 x
                                                to_str("in docking station: \"",?.~.name,"\""));                               
7 q( K* o/ v9 q  O* L! o0 a7 H- L                                end;
' K. f/ _6 u- y                        else
4 [0 Y& ?6 T" F- P7 P                                @.Destination := assignLObj[1,row];
+ B* B, @; k" N1 |* \4 c( }3 J                        end;                       
' w  Q  |2 w# I0 M: p; x0 w. F                        newDirection(@);
; {4 |6 y: j; h7 y( `9 C; Z                        @.HasOrder := true;
5 @. n+ X, p" Z, l' a) @8 s9 S                end;
# V) ~8 U, r8 U- U* T% @        end;
9 `' C6 b# `8 C. \* P" hend;        -- of the method
2 q1 u9 x5 p4 k( m; R7 T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 s/ B( Q! g. u$ z; H3 W! X% o1 V8 x$ P
这是AGV_putin中arrive的method。7 d' ?; b! r/ S, m7 D' I/ c2 j
5 o0 e. o% A1 r  L  s4 @
当到达物料速度越高时,这个报警更多,2 D, S1 q6 i: E5 o+ f6 }
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
6 e1 `' t0 Z, c/ |5 M( j. ~0 ]' G$ k程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
- R; u6 v0 m/ Z5 t, k9 g$ I
4 p9 d7 k& f2 S$ A* V# R* d' w另外一个小建议,就是move,所有的move都可以这样! O3 c6 C1 u% B
if not move() then debug end
0 G+ \" I* c" [! V& Q+ O这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 _" Q& F1 U' q9 s% Q5 T9 S
plant simulation中的free libraries有AGV模板,
4 M. X. X' m- m1 O5 U! D, L里面也有案例。
- Y9 Q" u7 ^/ Y, m我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; r2 B5 t5 g) C* ~% y4 y

# ?/ w* Q% M! u; h# S# A4 e我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 ; w, c0 D- c2 Q# M. {5 Y6 ^
/ W6 i* W5 D  |* C* a
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
+ n" ]9 H- v$ ^& X* s: o这是AGV_putin中arrive的method。5 m* Z* |; E4 @# ^0 o4 K

( s  n( E& w5 E  D. G当到达物料速度越高时,这个报警更多,
7 z. Y& k8 H" Q
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-25 16:47 , Processed in 0.019021 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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