设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6936|回复: 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'
5 n' R6 r% P! M0 U; Q' [# ^; x- l*/4 W+ }8 @8 {2 f' g7 h
is
4 }; k' P# M3 |        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
. n" q3 n6 z- V  f/ T. L0 Mdo
$ r- v2 s1 H! C% s6 b) A" [2 b        Lan := rootfolder.Internal.Tools.AOLlanguage;: E8 K% s4 |; d8 g
        if current = @.Destination -- else return) J; h% m0 a: _* i
        then9 ~1 C6 J( I& H% }
                @.Destination := void;3 L& l4 ~3 e' V6 O% u5 i) v  B
                if @.occupied then2 z+ L; N- r6 w9 l, D- u
                        part := @.cont;! g5 G% n( I9 t9 c- q; X- I
                        @.transpOrder := void;
$ z3 J+ _1 }: Q                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- J1 |6 @, C8 u2 J' F
                                @,root.eventcontroller.simTime);2 S! j& \. u6 G7 q# {
                        @.HasOrder := false;' D4 r$ g4 Y% K8 M1 J
                        @.DrivingHome := true;; d4 _) c& t+ {0 F' f& N  y. m
                        rgManager.tryToStartTransOrder;
; M" G, |. [4 u7 e2 G                        if @.Destination = void  R1 }9 ]6 j( n7 H8 ~
                        then -- no transport order for vehicle @
3 D; R7 R9 {  e6 z' B                                @.Destination :=9 Y% u( m  w) J# Z2 L2 X2 g, N2 \
                                rgManager.nearestFreeStation(@,track.~);, p( _; x, B* s9 |8 T, T9 l
                                newDirection(@);   
0 A* g' ^0 w/ B; U                                if @.Destination /= void then6 t9 z5 H/ |( L( N# |% M/ M+ v
                                        @.Destination.NumReservation :=
% h3 k- j. |; I                                        @.Destination.NumReservation + 1;
3 }0 x- x# K; T1 o5 ?! m4 L2 `                                end;7 ^5 v9 [+ v0 O& M4 w, \+ M
                                @.CurrIcon := "drivingHome";2 S* I0 B! V7 b" ?2 b5 Q9 K
                                @.DrivingHome := true;
5 h- o! z% Q: O" p: R$ S                        end;
( Y. E3 q# s+ W  s5 J% b1 T6 V                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 \* V) B9 m. k; h* e/ V# l7 o                        part := @.transpOrder;
% p# `" u# [/ F* E( i                        part.move(@);-- load part
# t4 i! t: X) r. I                        @.CurrIcon := "load";" d4 H+ {! d4 g% f
                        GlobalDistObj := part.globDestination;+ j3 V2 v. q% s1 S# H' L1 E+ @
                        assignLObj := rgmanager.rgAssignL;4 P) P( D8 _( U) }; l( z
                        row := assignLObj.getRowNo(GlobalDistObj);( K; l& l3 Z9 X$ Z1 E
                        if Row = -1 then -- since 70
3 d& _. b2 }2 E                                if lan=1 then
  z* J# X7 D% U! J! A                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),8 h! E! Z1 N% D7 }
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
2 F" _3 t( T5 V7 z5 j                                else
( N0 q% m3 z  m                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" W8 L  D) Z9 N. l$ a1 _( t  G                                                to_str("in docking station: \"",?.~.name,"\""));                               
0 j& q( b) S/ m5 `" n1 D                                end;
6 j. u: R9 M  n6 f# }                        else
1 Z* O% ]! B4 ~- Y2 S4 L) W9 [3 J8 j                                @.Destination := assignLObj[1,row];+ I0 M) Z1 n2 _: J) \9 i% q
                        end;                        & z  w5 `. B7 K9 b: X, G5 ^4 Y% s
                        newDirection(@);2 M5 P$ B+ v2 S2 s% e5 ~
                        @.HasOrder := true;2 h9 x  L# S# u7 O7 y# G0 |5 _5 @
                end;
' M+ L6 Y  @! J& `# |( ]        end;
) f- h# {; g" aend;        -- of the method7 p* R9 H0 t9 G% k
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ j" f  L, z- U# S6 \% {, I8 G1 R
/ K* h3 }1 w+ X% l: B
这是AGV_putin中arrive的method。4 W! ~5 A' @& W% K4 N6 u  x3 @" d
& n3 a! @) k$ B( n" m# r" H$ N
当到达物料速度越高时,这个报警更多,0 W  k3 H! l. m7 l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
" _+ G2 c  S0 q程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; _6 H  B1 @1 f( b6 Z5 A5 G: u% e8 E: T+ M$ |
另外一个小建议,就是move,所有的move都可以这样
6 n( r$ E* J1 {; `4 [& O7 Pif not move() then debug end
0 F" L* K! v2 z% T' E这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
" s& w4 x2 a/ D! d4 p6 W) w- uplant simulation中的free libraries有AGV模板,3 Z2 s) w9 \. H5 w$ L8 Z
里面也有案例。, R% s% i, O( i# a2 v8 D
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( z( @. D1 I6 |

0 l" b+ m! r; g0 }. a我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  w$ V- u' ^2 p' G; E* R  }, H( X; E
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 , B' P2 m1 L" U$ T/ [
这是AGV_putin中arrive的method。
& b' d) H; x5 p$ h
' f, b+ F/ v/ S  Q; _; i当到达物料速度越高时,这个报警更多,

; B0 s9 ]& b% x. b另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-7 12:39 , Processed in 0.018606 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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