设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7089|回复: 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+ c; I- _1 q8 g) w, Z6 h
*/( A+ n; e- [4 x1 _
is
& `1 U' a8 F8 t; B* ]7 F! t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;3 @% M, R, d4 I- L: l7 ?
do" [2 Z& y  Y- s. B# y5 k) X
        Lan := rootfolder.Internal.Tools.AOLlanguage;6 p" M0 s* N: W9 k5 J# w( g0 }
        if current = @.Destination -- else return
% A: D  p6 P, U6 T+ c        then
+ V. A2 W; w  C8 Z7 L& Y2 a9 r                @.Destination := void;  w; e& X' s- |$ b
                if @.occupied then+ e5 Q9 e8 R- z: m7 A2 s2 }
                        part := @.cont;/ X" p; M+ m4 W% I
                        @.transpOrder := void;2 \+ \2 r- {3 Y1 G
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 o5 ]8 g* T. v" b                                @,root.eventcontroller.simTime);7 V5 T( R. R. g7 m- w2 Y
                        @.HasOrder := false;
4 S. ~$ d6 w: N                        @.DrivingHome := true;' m% X2 K, N$ }' [* ]! a
                        rgManager.tryToStartTransOrder;$ Q- p) i2 B/ T  D# l# ?3 t
                        if @.Destination = void6 b8 q) [7 |$ h* Z
                        then -- no transport order for vehicle @# C7 C6 s& e# Y3 m9 ]2 M1 Z
                                @.Destination :=
1 S, ?" W& @- Z8 t. i- j* t                                rgManager.nearestFreeStation(@,track.~);8 B* j1 U. G: \# q7 h& f4 R" f+ |
                                newDirection(@);   
; z! x$ M) _& o5 p) U: \                                if @.Destination /= void then
) r- s& S( R  g7 k                                        @.Destination.NumReservation :=
/ \# L" H# I; S                                        @.Destination.NumReservation + 1;7 u- F7 W. w) _( f  V4 Z5 b4 z
                                end;  X3 u0 \( ^* Y3 N) R/ s
                                @.CurrIcon := "drivingHome";
; T$ J9 ~" K( b7 M+ C/ E# }                                @.DrivingHome := true;
+ s* M, n: Q; i- z$ `, U" O                        end;, G$ L3 W5 K* q  z
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' Q" i/ A1 K! e7 L# n. D; M) E
                        part := @.transpOrder;
& K6 O% M2 W; e4 a: h4 Y4 j                        part.move(@);-- load part3 ^4 p# u* C- ?; m3 f. I1 d% w9 g
                        @.CurrIcon := "load";; Z5 V% S: R; y' G" X, ~
                        GlobalDistObj := part.globDestination;
3 p7 _0 j/ c& S                        assignLObj := rgmanager.rgAssignL;
8 O. j5 z- \. m/ u+ F7 f                        row := assignLObj.getRowNo(GlobalDistObj);
* b, D9 E) _* X                        if Row = -1 then -- since 70
( Q' w' d0 t: `8 M8 g- z9 }                                if lan=1 then
6 Z1 P7 [# B1 ]" b- D) H                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),: q7 C! s% R$ q* ?" ]
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" j5 x: V1 I& ]8 X+ {: P. p6 j0 G                                else
, K2 p' `3 \; X/ C2 t$ L8 ?                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 Q% k" Z" w& v                                                to_str("in docking station: \"",?.~.name,"\""));                                " Z2 Q' ~) p$ b; t1 [: I
                                end;$ M, g: }0 a8 _9 h1 v
                        else
9 I& \$ B& J, Y. l7 ^; q- f                                @.Destination := assignLObj[1,row];# _- S: V% o# O( T  s" }/ `
                        end;                        6 p) r. Q8 @; i. q4 X: q$ W% X# y
                        newDirection(@);  o1 ~* D+ `: V, l0 W" @+ i
                        @.HasOrder := true;5 V. q0 m2 J0 R
                end;7 a  V% d% F% o9 t$ X
        end;
# F* ?/ z: x" h/ f6 @end;        -- of the method
# D: H4 k$ Y. ]0 f6 b) [
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 }% W, f1 L' @- p4 t9 I) W
1 }5 y# ?6 @  ^, d' y7 l0 @: v) B
这是AGV_putin中arrive的method。
$ K. ^6 G6 i6 m) h/ a$ s3 o
+ S4 x# ^5 v$ a当到达物料速度越高时,这个报警更多,6 q0 U; A( M3 v6 ]; R' v7 i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。" w( a0 U! q( o! N/ m% c4 P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 V) V8 i0 u0 C

* x% N! k# O. R. ~, |: e* t9 g另外一个小建议,就是move,所有的move都可以这样
2 d( S# t2 L8 c6 r( P  R' t1 dif not move() then debug end
4 j; i: b, X) W+ L' d7 h% O1 B这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
$ p0 _3 E" O6 l$ s$ m; ]7 aplant simulation中的free libraries有AGV模板,
2 {7 w: e4 _* |里面也有案例。
" z9 @9 m, F2 n" T8 b2 o我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# s. O8 _" }0 N, ^7 z$ ~8 d) g$ y9 b2 x

- R4 H: ~2 x# d  K7 U, o$ a7 Q+ j我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   Y( q" X$ @9 f- |- h
" N  @# y4 u5 o) x* c0 [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 J: H4 ^; S3 k8 S& G# `这是AGV_putin中arrive的method。
. K% D8 i% j$ u8 s* X5 O& F& }8 G7 U% f3 U0 \# A
当到达物料速度越高时,这个报警更多,

, @) m. e- I% C, o, G. z1 ]另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 12:30 , Processed in 0.023843 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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