设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6428|回复: 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'
- H6 t0 l9 t( t6 ]*/
! U+ v! g+ @# r2 C& _8 F1 B, L0 lis
5 m" u/ W  L7 d  k        part, GlobalDistObj, assignLObj:object;row,Lan:integer;2 q& x/ \# W; M* d" @2 J% i
do
; F( t' q; }! h. Q8 Q        Lan := rootfolder.Internal.Tools.AOLlanguage;
: u2 C4 ]! ?' |1 T% r        if current = @.Destination -- else return
& |7 y8 L7 C* s4 i5 i6 `        then
3 }% E( O6 k* [0 t; z                @.Destination := void;
/ l* w3 T! _. W6 o0 D                if @.occupied then
# z2 B* ~7 H% B! H2 L                        part := @.cont;
5 Z3 n3 C' ]. b                        @.transpOrder := void;; S) B0 q$ Y- h0 T; W+ [
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 V) L7 ?; F5 y/ Y) h, M/ Y2 j
                                @,root.eventcontroller.simTime);( }! x. y# P6 {  a
                        @.HasOrder := false;
9 e" E7 m" z, o& `2 f                        @.DrivingHome := true;0 ~( X3 b# g! m0 f' @
                        rgManager.tryToStartTransOrder;
9 S9 D3 l8 r1 I% P7 K$ e# C                        if @.Destination = void
# w# Y* k: H' H8 b* _! y                        then -- no transport order for vehicle @3 q1 M! ?; J, x
                                @.Destination :=4 A/ s$ _# K- B
                                rgManager.nearestFreeStation(@,track.~);
4 r2 V. Z- C: U2 J( I                                newDirection(@);   
; u0 Z. g: |# S# r3 ?: g5 J2 g9 M                                if @.Destination /= void then3 S, B7 `/ r3 y3 D& v# f) [/ }- v
                                        @.Destination.NumReservation :=
, [5 c0 E2 m9 k2 c5 ^, p$ Y                                        @.Destination.NumReservation + 1;# R( z8 K% @5 F( R, h1 j
                                end;+ m0 J! f0 l5 R
                                @.CurrIcon := "drivingHome";
! y, T  X- O  s7 k3 C                                @.DrivingHome := true;, Q* i# r( N  v
                        end;
  C! S" R  u# Z3 o2 a                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! L. z! R/ Q! a7 F
                        part := @.transpOrder;
/ v% i9 Y& ?7 A, O/ S' A. Q" t; b  D5 S                        part.move(@);-- load part
0 `, ]( m( d8 g3 j2 I# S/ k! w! u                        @.CurrIcon := "load";1 O. S: b3 m, P; @
                        GlobalDistObj := part.globDestination;
# o+ X6 M9 E: {% T: h3 M4 G  M                        assignLObj := rgmanager.rgAssignL;; K& \# w2 |! Q$ P6 z2 @' A3 K
                        row := assignLObj.getRowNo(GlobalDistObj);, d7 {$ N2 [* d8 N) h. R
                        if Row = -1 then -- since 70# ~- Y. x! d2 M* k4 L
                                if lan=1 then
7 @! u% T: p" P+ }+ D, D                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 C+ I5 @  z! Y  `0 d                                                to_str("in der Andockstation: \"",?.~.name,"\""));
* V/ V* y  @/ {; V) `$ N! G8 h5 K                                else
0 F. a, K2 \" m8 m) J! S                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),* D. ?# p+ b( A0 h) j/ a' C2 i
                                                to_str("in docking station: \"",?.~.name,"\""));                                2 ~+ W  V  a" m* X7 T" G
                                end;2 B4 \2 ~" a8 E! ^5 L: V% F
                        else* ?' P. L! y3 R. ^8 C
                                @.Destination := assignLObj[1,row];7 @0 N4 o) k) n; X& Q+ P% s
                        end;                       
4 E( ~3 k" E# F+ G$ f% ]                        newDirection(@);7 f, R3 q( ~6 M, S% f1 I0 _2 g
                        @.HasOrder := true;
+ j0 {, f7 ~8 d2 F                end;8 m8 Y9 q4 j7 q) a$ h7 G, a
        end;
1 O, J) P' U0 J* T+ @end;        -- of the method
3 P5 A* G: p$ {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ j' d# J% U$ H2 S" ~. c* y

: P1 |1 u* X* W9 @3 z这是AGV_putin中arrive的method。
6 D  U6 d1 G: {/ S& ~9 q: E+ @$ E2 N5 q) }8 q6 Z
当到达物料速度越高时,这个报警更多,6 E9 E1 u4 r9 Q! g. ]- `4 i
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) P5 f( @' Q5 m; a' |0 m  M" e) b
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 b* U: c) c! B# D4 v* l

% c7 I* e2 R8 n另外一个小建议,就是move,所有的move都可以这样
+ E+ M/ p+ e, i3 I" qif not move() then debug end
0 T& R2 ^5 O! V; v! N" M1 P这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。) J5 L/ P# s# e6 Z/ G  u
plant simulation中的free libraries有AGV模板,
" K3 D' ?  X1 k6 X3 z% p. D里面也有案例。
9 ]+ U5 W4 k: z0 _4 t我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。* s; z+ ^# d( K! O* ^. t+ h) E- v& Q
  U6 M( d  u7 D& h6 u5 u
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
# m6 |8 p0 ]. y& T( n  \5 q- @" ]- W/ p% P! N
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 8 C9 w/ `# k* D& d- y/ Q5 w
这是AGV_putin中arrive的method。
1 \6 B, F4 |3 |) l2 S7 c6 w
4 m+ ?  v& @( F6 ?$ p0 c$ z当到达物料速度越高时,这个报警更多,

% s( F) k4 e: c) h/ W另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-6 02:00 , Processed in 0.053764 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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