设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7544|回复: 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  _6 v% }" B; V' w- a9 b
*/
7 Y, L6 {2 y; k& [9 \% Eis. k3 j4 S8 o- D5 q% r
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;/ r6 V9 `7 M, Y
do
0 u  m( z, M: `% b        Lan := rootfolder.Internal.Tools.AOLlanguage;
' V( i7 }3 ~/ u9 M0 x$ V) ^        if current = @.Destination -- else return
0 r# a) Q; X3 h" M9 J        then
0 ~4 c0 G) @9 A1 p8 g5 g8 y3 y& |6 f                @.Destination := void;
: J& P0 ]. p- S3 K6 @2 L. m- l                if @.occupied then8 f; W6 U* N; M* g* ?
                        part := @.cont;4 r7 `$ H' b4 h1 s. H4 s
                        @.transpOrder := void;
9 F. ~/ ~' W3 r' @; N                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 [. u. J' z' I
                                @,root.eventcontroller.simTime);6 M( k6 }# E+ x; h
                        @.HasOrder := false;" e( J; W$ s. s1 h0 U7 @
                        @.DrivingHome := true;- w' |/ r/ A) K! ?% V' \4 O! s
                        rgManager.tryToStartTransOrder;
. `6 y7 {8 n& e% N/ u( f; M                        if @.Destination = void
6 d( s. d1 [- x. y& R% Z# Q% i: n# w                        then -- no transport order for vehicle @1 F/ b! r- W, _
                                @.Destination :=
4 J* c6 T1 v# W6 z                                rgManager.nearestFreeStation(@,track.~);
3 p) Y( b7 T' |8 N, l! `                                newDirection(@);   , M6 P" R: |, }& [; |0 L; N
                                if @.Destination /= void then* O% M9 S! H" c. Z& `! u
                                        @.Destination.NumReservation :=7 `# r- A! ~* I! C0 o& n
                                        @.Destination.NumReservation + 1;3 q: H) G) ]5 A1 G
                                end;
' U: N9 G- I/ j$ g/ o; o                                @.CurrIcon := "drivingHome";
6 t# H/ Q" x& m3 M$ @( {& z" t8 g                                @.DrivingHome := true;. `, r; f  M! K
                        end;* g" f/ q1 H. K7 }" }9 ]2 l
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
# J, e# D4 S* S4 m8 A: E4 `                        part := @.transpOrder;/ G. f9 d. y" z* ~8 k
                        part.move(@);-- load part" l. j( i2 N" C+ c! ^% G. L
                        @.CurrIcon := "load";. \/ G; g9 U" G4 D, q! X$ s4 e
                        GlobalDistObj := part.globDestination;
4 c, A* C1 b2 t1 h                        assignLObj := rgmanager.rgAssignL;# M: Z" T, O# P' Y
                        row := assignLObj.getRowNo(GlobalDistObj);
; d$ h5 y' Z. E                        if Row = -1 then -- since 70/ y2 ~8 T$ }4 L+ c
                                if lan=1 then
# X; [! p% r% h3 y6 e& q6 `  o' K                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' }) d/ z, A4 K! Z# N# }                                                to_str("in der Andockstation: \"",?.~.name,"\""));( W* [' h) l# v
                                else
2 d# v1 {/ W: U4 H: B/ C                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
  t& f! V* @; P                                                to_str("in docking station: \"",?.~.name,"\""));                                $ O5 O7 ?9 {$ K- a- `% g  u
                                end;9 p9 ?$ X- j9 b/ I
                        else7 j) s: z9 b2 G) r- O- z+ {
                                @.Destination := assignLObj[1,row];% e0 x( B( y2 F# {
                        end;                        4 b  C4 ]" w# R. x2 ?, y; G7 p
                        newDirection(@);+ `  h6 |' e% H) S
                        @.HasOrder := true;- c  R$ E. ^4 z6 Y( h
                end;
  ^( C1 ]; \( u) l1 J& w        end;2 e; c4 U' D% w$ W0 v# e
end;        -- of the method
1 h/ E0 g0 v9 \: i$ W+ [( y( M
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
$ B: e; w: z8 i; v7 p/ C' m6 P9 \& Y4 A1 x; D0 {0 \& t
这是AGV_putin中arrive的method。
' l/ M/ ~2 K7 V6 P4 K0 p" h! v& ~7 B0 x3 A  ?' g
当到达物料速度越高时,这个报警更多,7 B1 C/ }  y: l$ S, a8 \- V2 X
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。6 w6 I4 B. X5 I3 e+ v& W
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
2 h  T* C" T& P9 U' J, @( }' V# v: }6 J7 r& g6 v/ d! W
另外一个小建议,就是move,所有的move都可以这样
& e3 E1 `: Z( eif not move() then debug end' Q$ e7 t) e7 R* x2 t: Z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 H' R. N  K( i" w! E0 `! b, `" splant simulation中的free libraries有AGV模板,
: q3 D+ T5 Z5 \% w/ R里面也有案例。- j/ H  y$ e5 Z7 k3 k" c
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" Q3 `* {; {( |6 ~) r0 d
( F8 j" u" H: a' s) d我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 F8 P3 h+ v9 N. k, v5 |

/ ^2 Y' l, A! F% n那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 * c" g) R5 C/ j9 l6 X
这是AGV_putin中arrive的method。
: W% m$ y  ]% g7 A! W' a$ s0 `" Q4 l, X$ g
当到达物料速度越高时,这个报警更多,
( O# d: {0 M+ x4 G+ w3 `& m* [
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-17 09:34 , Processed in 0.024936 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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