设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9711|回复: 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'/ }8 C, g7 G0 s
*/
/ l( z7 b! p5 \is
5 V5 B5 E( G6 e: B        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
/ C  P2 E. O! T+ D& I. d" z' Wdo
! n0 ~; Z4 t# w. R: o8 z# X% B        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ H3 j- M5 d. r5 a        if current = @.Destination -- else return
+ i4 I. W& e: Y% S        then% H! b9 I( _7 b; k$ N
                @.Destination := void;
  V1 ?+ e6 u/ ~) V5 l9 H( H* n) y                if @.occupied then
1 `5 Y- ]+ [2 K5 E5 a& p                        part := @.cont;
3 t( ^5 ~3 e$ j3 }0 e                        @.transpOrder := void;2 r. g$ o7 |  I# l% v' w
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
; j( U& a8 ~" R; }3 A" ~0 d                                @,root.eventcontroller.simTime);4 N$ v5 i" B9 K$ O5 v3 G5 F" P  f  g
                        @.HasOrder := false;& w* r1 l+ `9 i0 |  n5 P
                        @.DrivingHome := true;3 d# K' S2 m9 w; @% ?! i
                        rgManager.tryToStartTransOrder;/ ]& g4 s0 l1 z9 H! K! K+ [% c
                        if @.Destination = void  Y7 f2 x4 G/ |9 x3 F; c, y. v
                        then -- no transport order for vehicle @& q* c7 h: V  a6 u( K' j  J4 y
                                @.Destination :=- P3 ~9 ^: r" F: N* n1 p
                                rgManager.nearestFreeStation(@,track.~);
% a0 L" G) h* I- c! ?                                newDirection(@);   " ]6 v# U6 Q4 s( ]3 t4 k
                                if @.Destination /= void then
9 u; T* j5 K9 K! o; j: P                                        @.Destination.NumReservation :=$ _; U: O; O0 ^1 a2 s% ~% ?  P
                                        @.Destination.NumReservation + 1;) f6 G% k5 d8 y
                                end;" c, C# P; p, P+ H
                                @.CurrIcon := "drivingHome";
. `3 Z$ c0 d! F                                @.DrivingHome := true;$ {/ G2 [% v# `; ^& G
                        end;9 g4 Q) l9 _$ ^# h7 U0 o: T; C
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 q! p# J9 K4 C1 h5 [                        part := @.transpOrder;/ j1 ~" {& B# x
                        part.move(@);-- load part
) Y# z7 P, S: z: f* W1 {                        @.CurrIcon := "load";1 M, a  e" Q, E  j
                        GlobalDistObj := part.globDestination;) c9 \8 [  s, i! B8 u2 J
                        assignLObj := rgmanager.rgAssignL;
$ {4 W) O# {' f                        row := assignLObj.getRowNo(GlobalDistObj);; V/ n& k  H* v$ X5 f- G
                        if Row = -1 then -- since 70: z& U' N$ C' ]. B) d
                                if lan=1 then" P5 _& {: d  O: F3 x
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),7 n+ @1 y3 t" N, I. L
                                                to_str("in der Andockstation: \"",?.~.name,"\""));( M5 `/ P7 O6 M+ k
                                else% P- q( ~5 r$ J" m" A8 K
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),+ T. n: A' g0 k7 y
                                                to_str("in docking station: \"",?.~.name,"\""));                                # E; P  {5 y1 y) R9 o
                                end;
- f4 o0 ^; ^+ P" `( x                        else* T5 j8 P( @0 I$ F; a
                                @.Destination := assignLObj[1,row];; |  [* `# X6 D# X$ r2 G0 Z
                        end;                       
- k( o+ u3 u) V6 e+ m' i# w+ H                        newDirection(@);
% w4 h6 S& ?: g5 a3 P; k                        @.HasOrder := true;8 M+ q/ v% T2 V& |" k
                end;
7 _7 k4 m% [) B; l        end;& _0 ^* c1 m3 c( p
end;        -- of the method1 H$ i* o+ f- K: C6 a9 P" ~* K. u" G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 8 M) ]  e( l) @! ^, Z& v

& W3 M2 V% r) N2 ^+ f" t这是AGV_putin中arrive的method。
/ O  N  _4 ^: R7 S" U1 A0 V* f% {! o1 k( f" S' q
当到达物料速度越高时,这个报警更多,; y6 ~$ l9 s4 ]: G2 \9 d9 G
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. M" b9 ~1 K* `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 I7 i. n2 o9 C. d! [, U$ v) u) W' e6 |1 J
另外一个小建议,就是move,所有的move都可以这样
$ p  R) u. U! j# w! qif not move() then debug end
: v. K4 U4 Y$ D3 Q" r% ^这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  U, {. t$ x3 i. O% {
plant simulation中的free libraries有AGV模板,4 \' ?# T1 A  f  E$ ~
里面也有案例。% @1 D% I  O$ U" ]" X$ F& ~
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ _* G$ V! w0 Q
' M7 p! J/ K+ }& v4 s+ z我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 ?3 `! c+ o7 o# P. k- M3 u3 z; W  b5 {4 Y# @
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ' d7 C0 h& c, e1 c/ F- ~7 {
这是AGV_putin中arrive的method。
0 |3 e' |% y; M4 \$ Y  ]: @8 q: Q
- R5 d3 ?3 I; f% w1 T$ S8 H当到达物料速度越高时,这个报警更多,

/ v/ q' E3 m: _& Q另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-19 15:49 , Processed in 0.019330 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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