设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8066|回复: 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'6 U* u4 H: ~' ~% J- F
*/! m; f+ Y2 N4 Y6 S- Q
is
4 a% V6 r; v  C        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ A5 c- }- `5 W9 c0 @% `
do
6 q# `+ k$ `) b- C. I; h        Lan := rootfolder.Internal.Tools.AOLlanguage;
" W) [9 Z  I) ?+ a; k$ e! l/ P5 r  w; T        if current = @.Destination -- else return
0 R5 b* u8 p9 w! O. C% i        then% q! v' d  S9 e' r5 ]0 E
                @.Destination := void;4 p: q! g6 q3 R3 @
                if @.occupied then/ s6 e# {& W; |) }  T  Q
                        part := @.cont;
0 C5 ]/ y6 ^* A5 ]3 M                        @.transpOrder := void;6 V% R9 Y* ^0 F5 A# U5 u2 T
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," b; H* ~2 z$ T$ _* Y; R3 q' M
                                @,root.eventcontroller.simTime);
' v, D! D4 B7 w% p- H2 j                        @.HasOrder := false;% ]) d% z4 C) E3 K. B  U
                        @.DrivingHome := true;
. Z) f, v1 O/ H8 t0 J3 Q3 H0 J$ W                        rgManager.tryToStartTransOrder;
' s" v. F" p$ }6 @                        if @.Destination = void
3 b$ ^2 n/ d. t# g; A                        then -- no transport order for vehicle @* |3 y# C6 y4 M' J0 x: e" U
                                @.Destination :=6 r6 t, w) c$ _! m& N4 `/ {
                                rgManager.nearestFreeStation(@,track.~);
( V5 W' L% B- z+ }' V                                newDirection(@);   
1 X5 Z& I6 p4 h$ j$ j                                if @.Destination /= void then( \9 I8 u2 H# Q# S% R
                                        @.Destination.NumReservation :=
3 l& \; x6 _- Q, M' r                                        @.Destination.NumReservation + 1;9 h5 T' L( B8 k( v/ z% v8 x2 G
                                end;/ `2 J3 i0 p, v7 T1 E  h
                                @.CurrIcon := "drivingHome";
* W1 p- ~# G7 I; M; I$ n                                @.DrivingHome := true;* M5 W  }5 m% q0 U
                        end;- k" ?8 I" Q& N- F
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station! p/ S8 _9 G; P# v* X
                        part := @.transpOrder;
" e4 f2 J1 s1 z3 N4 T) d( R5 W5 Z- ^                        part.move(@);-- load part* n7 E6 O' z9 B7 v2 [- k
                        @.CurrIcon := "load";
! H& _1 s& u! v( M- A- z# E! {                        GlobalDistObj := part.globDestination;' h4 ?3 b4 Z  f6 x* I0 X1 ~' x1 T
                        assignLObj := rgmanager.rgAssignL;3 Z* w4 Z* Q6 M8 {
                        row := assignLObj.getRowNo(GlobalDistObj);
0 I* M& O2 G' Z. c                        if Row = -1 then -- since 70
7 _' ^% t, g0 v1 P4 ?" m                                if lan=1 then: t% w9 O5 v) y% g( I
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),( h# w( Y4 X+ H8 [* Z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));" a) v: K5 M9 f+ ~! v/ U6 D+ a# M2 H: y
                                else
; c" u: y' L$ i7 R                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, F3 r; @7 W% H' }( E) w+ J: g% b. V, b
                                                to_str("in docking station: \"",?.~.name,"\""));                                9 O3 g) w2 s4 R
                                end;
  Y6 A5 }/ P0 W6 \( f9 _0 ?% L                        else8 C( Z7 h+ E: X8 `; L2 Q
                                @.Destination := assignLObj[1,row];+ [$ V' Q9 z  m: h- A* p4 c
                        end;                       
* k' `% z2 `) a6 _% I                        newDirection(@);
" E7 ?5 D; K: o                        @.HasOrder := true;2 X' \9 I- J- l% v' E
                end;
1 G3 ]- X3 `+ O5 K( z  `  H9 `        end;  l& g3 t. R! }9 i
end;        -- of the method, C  v% r6 K/ Y
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   W8 }1 B+ y3 A

$ w% S' D9 j, p7 J# e这是AGV_putin中arrive的method。
" Z: v% \. F+ y0 T" F' E5 |" e, p) ]7 \+ b' |- Q
当到达物料速度越高时,这个报警更多,+ k* I& `" ], ]# s3 A
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。* |! x- Q7 P, M! U* b2 H6 m% e) d% p; o
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 f9 k; Q  V( P* P0 |

7 P; q- x2 h- J" T' z6 @$ V% d- @# M另外一个小建议,就是move,所有的move都可以这样7 b& n7 W7 B+ f- s6 j
if not move() then debug end
% Z* e# P1 l' Z, Z) V  V" N这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" p# v1 D7 Z) I9 V2 h
plant simulation中的free libraries有AGV模板,, V3 F7 y) Z* \- Q  p/ L) ]3 R% P
里面也有案例。
9 m  u: r" M( ?我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。8 \5 g( N+ J5 g7 ?, r% e

2 `9 r8 M" N: @# K+ Q) l我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
+ Y5 _% c! G$ m. J
$ m9 Y9 ~) z. U: d3 A: |那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
3 k4 h/ i0 f( h% A这是AGV_putin中arrive的method。% N2 T" P+ T9 i( @
& h! o9 E6 D7 f7 K9 z! l
当到达物料速度越高时,这个报警更多,

) V: H0 _5 r& K" g1 ^% c另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-13 15:12 , Processed in 0.017798 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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