设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9454|回复: 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'! N& _; `: O. A' r5 B1 c3 T
*/, r( L4 O! U) V/ X) `
is
3 p5 ]: F+ `$ |& k5 s' ?8 a% O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;9 j) E. I4 `8 V5 L  s0 C. g
do
3 X7 I; U, A* M6 S' n9 Y        Lan := rootfolder.Internal.Tools.AOLlanguage;
. ]! Y9 O  Q/ j# O/ Z# R* M) j        if current = @.Destination -- else return! A. H" H4 [' r* ~4 w
        then8 `, H9 t0 |7 o' f6 Y) b- i! _
                @.Destination := void;1 L# v$ {* b' L: @, `" {$ C
                if @.occupied then" e  m+ T, l$ q$ A- C& e5 c
                        part := @.cont;3 L) H+ |+ Z6 o& R3 ?
                        @.transpOrder := void;% D# N4 Z% O3 s" P1 D- r5 ~
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,6 p7 M" t5 r# w
                                @,root.eventcontroller.simTime);
, H6 i3 t7 D$ m2 c0 K% \                        @.HasOrder := false;- O% L, z# Y  l! w% U. R. U
                        @.DrivingHome := true;
7 ~. L1 f& c' }/ S; R! f+ Q                        rgManager.tryToStartTransOrder;/ b. Q4 E# Q1 q, {5 v0 A
                        if @.Destination = void
4 ~# K4 _, v' f5 I  N                        then -- no transport order for vehicle @8 Z, V3 _* Y# z
                                @.Destination :=0 z- k+ B9 z& d6 Y+ H8 S
                                rgManager.nearestFreeStation(@,track.~);0 I; X3 o1 Q0 p
                                newDirection(@);   ' S3 O: B6 {' C7 x
                                if @.Destination /= void then
4 C/ i& a- I6 c: a! X9 G3 k                                        @.Destination.NumReservation :=
2 V+ E+ `/ G' [  y                                        @.Destination.NumReservation + 1;/ S- o! p# `4 A8 t- ]) X
                                end;
# e' Q% b7 X, k8 h/ Y                                @.CurrIcon := "drivingHome";# p! c; t6 z. ^9 u7 i
                                @.DrivingHome := true;4 V* t) D& v: O- G' d
                        end;
4 r! e! I0 |0 j                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 ^$ Z* E/ C& m! X+ H8 A9 C9 l) J( B                        part := @.transpOrder;3 R5 b5 [& D& X5 b0 r. x
                        part.move(@);-- load part
/ B9 g; w! \+ Y' B                        @.CurrIcon := "load";
' r- j( |2 m9 \' ]& a                        GlobalDistObj := part.globDestination;5 C: D3 i) G, n+ K9 ~
                        assignLObj := rgmanager.rgAssignL;
0 U  u: b& D- |$ i, a! i7 X$ k8 u                        row := assignLObj.getRowNo(GlobalDistObj);
" i  D6 h* f3 D/ Q2 G                        if Row = -1 then -- since 701 {  e4 S# ?# s/ v
                                if lan=1 then
4 r1 u! w; x# {) b  k                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 ?% @, L( S! v+ D; M. q! c9 s
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 W1 l. i/ d0 [0 D# T9 N                                else
& S0 d. J: M  r                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),! S8 z( V* n  |  [$ t
                                                to_str("in docking station: \"",?.~.name,"\""));                               
' M* O) s" }  N6 z/ l                                end;
4 j& ?  b. `0 r/ j. i, z                        else
1 j) Z0 Y9 C4 m0 }                                @.Destination := assignLObj[1,row];9 G0 i" c2 V) d
                        end;                       
1 s6 j2 f  ?: F- P5 j4 ?5 A+ W/ w                        newDirection(@);- l$ f* s& O8 [' T
                        @.HasOrder := true;8 J9 X/ k. }* ^  u0 |( z* M
                end;7 c4 n9 c. }" A" A" A
        end;
4 T4 g" R# i8 ~* \1 s. m! x) j2 Vend;        -- of the method
+ ^# E) |5 M, b3 L0 y/ S$ |
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 0 X4 X: z. Q* ^) q
3 T- \! w: {7 h6 j# K0 P
这是AGV_putin中arrive的method。
5 H( {( I5 [6 \. X( e2 \& }1 K  S* Q8 R) {$ R
当到达物料速度越高时,这个报警更多,! i, L7 _1 g* F* B/ ]
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. l% s4 K( L, N2 s4 ~$ S
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 Z4 W6 i' [& @+ Z- v2 K- W1 l
( v( Y/ W) x: H9 W另外一个小建议,就是move,所有的move都可以这样" m. a/ e# v; F8 y
if not move() then debug end. I4 j5 T2 t( \& `8 d! T& s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ Q; c$ b, n+ \+ v/ {
plant simulation中的free libraries有AGV模板,- W$ Q; \* f  [* F
里面也有案例。( A9 X/ H& y* d( P. r# S
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% E% ^) O- M6 L: b1 L
/ r# ?- S! C3 ~4 T9 L( N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 r& S( s+ K$ P% S
1 c- S% C" [$ z* X7 P% a* P4 d9 d2 I/ v
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 s- _/ x/ f- H" s: Z' S这是AGV_putin中arrive的method。0 w$ T3 M# ^  }$ _, B$ C8 b2 @' X

3 e: i# r" b5 E. @" H1 n; I% g8 p当到达物料速度越高时,这个报警更多,
# J* J! n6 `& w  n
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-1 20:42 , Processed in 0.020817 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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