设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7358|回复: 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'
2 P8 s  ^) y* g% K* E; a*/$ M, X- _  b9 {2 n4 b) P
is" n! i. b% ?9 Q" x* v; }: h
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 k9 s7 a& O: O$ L$ |5 x; O7 p2 Fdo
( p; o, ~- Q2 H        Lan := rootfolder.Internal.Tools.AOLlanguage;
/ D) r) I# M0 ]3 q% ~( P* h        if current = @.Destination -- else return" u  i) B% o3 e1 i9 |
        then) {8 U5 G% l* i$ m3 e* P6 E  h- M; g
                @.Destination := void;& g9 W3 l& K' e! }0 Z
                if @.occupied then0 S; W6 A7 N  z/ y6 H- T. s$ I* W
                        part := @.cont;
3 B9 |6 e8 N9 F/ Z4 n0 b& \8 u                        @.transpOrder := void;
& W" G7 w/ L& \) [7 G* S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ p, Y9 a9 X* z1 |9 {5 N
                                @,root.eventcontroller.simTime);
' b( A/ G' `, \8 M                        @.HasOrder := false;& V( n" q1 f! {  n
                        @.DrivingHome := true;% i  o% }! s5 c: g5 Y( b& T6 A3 _
                        rgManager.tryToStartTransOrder;
) t5 z5 O' k/ V! l# t  U( c+ D                        if @.Destination = void
6 I+ p6 s0 P* Z                        then -- no transport order for vehicle @1 |/ {% K0 ~& L+ k+ a# v
                                @.Destination :=
2 a) C/ D6 d. D( A                                rgManager.nearestFreeStation(@,track.~);
- q: j: q8 \) A( n                                newDirection(@);   ! w! H( S& F6 E2 }
                                if @.Destination /= void then1 J. p; Y. T! ~& a7 g) y
                                        @.Destination.NumReservation :=2 m1 ?5 s' I5 p4 Y+ r' ?" j
                                        @.Destination.NumReservation + 1;
/ b, ~7 o) _: t: c1 S' Z                                end;8 W3 N% M5 h3 b( f; l& g( S# n
                                @.CurrIcon := "drivingHome";
1 u* [% c$ L' U+ ?/ |* K/ y                                @.DrivingHome := true;9 Z# |7 a# q/ x+ n
                        end;1 a3 y2 Y2 E. Y& w: w" h8 o
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station$ \+ m1 R; b4 w- `' t0 h" Z, \# ?+ E
                        part := @.transpOrder;' f5 q7 C: H% C# w9 r2 ]
                        part.move(@);-- load part3 G) q& L% n& v7 u  o7 N
                        @.CurrIcon := "load";
5 J! a# r, u1 Y1 Z7 F. u  q5 q+ R                        GlobalDistObj := part.globDestination;
; F+ f& f  ~" X7 b; X                        assignLObj := rgmanager.rgAssignL;: U% Y$ U7 F! c/ N/ j- m* n
                        row := assignLObj.getRowNo(GlobalDistObj);
  o  Z/ |+ P; V9 S3 b+ ?                        if Row = -1 then -- since 70/ c( |1 F0 R2 L5 G* t
                                if lan=1 then
; @4 z4 b: i) B# u& n5 E* h. f                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),/ o$ t1 q. ^* W# M# \8 W8 C' f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));- k* ?% D8 f- Z0 m% @
                                else& U. L% b! l; F; Q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\"")," O7 u3 G1 O# J  m3 |) x; \9 Q% H
                                                to_str("in docking station: \"",?.~.name,"\""));                                . R; O% l$ Q: D9 L6 K5 `. \
                                end;
! x% A5 }7 g% x/ \                        else6 H; T2 W9 a3 D- ^* B
                                @.Destination := assignLObj[1,row];
$ x' Y' a) h: n9 X( d& o                        end;                        / C# V( m3 j; r8 S2 K3 ?- r1 e
                        newDirection(@);
% ~* k; U& [: I% [  ~                        @.HasOrder := true;
, q3 A5 |$ G) P                end;7 m+ @/ F  t" V3 h0 E! j
        end;
& \1 b4 J# I& x+ c3 mend;        -- of the method
2 j* r0 Y0 \9 o" v) {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑   |  ]% T* A+ k6 `) H9 b
5 |! ~' Y( [& p( T
这是AGV_putin中arrive的method。
4 U9 M$ E/ P2 K, Y3 D4 z9 ~! R' h1 b- x$ h  b3 J
当到达物料速度越高时,这个报警更多,* U1 d$ y- Z0 `  I4 S" l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。& P1 J1 Y7 Y. s# k
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
+ v8 w7 a" c/ C% ^( p* z& n
& D: w; c1 @8 l/ N: }2 f另外一个小建议,就是move,所有的move都可以这样
4 o4 r1 r6 w& N, pif not move() then debug end' f4 N( A, y, O7 p
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
5 i  y; ]$ t( K) ?1 F) M9 ?plant simulation中的free libraries有AGV模板,
8 _& J# m+ {# c+ q) m# g3 R5 L里面也有案例。  x: h; k. I, o0 Q# i
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
+ \6 k2 M( `9 G* {8 x: T  s/ o  ?! }
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
  P; f8 o- A7 X  [# V6 m0 v% P9 c
$ S* t, l1 D) j) D" G1 b! ?/ O那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! u& Q* }9 c8 x
这是AGV_putin中arrive的method。
' Q  R5 l6 s. S- V+ q0 \. u6 ^( P# ]# s0 ^- {+ l* `
当到达物料速度越高时,这个报警更多,

3 O: r1 B3 ]1 u5 g; R另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-6 18:00 , Processed in 0.020509 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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