设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7373|回复: 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'" a3 {, _. [. G# C' I
*/* y$ h4 |, p  J" ^
is
. E& O+ o# h) ?$ q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;6 P' \5 U5 H  H$ E
do# ?0 x! M, r/ C, [1 Q4 `4 u
        Lan := rootfolder.Internal.Tools.AOLlanguage;
! F; |; e. w( z; ]6 T        if current = @.Destination -- else return# m; {" \' R( l
        then, r1 }9 P8 v- g7 l6 f; l9 a9 z* y& `. v
                @.Destination := void;; W, a  a8 m2 H
                if @.occupied then' B( x% |# U9 v5 c3 o
                        part := @.cont;
, U8 E8 r6 n! `+ Y6 ~% a                        @.transpOrder := void;$ v8 r4 ?9 \9 _3 z, L
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% ]# J  l+ k' @8 T3 A                                @,root.eventcontroller.simTime);  H/ ^9 c$ N& d7 m2 b
                        @.HasOrder := false;# A  a  [1 i: |+ {" J
                        @.DrivingHome := true;
% h* `: H4 Y  w) @5 X                        rgManager.tryToStartTransOrder;
! P& q% j$ q# {                        if @.Destination = void3 t0 y0 \2 K: i: `& c
                        then -- no transport order for vehicle @6 k0 c( F2 C* e- b  r& Z5 Q# m0 [) e
                                @.Destination :=
/ p7 P) s/ Z+ S- v$ M, F                                rgManager.nearestFreeStation(@,track.~);
# e( ^, [- O) M# L2 m% j- T! Y                                newDirection(@);   
, f. J4 I: j2 h" x8 W$ `                                if @.Destination /= void then1 S+ w& G$ J: ^+ k9 s
                                        @.Destination.NumReservation :=9 G: i. N  A# o3 K( q5 @
                                        @.Destination.NumReservation + 1;" G# X/ w& t6 x2 x- k7 y" x& _
                                end;+ I8 }8 E( N% Y( R, g$ A9 t1 p
                                @.CurrIcon := "drivingHome";
5 a6 b& B1 ]5 X7 w/ o: U% M                                @.DrivingHome := true;" q) E1 g6 a, p) p: s  p
                        end;
+ _- N1 E& c+ f3 b0 d8 p                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ D0 o) F5 [; `; `$ s6 R# L
                        part := @.transpOrder;
$ W# q" K# d( {$ b# y2 Q                        part.move(@);-- load part
' L: E, N; S; Z$ `& s- s2 |                        @.CurrIcon := "load";
: L' Y+ ~% W" \$ o8 n. n# E, U                        GlobalDistObj := part.globDestination;
2 O% z' Z( U* F1 H+ n, K                        assignLObj := rgmanager.rgAssignL;: H8 A: B% h5 d: X
                        row := assignLObj.getRowNo(GlobalDistObj);" m( Y) Z5 Q: s
                        if Row = -1 then -- since 704 i& n" `% z' [/ i9 L5 p, w
                                if lan=1 then
; }" l6 u; z# d: w* g8 O                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 g: S3 ^4 J0 `3 D                                                to_str("in der Andockstation: \"",?.~.name,"\""));% x. K/ f" U7 I& _& F# B
                                else7 O7 e  }' D0 K& X. o( w4 M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& e" {1 ^" |1 R, H: n% Z' Z5 }                                                to_str("in docking station: \"",?.~.name,"\""));                               
$ f( y. n# b6 G7 y( J; v+ J9 \                                end;
7 U* \5 y& ]  b5 \, {                        else
0 [8 T: v* D" l1 ?2 S7 b                                @.Destination := assignLObj[1,row];' F+ `9 Q2 v9 q5 b8 {  ~
                        end;                       
/ ~9 o# ~' B: a2 ]6 d                        newDirection(@);
% u6 }3 k* a" q/ `                        @.HasOrder := true;* V5 z4 X$ O2 z& J7 }3 ?, X
                end;
7 m, {: J5 F5 |7 y( O' k! Q        end;7 R, z+ S+ y' R  Q. F  |
end;        -- of the method6 g! l  F7 `+ j% r
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
  v2 P& z1 t" Q. M; @5 a
$ N8 i  _/ R) W; G/ L2 V' Y7 s这是AGV_putin中arrive的method。
& n$ }( E3 L/ p, d1 ^
* A1 |$ Q5 x3 y. L3 ~" K) C当到达物料速度越高时,这个报警更多,
6 n2 A6 q  x3 X( g0 g# ?5 J+ ?可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
2 @% j* k7 E& Z3 V' s) M4 ^. p程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
/ {/ `% Q' N& L" C$ k( H
( d3 a0 v! i  f* o7 W/ {另外一个小建议,就是move,所有的move都可以这样* v8 |$ E1 \: J
if not move() then debug end
& q3 P5 L9 Z. P0 @9 x- e. o3 V+ R2 c这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
7 y3 o# \; b) v+ y& o! k' b' Kplant simulation中的free libraries有AGV模板,  m6 i8 s4 w5 n+ Q
里面也有案例。
4 X, p/ ?+ r8 C4 g我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# L% Z# G2 o4 [, \9 x" A7 N0 G! V

) t. A; d- a/ d% e3 i+ N  e# N4 P* a( N我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
' f+ x5 @4 s- c+ m3 F& a. t, I% a6 n. u5 x- g" X9 i* {  z
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # V, a# f( E) f
这是AGV_putin中arrive的method。8 e, V- v3 i( J' u+ c7 H7 h
) Q! \- c9 `3 i  U1 k
当到达物料速度越高时,这个报警更多,
/ S3 k9 O' w% J9 g& o  u
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-7 21:36 , Processed in 0.023926 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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