设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6241|回复: 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'9 E+ h/ h& A* h" ?+ P3 C) p
*/# Q. }3 ?  S+ w- Q  J
is4 U) G8 E/ W# W6 W! @3 \
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! ?( e( \' q# g4 s* K0 J
do
$ b$ B, y* h5 Q, X. K. {        Lan := rootfolder.Internal.Tools.AOLlanguage;) n/ y; Z. h: u$ l2 m6 O3 X
        if current = @.Destination -- else return0 ?& ^% r& f: f# F. W3 C: I* I# F
        then
1 S  C8 b/ j" E  G  l9 R                @.Destination := void;
2 f" q/ p$ x/ c  R, P7 g                if @.occupied then
1 ^# h. c* A# \! q/ |% ~/ M                        part := @.cont;5 @! V' v, z$ Q
                        @.transpOrder := void;: J- t, Y& w% K% C- E: W* _. k
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
) v  T! j0 K6 x/ b9 k                                @,root.eventcontroller.simTime);
6 V3 W$ t: s+ L6 h" U                        @.HasOrder := false;
/ ~1 o- X( G. W' s) h0 h' W% W! d. P                        @.DrivingHome := true;% G" N8 @7 d7 a! Z0 L3 E  ^# H
                        rgManager.tryToStartTransOrder;
0 t' Z1 ~, g4 u& d: g  J                        if @.Destination = void+ |& n+ X6 ~5 C' O  z! E
                        then -- no transport order for vehicle @
6 V) P1 F5 t2 r+ y2 U& N                                @.Destination :=$ X3 S7 |" j1 Z6 M- e
                                rgManager.nearestFreeStation(@,track.~);% W+ V: s" m. S% c( H: N6 X% y
                                newDirection(@);   
8 d4 c  j( w& U, s/ _6 r9 \                                if @.Destination /= void then/ _) \: S& r. B/ `  s4 E+ \+ T
                                        @.Destination.NumReservation :=5 Z* a1 i7 g9 T% _/ @, T5 {% r, M1 T
                                        @.Destination.NumReservation + 1;
- F7 N8 n5 b" m                                end;5 X2 `6 c8 j4 f  ]  |" p
                                @.CurrIcon := "drivingHome";0 Y( @9 b. v) ]+ a. b5 H2 @; W" p, K
                                @.DrivingHome := true;& ^( [, Z& h* F7 N) j
                        end;3 z! |: `& W2 p6 P2 l( P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
) j5 ]- D" K, k" G9 {9 |                        part := @.transpOrder;  m; j0 j8 E+ P0 B! k
                        part.move(@);-- load part9 p5 G3 u; W5 w; N
                        @.CurrIcon := "load";
4 N5 O" C$ D) [) p% f+ n% P& D; K; _                        GlobalDistObj := part.globDestination;
7 }* e: K, e& c1 f* d                        assignLObj := rgmanager.rgAssignL;& @8 @, }& k) {0 x+ V, u1 v5 r
                        row := assignLObj.getRowNo(GlobalDistObj);
. {) Y6 z- ~6 y, u+ I                        if Row = -1 then -- since 70# G0 x; o% m0 Y- @
                                if lan=1 then# i; \) j  B/ E" e
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( H, @' d% ]. b. a$ k6 p, u4 q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
7 M$ a. I8 K. A/ @1 U5 G  o2 l9 y                                else& ~; |5 \3 D5 h
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
4 B4 A) X' @/ @# Q/ l% _                                                to_str("in docking station: \"",?.~.name,"\""));                               
- L& v3 T+ G! a- @7 B                                end;/ Q1 J* R+ Y" ^8 ]$ d
                        else
9 I( ~8 |9 w( c  h. H0 C                                @.Destination := assignLObj[1,row];$ v% P  |! X5 F8 P
                        end;                        ; s1 z% J9 [. I4 a
                        newDirection(@);
( ^3 b5 A  _9 e                        @.HasOrder := true;
, r( \: s) f$ [7 [7 B& E8 K; s9 S                end;2 m  x5 Q6 I. @2 w" B
        end;; W. k9 S8 E8 m# v( R6 @( {
end;        -- of the method
1 |6 E, G' H% u# {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% ^- j4 V6 i- B, s  n5 i8 \: T# j% Q) l2 b1 x9 O
这是AGV_putin中arrive的method。; e% N, g) D% n, W3 h  A7 K9 m

3 c2 a8 R6 b0 x6 k2 p4 l2 c当到达物料速度越高时,这个报警更多,* ]5 x% K, ]' r- f
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ D) R! M$ H3 N. r) j
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# \8 f/ |( U3 @  j0 |7 _( Y( G" a2 T# Z$ z
另外一个小建议,就是move,所有的move都可以这样+ }3 }. b7 ^& }
if not move() then debug end
, F' n- b- f: E6 a: `这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' Z0 o0 B. z: Z% ?' j4 m* v! A
plant simulation中的free libraries有AGV模板,6 X# Z. O# H, j4 Q
里面也有案例。
8 o3 |0 z$ o* D4 ]- {- Z) x2 k我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* ^5 D. j# u$ t: A6 Z# V
. y2 {- K, p; a! t" K: ~# d4 ?; `. ^
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * h; [4 k& i, u. @7 N& y% W: }5 c
+ v0 x: U! O' v. v# W! S3 [( x
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
- Y' B5 }8 m" }4 y0 B这是AGV_putin中arrive的method。
1 Z0 K. Q% s8 T; s4 I/ H
* ?) L) Q9 n; S4 q7 d9 z当到达物料速度越高时,这个报警更多,

  L4 t) J6 j6 D" E. p3 B另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-26 20:14 , Processed in 0.017321 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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