设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4604|回复: 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'& F7 L4 K2 l  `$ u+ N9 X6 x% K
*/2 C$ z( q% M) Y  ]6 S- ?" P. g* y# b  m
is4 X, w" `3 u" W& O
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
9 ?  C% N/ o$ \7 f; w+ hdo
: e! v- E2 m5 O& `5 R        Lan := rootfolder.Internal.Tools.AOLlanguage;
# L4 C: E; Q' K4 t: k        if current = @.Destination -- else return
' {& G/ D! A  l8 k+ o+ \        then& v. B: v: K0 L$ c& ?: u- W/ e
                @.Destination := void;
( F9 K- r1 |8 B$ v1 A9 k4 u! P                if @.occupied then
7 |+ F2 P0 b, p% R                        part := @.cont;
9 r) z8 o9 w6 p* i                        @.transpOrder := void;
+ H* ?+ K' Z" {  D1 ]                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ Z% {  {5 b( O                                @,root.eventcontroller.simTime);3 O% Q/ I: a- v; z
                        @.HasOrder := false;
4 G8 o. l, W& _2 `6 {                        @.DrivingHome := true;
! |3 ?! t$ s$ s  n* H4 B+ j0 R( Y                        rgManager.tryToStartTransOrder;
" v) P* q# G" ?$ y7 ^, l                        if @.Destination = void
* ^' s" v" X* |, q6 E& ?: X. h  n                        then -- no transport order for vehicle @  a$ ~9 O8 P1 \
                                @.Destination :=
. d3 O4 ^7 z' a: D0 `& d7 N                                rgManager.nearestFreeStation(@,track.~);. j; S% o/ i3 c# J+ C9 D
                                newDirection(@);   
) e& a. A# b3 v2 q                                if @.Destination /= void then3 f# t6 K# P* w5 B/ Z
                                        @.Destination.NumReservation :=
, c: C5 a  n" t4 g                                        @.Destination.NumReservation + 1;. c$ E9 L+ l' _
                                end;
% j6 t" h! i/ l5 ^                                @.CurrIcon := "drivingHome";
; }/ p, E' u* Q! S, k; _                                @.DrivingHome := true;, }; D3 x2 V- d! m- I% ~
                        end;
( l$ Y( Q, s& [! g/ V2 y8 k  S' M                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ z& |/ N( i* C
                        part := @.transpOrder;4 y" b/ z5 o$ P5 n" S
                        part.move(@);-- load part
+ K& {* T; q! Z                        @.CurrIcon := "load";
% ~7 _, e6 ]9 |4 p. K                        GlobalDistObj := part.globDestination;2 G; \2 C6 b6 @, a# K/ o
                        assignLObj := rgmanager.rgAssignL;
7 s9 n, w% u, l9 t( x. V, J: [                        row := assignLObj.getRowNo(GlobalDistObj);
6 {8 H1 e1 ]& G5 h+ V# ?( \& x                        if Row = -1 then -- since 70
9 [; @, q5 }( Z$ t                                if lan=1 then# x! j4 i0 G" z$ v. b  z
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' |, }4 p7 A9 f( J/ H                                                to_str("in der Andockstation: \"",?.~.name,"\""));& N& y; K2 Y; f0 \4 L
                                else1 T. `; G  q0 T& j, i% M. P
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 s' J( ?( n: Z. a, q1 H* h" ?
                                                to_str("in docking station: \"",?.~.name,"\""));                                , L& H! V6 ]  F& y; Y
                                end;. c4 z' S  p( C1 I7 T( K
                        else7 ~: q2 y% J( s7 C: U/ ~& S; k& d6 T
                                @.Destination := assignLObj[1,row];/ f$ B6 M  X( v9 Q- |& d- Y: g
                        end;                        , F" I, c! I6 w' c. x! Q: P
                        newDirection(@);5 X- ^" C; d) y: b/ i
                        @.HasOrder := true;5 S% ~6 l; U( v/ a
                end;
( e4 C) v. P$ _+ d( e) b6 \# ~( ?7 j        end;
4 z+ D& }: `% q7 h! [, T" Cend;        -- of the method
6 N& k* H& w9 L/ T: y  C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* K  l) a3 G8 F3 m' ^, ]5 M0 f: O! r: r% F7 v- c# v- }* z
这是AGV_putin中arrive的method。  w: u$ e: u+ w3 E+ w
; o3 ?! U8 x9 ?- V
当到达物料速度越高时,这个报警更多,0 e) W, ^$ M# O0 v* R* K4 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' R; n# ^! r# G2 U( B0 X3 S* Q' `程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?, C6 g: P7 C; K6 t2 x( J  }0 O
" ?0 @' }+ T% t3 b
另外一个小建议,就是move,所有的move都可以这样8 ^2 p' ]+ u+ v! [4 Q+ A& U
if not move() then debug end) ?- J4 Y) u6 ^6 a/ ~
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 v, Q# C) a, l# r
plant simulation中的free libraries有AGV模板,
+ m. N$ K; i, Z& B: ~里面也有案例。5 A6 J3 R& v9 j  d, c: U$ k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。  L6 ~* J/ K: ]9 J

- A) \  m! [6 R( R5 U; f我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% E$ [; r1 \9 I. O8 A5 z' ?8 L! V( Z" d8 e& t7 D, [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( }( ]) i: I" t1 l( H, E/ u# C; F6 C这是AGV_putin中arrive的method。5 F. `$ |  y% ~; \- S, J

. b( Y/ s$ H7 Y; j7 B+ O5 u2 D当到达物料速度越高时,这个报警更多,

2 Z- Y2 U# o9 }8 m1 H另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-7 22:15 , Processed in 0.016487 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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