设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8690|回复: 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'
1 E5 a( Z4 M; _*/2 n% t+ ^% z, O" l
is
( _8 {: R7 d' M3 w- G4 U8 ~        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( {& m) v' f# W+ pdo0 j% F; K& A! r$ u
        Lan := rootfolder.Internal.Tools.AOLlanguage;7 v- L( C* U5 i8 z2 Z7 G+ j* F
        if current = @.Destination -- else return1 B/ Q$ f( D& {; |6 x4 ^
        then  T7 I" l$ s: N" K
                @.Destination := void;
# e3 U# ^" _  u                if @.occupied then# c; @' p. [, n
                        part := @.cont;
9 x" q. }* b9 u( n4 T0 s! c# @                        @.transpOrder := void;! T; ^! y9 l, ^' q, A& c+ p4 ]  `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,; P8 E; B- m6 F/ \, G- f! m" e2 a
                                @,root.eventcontroller.simTime);- O! J; x9 R) Z% f
                        @.HasOrder := false;
, S7 W- n$ G# s$ E, ?! k                        @.DrivingHome := true;* X9 C. E) N7 v# h
                        rgManager.tryToStartTransOrder;# k' j- d' W( a' k* E; k
                        if @.Destination = void- m' d, O# `$ b
                        then -- no transport order for vehicle @- F5 f4 d* L% Y, k& n& ]( w
                                @.Destination :=- d: \0 e% y8 V/ g" b# y1 Y& K! R: B
                                rgManager.nearestFreeStation(@,track.~);
  M- P5 N3 i5 T                                newDirection(@);   ! e3 [1 L+ H# }  E/ N. u
                                if @.Destination /= void then1 X$ p, r! X  X
                                        @.Destination.NumReservation :=
; o+ C" H; m, r( _9 g  S                                        @.Destination.NumReservation + 1;$ f1 K: r( ^" p. u! m9 U1 H6 V
                                end;
! e; O. D6 S; V7 h# R                                @.CurrIcon := "drivingHome";
! D) ]3 w5 t# ]# _8 ?: D; q0 d/ N                                @.DrivingHome := true;
5 _3 E+ `. i% P8 z% g' J; O, `                        end;
1 E! a. S3 h, ^& O/ ~                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
/ L  q* c$ o9 P2 V                        part := @.transpOrder;
  Z, ^6 w5 q, l9 i5 T                        part.move(@);-- load part
7 \0 }/ Q1 ^) ^0 {7 y: E. P                        @.CurrIcon := "load";
8 s+ i% o5 R. d- H; t6 O                        GlobalDistObj := part.globDestination;
* H9 g+ h3 a# Q9 S9 g$ L, B                        assignLObj := rgmanager.rgAssignL;
" H8 u4 }% O( l4 z1 Q9 r3 n                        row := assignLObj.getRowNo(GlobalDistObj);) {! Z9 ]. Q! B
                        if Row = -1 then -- since 708 H# k5 \  \& z2 C& X
                                if lan=1 then
( A" K6 ]7 T$ r9 [7 p) |                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 J& I, c. }: U* k  O8 ^: Z                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 i" ~+ `  n( y: A* B
                                else7 @! g2 F# ^1 Z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 F% F6 K5 |3 D6 h
                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ J( B  i( z- a, L                                end;+ v- N6 R; p: _
                        else/ m* M$ z6 |- Z: |- ]# o7 q
                                @.Destination := assignLObj[1,row];  q1 k5 M0 B. Z  _
                        end;                        3 z, @' |$ _$ _1 Y4 z* R2 p. N3 Y5 A
                        newDirection(@);1 y" w. U0 }6 U& k% t
                        @.HasOrder := true;
* p" O8 P3 ^, I8 ~+ K                end;
% P* d* _# ?! W/ X3 ?+ {' d7 ~4 B        end;
3 R' Y% U7 j& M8 J, T" Uend;        -- of the method
% {. y- w: z. d0 j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 {7 J6 k2 P' b+ m; N4 @) E
5 }( R4 X0 I/ ?: @- B& O这是AGV_putin中arrive的method。
4 N, ?8 m1 }; n+ q  \: n& Y
6 i, h9 H; v% U" X& O. m4 @: @当到达物料速度越高时,这个报警更多,0 I5 T# H; p4 {6 A7 n3 R3 Y$ Q
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  S5 d5 ~1 _' q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?# X; x. ~$ K+ y4 I; ~+ D: @
4 @7 _! X( M  Q8 ]0 ?% D# `- @
另外一个小建议,就是move,所有的move都可以这样2 L( T6 y% q' F& \& i9 R- R
if not move() then debug end/ z) I6 m/ q: w" j
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: @9 W4 f' s2 {, D% Q9 X! c: W
plant simulation中的free libraries有AGV模板,! b9 @- K, f4 y8 ~  o% R
里面也有案例。! z0 p- C0 b/ M' v0 v
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
$ W0 K1 s2 _, i+ T# h( {2 j. g) W9 g& S, u: V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! Q  T  J3 P  Y9 N$ l$ g, [
! N* y( J' |) S' i那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
0 M6 b4 _4 j" h0 h! v" N. S这是AGV_putin中arrive的method。4 ^6 }; S" s. N0 e  b, A
; D+ H1 n' c$ z8 X1 R( G2 y8 o
当到达物料速度越高时,这个报警更多,
  f( @5 X, M( m) u
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-20 14:40 , Processed in 0.021177 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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