设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6529|回复: 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'
: {7 Z( q; {6 V7 A*/
2 g: K! y9 Q: ~% Fis
& E& d5 a' ]0 g7 Z+ i7 b* _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
% H' X( T. o: j$ Y% Ido
; w+ O4 |/ h0 q# J) q        Lan := rootfolder.Internal.Tools.AOLlanguage;# S) t8 f; d: ^2 E* j. g' g5 N
        if current = @.Destination -- else return6 R) A$ J+ d, r6 c! \
        then
  h( i1 P3 K! S7 A6 F. Z                @.Destination := void;7 K! Y3 V! e1 g' k7 v& t( U
                if @.occupied then3 j, y9 c9 z8 e3 a" G4 F( ~
                        part := @.cont;8 F$ V' q6 V7 u* d) S. N
                        @.transpOrder := void;, h4 W* l5 k; x9 Y# |2 X2 N  W5 r: }- R
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& D& V, _2 L2 \" `! f6 v! m
                                @,root.eventcontroller.simTime);' u; @9 B! Z& h" {( x
                        @.HasOrder := false;' G9 b' J* ]9 D# P. r& m6 g% @
                        @.DrivingHome := true;+ O4 u; R8 X" \; [7 j7 F
                        rgManager.tryToStartTransOrder;
% N- K: O$ i6 C2 p( u                        if @.Destination = void
, ~5 D2 n7 a$ A- @                        then -- no transport order for vehicle @+ c0 P8 S; P  c, C9 L1 u2 x
                                @.Destination :=
" F5 J% s7 z& j/ ]- g1 ^                                rgManager.nearestFreeStation(@,track.~);
% J% [! u2 G* V: K1 u                                newDirection(@);   1 u- N- F; r9 z( c5 {
                                if @.Destination /= void then
/ M" U3 s1 i8 ?/ B. M; }* f                                        @.Destination.NumReservation :=
3 i" u/ I- H6 Y8 u                                        @.Destination.NumReservation + 1;- y* g2 Y' M# ?) g5 e
                                end;0 D/ q# U; W1 k# T4 u/ y
                                @.CurrIcon := "drivingHome";  j/ m2 p4 J1 P" N
                                @.DrivingHome := true;
/ e+ K& A+ \3 G6 `6 m( P                        end;
1 Z/ V( F# N( J% E8 W9 \# s                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# k2 R8 A( b  ^! J( d5 B# `6 ]# O" y" G                        part := @.transpOrder;" ~5 l8 b; p  V: o
                        part.move(@);-- load part
" z/ s7 r( q0 ~4 y  A/ @1 M                        @.CurrIcon := "load";
# F5 l  R$ R3 D5 G                        GlobalDistObj := part.globDestination;. M3 u6 _6 U! P
                        assignLObj := rgmanager.rgAssignL;" i5 J3 _  F- r' ~5 a# M
                        row := assignLObj.getRowNo(GlobalDistObj);0 M* v) u4 k4 c) p4 a9 W8 Y
                        if Row = -1 then -- since 70. M, b2 W* l, Q/ {
                                if lan=1 then
% B" G4 c6 s7 K% y                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
5 G- ]% M4 u+ m( d3 I+ G                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ i- W$ N& q+ S0 t                                else) E$ \9 i! [6 _9 z2 s
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 o/ R1 S, u" u9 W$ t; l( ?& l
                                                to_str("in docking station: \"",?.~.name,"\""));                                9 f0 k$ y7 A) f
                                end;
! p9 i6 h' i  u; B6 k% ^1 X                        else
$ O: u# Q" V3 B$ ?$ N" a: r' o: P                                @.Destination := assignLObj[1,row];
4 f7 y5 f6 H* k. @                        end;                        8 N2 u, R0 l2 e7 q' s4 h
                        newDirection(@);* X, w1 [0 D/ C( y
                        @.HasOrder := true;
# n! P& ^* {3 R) ]                end;2 I6 Q) g/ M! S5 t9 J
        end;
) [8 i+ h7 w  Bend;        -- of the method
+ w  d8 L/ Q6 Z' k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ( [' g0 w2 S& d1 k" s# z
9 M& c; C6 \- N7 B* b
这是AGV_putin中arrive的method。
/ g1 u( w3 v9 q% h. h% o( I* Z& z1 e" I. A7 T6 S8 |& ~8 W
当到达物料速度越高时,这个报警更多,* c( F; g( }" O" W1 W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! W% N( K1 v* p, D7 [) p
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 ^) y$ E! Q0 l% k) _" K/ F, Q# w' K7 i: d
另外一个小建议,就是move,所有的move都可以这样
; x% u/ S4 K9 _7 S! o' h$ B  iif not move() then debug end
" R  O  o" a% I! e  j这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。: F! z2 U. d3 z
plant simulation中的free libraries有AGV模板,; @0 V6 ^! \' ~! U5 e
里面也有案例。( G) {! |, Y  G* f/ U  u: f1 @
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
% t* c9 i* z( x% D5 i3 S: _9 y) X; F/ _/ j
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 m2 J6 M- p" H+ R
7 D1 A, @; ]" H- y
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 : e* x+ T. U* Q! p
这是AGV_putin中arrive的method。- d0 j, t6 w( J' }, G0 z
4 Z/ a2 O* `5 N7 z8 U. A+ ~
当到达物料速度越高时,这个报警更多,
8 N$ H: \5 W2 O# T  R
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-11 01:51 , Processed in 0.021140 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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