设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9264|回复: 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'
) u% v1 U( P1 s+ Q# w+ n*/9 E8 Y/ O) Y1 a1 O* s( P
is
; p* J5 T4 @7 I; M* r" F4 I( I        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
: }9 U& }% z" ?+ d) Gdo
/ l3 x* W, A6 g6 u: N% z        Lan := rootfolder.Internal.Tools.AOLlanguage;
' t' u4 F; E* G2 e        if current = @.Destination -- else return' v2 K" j" \4 s  u$ k& ]
        then
+ i5 L) I  I. ]* n" e9 }                @.Destination := void;# x; o  d1 L+ q0 `
                if @.occupied then* ?% Q# j4 |  J4 w/ r! F
                        part := @.cont;
: V2 G$ A  W6 m2 n+ V$ W                        @.transpOrder := void;
) b0 I0 g* f+ @4 _2 e; m                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 R0 N) ?; E: D" t                                @,root.eventcontroller.simTime);8 m+ S3 @6 Y0 M4 _% i- c% _
                        @.HasOrder := false;
  c; b, P, ]* e- R6 K                        @.DrivingHome := true;
5 e+ \9 K; s* i  u) p8 z! i                        rgManager.tryToStartTransOrder;% d& G; O! j6 }: L
                        if @.Destination = void/ Z# {8 h. l/ Z" F- a: F
                        then -- no transport order for vehicle @
, d+ H/ J& f& M& f' J                                @.Destination :=2 W6 \- z' ~8 d1 g
                                rgManager.nearestFreeStation(@,track.~);
$ ~: D* h% x' K8 J5 c  q: |4 e                                newDirection(@);   
' `' Q2 r& C3 j8 e* D3 ?                                if @.Destination /= void then
( N  A" S  t3 ^# [: l7 N                                        @.Destination.NumReservation :=. `7 V( B+ H6 T& t$ W
                                        @.Destination.NumReservation + 1;
2 V) d% E* `. U" j0 j$ |                                end;
- g+ |4 d4 ]+ P                                @.CurrIcon := "drivingHome";, ^7 _! l! l" d1 ^6 d3 S- Q. Q
                                @.DrivingHome := true;
- D: o. k( q) u' ^+ S9 J                        end;
/ J5 P) D3 I8 V, o                else -- the vehicle @ is empty, both vehicle and part are in the same dock station. F6 Z7 T3 K% i# Z( |
                        part := @.transpOrder;$ e+ c2 o' H9 o3 D8 w- N) O+ S5 D
                        part.move(@);-- load part" Z! G6 I& H+ {1 h3 O- d7 n* k
                        @.CurrIcon := "load";
0 Q( m3 f  ?; |                        GlobalDistObj := part.globDestination;
; n8 F% n, q7 c+ U                        assignLObj := rgmanager.rgAssignL;
  ~; C6 f; E0 x% B1 s( P                        row := assignLObj.getRowNo(GlobalDistObj);7 ^, i1 E4 z) N# P3 x' F8 s( {
                        if Row = -1 then -- since 70
+ r7 V! z( w1 T& g/ ~; C, u3 k                                if lan=1 then, x7 T% M' m; z- ^
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; @5 w! _+ q9 }" _7 e
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ y1 V0 y' D) t+ W                                else9 O' M# I* V5 z# k% R1 q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
" i5 q2 e4 w* |- Q) H; k8 Z& J                                                to_str("in docking station: \"",?.~.name,"\""));                               
* W2 G2 d& K: v/ Y" f                                end;6 ]6 R" i) ?$ u) j) O' W. z' p# u
                        else, ?' d& _5 C& l: C
                                @.Destination := assignLObj[1,row];
8 A: J9 q7 L, c- O- N: ]9 O$ s" j                        end;                        + _1 ]& h* V8 u  |0 V" H
                        newDirection(@);* j: ^" v, j" _( o$ |3 i+ f9 R% ^
                        @.HasOrder := true;$ q" k* H" P/ T: G
                end;
' d; T& {7 x8 l3 A% e# h        end;
4 f1 j, P6 j0 o$ p3 r" {$ ~" rend;        -- of the method4 h8 c) F$ W/ B1 C6 B2 @
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
6 ?; c: P3 v% U: J# D' e6 l! c6 X' L4 t/ [1 k. e7 |8 N  ?5 V8 x
这是AGV_putin中arrive的method。4 P& i" h( f4 o6 V
9 K' s# ?% `# K1 k
当到达物料速度越高时,这个报警更多,# l6 r! T7 X( d9 j; u# B0 v% Y
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! e, W3 Q, w8 ?8 u! K% G8 [- }# e
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# c$ y+ D3 U- B; G6 n# S2 M( p. R7 A' [0 G. \0 ?1 {; b0 o4 t
另外一个小建议,就是move,所有的move都可以这样9 t# j# v1 P7 @( p1 \$ {/ V; D9 c
if not move() then debug end8 X5 E" {6 \" m' s; j; D$ y! s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。" j* r3 E2 Q4 c" p8 M  s/ V
plant simulation中的free libraries有AGV模板,0 c% L# I% k0 W6 F+ [
里面也有案例。
# h7 F6 z5 P$ ~1 n' M我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。& A, |5 Z) `: `2 J1 b

" Z: Z; b; x! j; _# N, ^" {: T9 B3 H我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 6 W1 u8 j& c# L$ k
& a: r; R) r1 U2 ^" ~7 Q( K
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 1 Y# L3 ]5 I$ L( |5 G4 o
这是AGV_putin中arrive的method。
  p' [! u0 c" l5 R- m: j; W* ]- l' P. J5 S6 |
当到达物料速度越高时,这个报警更多,
3 n  A, M, B3 c1 a% T; T( c
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-21 23:32 , Processed in 0.019074 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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