设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9630|回复: 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'
3 o  L$ C; N+ w% x$ Y- v& j+ }0 `*/' ]8 N/ a, |' T" M0 _9 p+ H5 C' @& E5 n
is
3 U( Q: R( [1 i. Z& M: P        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
4 `0 p/ M2 d; H  _! g$ ido
5 k4 e8 h0 _; n* f4 W3 \        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 G, J: ]) \- B0 n$ B        if current = @.Destination -- else return
/ X3 s* [: T/ X$ F        then
2 u5 y0 I6 C9 i                @.Destination := void;
" L4 D$ o( n9 ^1 a7 {                if @.occupied then4 U4 k7 x0 f* l/ C! k& N: f
                        part := @.cont;5 v- W8 U3 H" D  V: [
                        @.transpOrder := void;& i. |2 c- W7 F! U( m& |9 \6 p; _
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
1 Y4 D% o; \. y- I/ ]8 f                                @,root.eventcontroller.simTime);' J' c7 R  N: W0 y
                        @.HasOrder := false;" S4 U. a, J3 o/ g0 m3 ^
                        @.DrivingHome := true;2 s3 B0 r8 w3 e2 C* V4 ?
                        rgManager.tryToStartTransOrder;
3 f1 W1 U% k& e0 X                        if @.Destination = void! `8 a# B/ P& u9 z* ]3 ^
                        then -- no transport order for vehicle @% C; X$ V# r; Y) E! s2 E
                                @.Destination :=4 ~( D  ?! f. Z) a$ @& H9 x
                                rgManager.nearestFreeStation(@,track.~);
* T4 H; N. S  G                                newDirection(@);   ) X5 S' i( H" r6 Z4 J1 T
                                if @.Destination /= void then' o& W" o4 g" L/ {
                                        @.Destination.NumReservation :=8 }" e* l* _7 E6 u
                                        @.Destination.NumReservation + 1;
' f1 v8 a' T4 ^% T/ l3 X! t8 s                                end;$ ~( i1 q5 p% g( P4 S: e* v
                                @.CurrIcon := "drivingHome";2 g5 }6 u) X9 d$ V0 C
                                @.DrivingHome := true;
# Y0 R! }2 M% n4 S& f                        end;% D6 D% }2 {% w) [4 ^
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. b5 y% v5 H! K( L* G$ Q0 d& s4 C  Z
                        part := @.transpOrder;
+ C8 t2 ^3 P' j8 _. E: g                        part.move(@);-- load part" E4 L3 i+ W8 j; ]
                        @.CurrIcon := "load";6 M4 Q3 M3 q0 c( J( }+ ?1 o
                        GlobalDistObj := part.globDestination;* E# k  W: W. \0 e2 J
                        assignLObj := rgmanager.rgAssignL;
! K1 e! O# E! T3 }5 l( V  E                        row := assignLObj.getRowNo(GlobalDistObj);7 r: h8 e: i- |1 ^
                        if Row = -1 then -- since 70/ S3 k5 g# B* u7 W5 z& U9 D
                                if lan=1 then- j" I8 e" i, p" P
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 D' e% ?1 @* Q/ H7 _" V                                                to_str("in der Andockstation: \"",?.~.name,"\""));
( |7 `) o2 S, {                                else0 I7 F3 u) ]- [" }! \/ y$ [9 @% u
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),) X: f# A/ R2 [4 h) H
                                                to_str("in docking station: \"",?.~.name,"\""));                                % ?' J$ B! S" j: M2 w
                                end;
* _  g4 f9 g( q4 f* }4 X% q" ]& v                        else
2 v( P7 v0 {. l                                @.Destination := assignLObj[1,row];
2 T9 b" ?* B$ A8 Y7 }$ Y# ~$ F% L# I1 N                        end;                        $ R- ^0 m  [/ O5 C
                        newDirection(@);( y' T4 ?5 p8 b2 O. G% r; l4 _
                        @.HasOrder := true;; S0 E, y$ n! V' U
                end;
% m% B0 Z1 @, K- g" n6 k+ ^( Z" Y        end;: I, L/ d* S, d! Y
end;        -- of the method
1 x. X5 ?6 c; k  ^
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
4 {  G6 j* Q, |6 G4 J* Q" L& b% ?: |* g# o* E3 O' Z
这是AGV_putin中arrive的method。, U' T) |, k9 V/ V  x
0 L! T# z8 h+ [. U; Y+ p
当到达物料速度越高时,这个报警更多,
. l: p( q/ ~. Q+ y1 r可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
8 l5 }& Q& u0 M3 j, H3 s程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# N0 U6 C& J3 l1 h; ]$ |3 g3 c7 k
; x+ @8 T( n4 i" ^# I1 u另外一个小建议,就是move,所有的move都可以这样
! O4 u4 l' x" z, `% D: n# ]% \; pif not move() then debug end3 `# L6 T/ e! s0 P7 {0 U: m
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。; p& t1 j( V) j; {. u4 s, i/ b7 `5 ?
plant simulation中的free libraries有AGV模板,
, h4 `) q+ T( P! q5 K2 l里面也有案例。
8 N7 U7 L* a( S9 ?2 ]我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 q( p2 ]; C4 [& L' M6 q# y# ?1 X3 p, [/ z
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
2 x6 ?4 N% z( U1 a
' H5 L8 I1 @0 @/ m. ?; \7 a那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' _: `3 P4 l7 Z$ S这是AGV_putin中arrive的method。, f  L8 k9 j+ i3 n3 F; n

. _" \1 D- ?- v' s3 X. Z- n当到达物料速度越高时,这个报警更多,

+ W! x7 B: i6 _6 y% {! b7 L另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-13 00:34 , Processed in 0.021643 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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