设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6895|回复: 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'% j! c* X( N, q! _9 u; h% k
*/( m) Y6 F' j) z  D: A3 `' q
is
9 F! ]3 y, `4 H0 R) b$ O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ l! o6 w1 M9 r  x. E  q
do8 @& Y* C- H1 Y" Q7 s
        Lan := rootfolder.Internal.Tools.AOLlanguage;
3 @2 X% F8 x# ~" P        if current = @.Destination -- else return
# q. n! @! d& F& N$ I        then& o  H9 P  l) a% o9 l/ f
                @.Destination := void;0 q3 R- x3 r6 e6 T5 o- G* a! u6 Q
                if @.occupied then$ D- M* ]! z) u2 Q
                        part := @.cont;
) Q+ M( m  @9 k5 \; G                        @.transpOrder := void;6 e) X6 g4 x$ _4 T( z& s. X7 H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,' Z3 \' h* v, A0 t' s; R
                                @,root.eventcontroller.simTime);
' N% f/ `" w" W1 T                        @.HasOrder := false;& S" U. Q9 t/ h- ~# ~0 w9 Z
                        @.DrivingHome := true;% m% D8 S( a) P0 Y8 \
                        rgManager.tryToStartTransOrder;
6 U& g) A3 `6 l+ k' Z                        if @.Destination = void' _& i! ~5 E9 @
                        then -- no transport order for vehicle @; W: C( Q7 M2 b: c' ]3 C% h
                                @.Destination :=
& x) Z0 N# B/ B# i& A3 j& J; ^                                rgManager.nearestFreeStation(@,track.~);
# G* r! ~$ D. N+ r! H8 N- z                                newDirection(@);     p7 X( `6 x5 I5 p  z+ _
                                if @.Destination /= void then* c. s1 h5 z6 @; [
                                        @.Destination.NumReservation :=( D9 ~/ B0 M5 m0 ^3 X
                                        @.Destination.NumReservation + 1;# o: Z: k% a& M# D
                                end;
0 v$ t) J( f, O$ h8 X7 R: u                                @.CurrIcon := "drivingHome";
; I. T6 s7 _$ K" h8 P% Z/ t, G/ L                                @.DrivingHome := true;' q$ H) n  A/ B/ W5 ?, }% I5 V
                        end;9 E. k, {& m6 L7 B3 k/ ~  a3 X, s
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
1 R' ?- P+ y* ^8 j$ e, Y) s: \: K                        part := @.transpOrder;
6 E. O2 S" N" w                        part.move(@);-- load part
/ |: m, `- {( U5 k3 h0 @' p                        @.CurrIcon := "load";6 k: [# E; E: ?( Y( @1 J7 p
                        GlobalDistObj := part.globDestination;
/ ^8 h1 R' A5 q1 c& \  f* g                        assignLObj := rgmanager.rgAssignL;
3 a. H$ S) L/ i                        row := assignLObj.getRowNo(GlobalDistObj);
7 H9 h$ z0 I+ G4 d3 c! }; X                        if Row = -1 then -- since 70! m" E* w) J# N/ [+ b) c) ]
                                if lan=1 then
" }' x3 A- _8 A( i                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),9 U0 [# i1 i- D8 M# m: t' o  G5 Q- _
                                                to_str("in der Andockstation: \"",?.~.name,"\""));: ]% J5 ]: U3 m4 _8 [
                                else
' F) {) n# ~# M5 v" N( i: `                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),, ~+ |* Q1 F" D  \
                                                to_str("in docking station: \"",?.~.name,"\""));                               
; i( ?% p  y- z) e8 I                                end;
8 l8 g, e6 z$ E, {  i" R4 a" Z+ d                        else
, O2 h2 B* |5 @% t8 j( R                                @.Destination := assignLObj[1,row];
( x! t' Z5 l$ i                        end;                       
4 i  ]$ L+ p9 d6 `& J( ], o                        newDirection(@);% y# q. D6 e, h5 H  }& l
                        @.HasOrder := true;7 h; n$ @$ q7 Q0 a) Y. d( @* u5 @
                end;) Y, c) k/ E, w* F/ m& Z
        end;# ?0 V+ t) l. ^
end;        -- of the method
$ R/ x6 l; X7 H$ h, p& X
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
1 U  y9 W; R+ u! A5 I% O8 q7 Q
+ U. G4 I  {4 o% `这是AGV_putin中arrive的method。
# M* m) u/ S+ X: A* K: o; V" R, }1 \; e" n* }
当到达物料速度越高时,这个报警更多,% j4 T+ Y" y. q. z% g6 f9 C
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! F& R* o5 t. F6 @
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?: H# p4 ?, m! ^0 Y& E

. m% I! U, g4 o9 S( i0 z" ]  T另外一个小建议,就是move,所有的move都可以这样6 V, Y1 q) J3 h1 v
if not move() then debug end4 r6 Z& A. Z& B4 [
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
/ L5 i# W9 Q4 `0 N) xplant simulation中的free libraries有AGV模板,& ?' X0 X0 S" t! u& p( b
里面也有案例。  {, h. Z% b- W* c& _
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  B! g; a2 k5 u8 ?
% M0 e  K' J9 |% U& t我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
! p6 B2 }6 N7 Q7 n+ C
5 `: x2 Z+ ]. w$ ^. _# W那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& d% ]3 P" \- N  v7 A, L这是AGV_putin中arrive的method。& Y/ r# M/ Z9 [; v% d' {- q; h
; t7 u3 T% c7 D8 o
当到达物料速度越高时,这个报警更多,
0 r7 W' C1 S) v
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-5 10:01 , Processed in 0.019542 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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