设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9906|回复: 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'! M' I- L& J# x, i7 S
*/
$ ^2 t. Y/ Y1 }1 p$ H* W& v! I6 n+ u9 M+ }is
+ V& M" v/ U+ R& x; ~* f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
7 N1 [+ K4 c6 ^* v. {9 l& ~do+ C: Q" v, s2 i2 r5 C. V" U) ^
        Lan := rootfolder.Internal.Tools.AOLlanguage;
; G+ h( f/ f9 u" _% w        if current = @.Destination -- else return
0 u% l* M" R# S# G! }, {        then
  q. v& Q9 n. a1 t* ~& n9 n6 P                @.Destination := void;( B$ g+ w9 l( q& k  X0 X% Z' m! b) w
                if @.occupied then& A+ o' X1 X, m4 Z4 Z7 c3 I
                        part := @.cont;
1 k$ u8 x/ M, ^                        @.transpOrder := void;- h% e# k5 S% e
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 l( N; P( T; @% ^
                                @,root.eventcontroller.simTime);  a* t+ c' a" @
                        @.HasOrder := false;
- c9 i/ E7 M% }                        @.DrivingHome := true;4 Q: R- x) Z# Z. B4 B/ c
                        rgManager.tryToStartTransOrder;% R/ g. w" g5 f; j0 `0 \
                        if @.Destination = void
, @9 {3 a5 E! ?/ Z                        then -- no transport order for vehicle @' T- m9 U. k4 o
                                @.Destination :=* d/ E8 s# t  F) X( X7 A
                                rgManager.nearestFreeStation(@,track.~);7 `' Q+ ^8 T0 m- }2 J* H, L, U* @" D2 T
                                newDirection(@);   8 @- f2 u" h4 n+ e0 D- p
                                if @.Destination /= void then9 \) R4 s0 x. N8 C/ Q
                                        @.Destination.NumReservation :=0 v- }+ |3 T% W& ^9 z5 ?2 X" C5 q
                                        @.Destination.NumReservation + 1;
8 Z/ ?+ l6 I' a                                end;
0 }$ _$ b' t& f, g; A                                @.CurrIcon := "drivingHome";
& a" k0 D6 X. u4 N& W, l                                @.DrivingHome := true;: g$ F' q& X- G' P
                        end;
' v2 y* H+ B0 o# p8 J                else -- the vehicle @ is empty, both vehicle and part are in the same dock station+ e3 r' ^) r' Y% c
                        part := @.transpOrder;  H! ?% h3 e, A# ]/ y% \0 R
                        part.move(@);-- load part3 G6 {# ]4 H( @! K* k7 L
                        @.CurrIcon := "load";0 b, n! u7 U$ E4 \( A$ d
                        GlobalDistObj := part.globDestination;: G1 n& O& Y9 A9 n9 a  Q/ j- t" c
                        assignLObj := rgmanager.rgAssignL;0 A- Z# s0 {$ q: i
                        row := assignLObj.getRowNo(GlobalDistObj);, r  w- g% q/ I- ]/ t# I
                        if Row = -1 then -- since 70. n# p3 A  y; e2 U3 u
                                if lan=1 then" t. Y+ e! N9 k
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
; ]3 A7 z' ]2 o6 F                                                to_str("in der Andockstation: \"",?.~.name,"\""));2 @! r& e4 G( @# F5 D
                                else
! `% t- L' h( I2 m                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
) u7 d" P! A  e$ r3 N( h5 L" l3 M                                                to_str("in docking station: \"",?.~.name,"\""));                               
4 Q! o% }( ~) [' v' e) W! d9 X  m9 S                                end;2 l% A4 G6 O$ V/ P  I+ ]
                        else2 \! d! c3 U& n& ?6 j
                                @.Destination := assignLObj[1,row];7 U" Q3 C1 `& @! n- [1 N
                        end;                        6 c" |% v& v+ f- R
                        newDirection(@);* v2 K: O# @8 M% @! ?& V' N
                        @.HasOrder := true;
: p3 c2 n7 h4 I8 j" F                end;% @: K" q6 W, _4 ~  Q
        end;0 C1 ]8 e6 ]$ |# g0 O" r; q" z
end;        -- of the method
7 |1 V$ a' s: A% e
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ p; g9 n- T+ a" S

* I7 J( i- H* w这是AGV_putin中arrive的method。. P* f. n8 A: L
: k: k) a( C. d0 Y  @( P: M
当到达物料速度越高时,这个报警更多,, C* S0 d* T8 @% `0 d* e
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
, f; N% o' k9 V) k2 G# A$ d程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ Q' z$ x: o" H3 U9 M
- ?' U* _# y0 C
另外一个小建议,就是move,所有的move都可以这样
& G' O" [: l. p) P9 E% v- O! sif not move() then debug end! ]1 L3 K3 ?1 v. |. p" R' Z1 M& U* n: q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. K0 s' b3 I& ^% y& N6 F
plant simulation中的free libraries有AGV模板,8 t5 `2 ?7 l' x
里面也有案例。
: P: u- }- s  J( N我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。% \$ m- q- b5 ~; j+ {9 ^% _7 g# N+ x
5 H1 ~$ X; h& l% G8 q& _# g
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' ?& M4 U3 N! g! n8 o4 |3 F* x
8 y, v( V! O2 m  d: D7 ^3 t那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 ?$ Y6 }5 ]8 N, L0 Y
这是AGV_putin中arrive的method。$ H5 g3 R3 N1 t( ]0 y& Z" ?: b, K
2 g3 J3 m! l! X; |# o
当到达物料速度越高时,这个报警更多,

1 f  o- M" g/ n& q7 h- |" o另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-1 21:36 , Processed in 0.017968 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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