设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3409|回复: 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'
) }( G- H: {- Z$ j*/
/ y6 y# y# f/ {0 v: n( F) zis
. B7 X9 d1 A' t! g0 _) N0 q+ d        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 V0 N4 F. x5 P4 B
do) }1 S% F9 O! M( t4 r
        Lan := rootfolder.Internal.Tools.AOLlanguage;
( h) [( W3 S. R+ Y        if current = @.Destination -- else return  e( f. o8 U/ X( W1 S& i
        then
3 _' `) x4 Z& y- A5 K) P                @.Destination := void;
6 I* V% N" N, X$ t                if @.occupied then
0 g, x4 O. ]7 b8 J# c                        part := @.cont;
) o1 p+ I- z" O                        @.transpOrder := void;
7 W% Z, B1 y( d                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% e( t$ ?/ K8 i. ^; T0 p                                @,root.eventcontroller.simTime);% E: [& M: O7 o6 D. K: M
                        @.HasOrder := false;2 m8 B0 V# p% t2 B- B7 N$ {
                        @.DrivingHome := true;% k1 b/ H9 d# E
                        rgManager.tryToStartTransOrder;! X& h/ G* c& j  k( {7 a  N
                        if @.Destination = void* Z4 A  {% N! C( ?/ l
                        then -- no transport order for vehicle @
- K- [6 h1 a; I( E7 z& Y/ }  O! `                                @.Destination :=0 P& j6 l, v: ]( ^) Q- L* Q
                                rgManager.nearestFreeStation(@,track.~);
( Y9 ]" y: @! H9 V  n0 _                                newDirection(@);   
8 W, M* f; D7 }2 \8 C! G                                if @.Destination /= void then
! \- _/ U: _0 w9 Z2 ?$ d                                        @.Destination.NumReservation :=
7 _0 q+ S4 j- f/ C8 m                                        @.Destination.NumReservation + 1;
, N9 ]! ?, a. N, T& v1 K                                end;
8 Z# s- e! ~4 y' l                                @.CurrIcon := "drivingHome";' M) K6 _2 S. _! H# `1 A
                                @.DrivingHome := true;
* c/ I" v/ Y7 q8 [0 r; S+ m: D1 A( Q                        end;; k7 Z* s7 v7 W/ f; n+ m
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( x+ F8 Q( W0 o! y
                        part := @.transpOrder;) ]0 d, M5 j: n9 C* H, J
                        part.move(@);-- load part
% O8 k) n0 L' }2 G" ?                        @.CurrIcon := "load";
* W( ~6 }9 h4 \  {. s                        GlobalDistObj := part.globDestination;
; I* W7 U( h9 ^$ F$ R0 J7 j                        assignLObj := rgmanager.rgAssignL;  s1 \: R3 h2 F8 _( @: Q' \
                        row := assignLObj.getRowNo(GlobalDistObj);7 i/ S5 Q6 Z5 a- x/ L/ j
                        if Row = -1 then -- since 704 G& O$ ]/ |- h0 Z8 [9 H
                                if lan=1 then
5 d5 e7 l9 ^: j& B6 X" [$ K                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),# n( I7 a: A8 A: I8 o* s" O* x- O
                                                to_str("in der Andockstation: \"",?.~.name,"\""));' e% f8 L2 E; x3 k
                                else+ G6 g7 Q7 s5 v6 V0 \
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),( x% [1 z( O) S( }
                                                to_str("in docking station: \"",?.~.name,"\""));                                0 N, e2 b" a+ N
                                end;
4 a% y* d7 E# k8 C+ `# u                        else
0 I2 M7 D. q# Z* J                                @.Destination := assignLObj[1,row];
! g3 ^) d! y0 t( t                        end;                       
/ a1 ]/ t; q9 b9 ^7 Y+ [                        newDirection(@);
7 l6 \% }6 o: t, k! q                        @.HasOrder := true;& g2 j* v2 ?5 s( K
                end;( k# p5 k' R4 w
        end;0 d- [  [0 y3 C7 J8 r3 A
end;        -- of the method
+ b0 o- F5 K  A: N6 b8 E' p. K
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 3 s9 a- M& o8 }( g; [

4 k9 }. m$ u0 D. l这是AGV_putin中arrive的method。
! x) X+ K' {* I3 @* q
) m7 n1 D5 Z4 I" u  Z9 I当到达物料速度越高时,这个报警更多,: V& K3 Y; }9 n' c. d* r: N
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
/ `+ ~( Z1 x$ e4 O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; D- R! ]0 w+ }9 B' V2 M; u0 q& L
* p5 X; e; u) |另外一个小建议,就是move,所有的move都可以这样, i! V: E8 o  ]9 ~6 ^
if not move() then debug end
. w) c$ T$ S& o. {. P0 @' ?这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 o. {3 ]. Z( iplant simulation中的free libraries有AGV模板,+ F) D7 `4 ^, [1 s2 C+ q
里面也有案例。
/ J# |. r$ o; |( k! i我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# I6 T% \; a" Q  B+ F

' {0 Z6 p  q* w% U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 s; y" q: k4 [* r
* t# h% r; |. p' D$ l+ a* [; H
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  i! ~1 W9 b: B  U+ t5 V# Q! I7 \这是AGV_putin中arrive的method。& ]7 ?! l/ X! x3 {4 v7 Z

1 H; }3 u/ @! J8 d. z当到达物料速度越高时,这个报警更多,
* D/ C; p5 e9 ?4 U
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-3 15:15 , Processed in 0.014114 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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