设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7655|回复: 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'
4 Y5 G* k! L1 ~* s' q: s$ f*/5 I0 U) J/ c* a  F8 E0 z
is6 @& A8 r$ p& ]- A
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;  r; R$ Q9 f/ H
do
$ Q! J6 v+ l5 }3 ~. J        Lan := rootfolder.Internal.Tools.AOLlanguage;
8 D6 Y, M6 k2 c! \. y4 y8 x8 w" f( x        if current = @.Destination -- else return
2 v* }+ v3 j8 K7 Q( k( z8 S        then
( l- Y1 K: A- R1 B0 ?                @.Destination := void;4 o: |4 s5 y0 O) M$ Z4 b
                if @.occupied then7 ]7 V) t; @- m, u
                        part := @.cont;8 V! R% Z! R5 r! M% T; U) P- z" I
                        @.transpOrder := void;
/ D, F4 q# p/ z) Z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,+ _, {2 `7 v( C+ O* B8 }, y- H0 v
                                @,root.eventcontroller.simTime);7 ^+ K" l* L( d$ j4 {. ?
                        @.HasOrder := false;
" h& v9 M. f1 ]; Q                        @.DrivingHome := true;% m# J, O4 ?+ M4 y4 u( Q
                        rgManager.tryToStartTransOrder;
2 Q3 J; @1 a4 v; {% Q: s) u                        if @.Destination = void
/ E- C% _6 W' A1 B1 ?  b  `+ F                        then -- no transport order for vehicle @3 O& H  T+ g% T$ r; F, ~
                                @.Destination :=
/ P# h; i6 D7 P/ ]8 I                                rgManager.nearestFreeStation(@,track.~);2 a, p6 `  _8 F! v! K+ b2 [
                                newDirection(@);   
1 G; f" D( P6 K1 t1 x) h4 m                                if @.Destination /= void then4 @+ F( Q- g' I$ ?7 f9 F
                                        @.Destination.NumReservation :=
& k  d6 P/ z9 E( M' A                                        @.Destination.NumReservation + 1;
$ z& O& r% l1 k5 M5 l2 t1 N7 m                                end;
- i* b$ A: ^0 S" _2 W                                @.CurrIcon := "drivingHome";& B& c9 k! T( ~9 h$ q3 w) I
                                @.DrivingHome := true;
2 c) ?/ A& Z5 P5 f( k* N* F( x( e                        end;
% \: D/ U$ A( s0 f: W                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
3 R. v1 V, i! _) Q( Y! K                        part := @.transpOrder;: a2 g% a9 Z6 D" p0 \2 w9 ?
                        part.move(@);-- load part- U. g* I) X) `
                        @.CurrIcon := "load";
$ v7 [2 a+ Z# l5 R: y" {' K                        GlobalDistObj := part.globDestination;8 z; d! T4 Z3 Z& f% \  w  d, H: y
                        assignLObj := rgmanager.rgAssignL;
8 a! ^) d) L4 k! E% H$ _                        row := assignLObj.getRowNo(GlobalDistObj);! e, _" |; ]' {/ r5 p8 Y2 t. E! H6 Y
                        if Row = -1 then -- since 707 j) ?' W; b0 q  i6 r& v
                                if lan=1 then9 g& W( x/ T1 s5 ?5 Z2 Y. S
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ u9 t: {3 H% j$ ^5 K                                                to_str("in der Andockstation: \"",?.~.name,"\""));
- X1 U( g; r9 }2 ^7 \+ d6 U                                else
8 }! u: b! a: l1 @# w5 ~                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, y* q# e0 N# s2 C                                                to_str("in docking station: \"",?.~.name,"\""));                                2 H8 a* \0 N5 M/ m8 k. }/ h5 n7 F
                                end;3 l, i; i3 a0 n1 C- v) h
                        else, y* t# @  [+ u
                                @.Destination := assignLObj[1,row];3 X! [$ i# J! @' o5 s  c
                        end;                       
4 l+ ?; @4 ?" X) c                        newDirection(@);+ R' ]& q, ^  m! Q; d: {4 o9 P
                        @.HasOrder := true;
- q  C5 l3 Y/ _6 X7 e7 U3 \  Y6 K                end;4 d! U7 D3 N( d" J, z. F2 U
        end;. M! V& v3 x# _! ~
end;        -- of the method5 s6 A: T& C7 u4 w4 v/ W
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 % E( j1 B$ W, r( u& T9 r2 }7 J- e9 _  o

' [2 s+ Z8 O4 c- R2 @' z/ e7 }9 H' P( Y& W这是AGV_putin中arrive的method。
$ s& h) |8 K$ z( O
" \) v  s/ V" K) y# v6 N! N5 T当到达物料速度越高时,这个报警更多,* M/ k' p# ?( K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 P& _) Y7 E! a4 O程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?4 m9 h. ]3 L. S8 A

9 K$ V3 n  B* z" v  X$ E另外一个小建议,就是move,所有的move都可以这样* ?8 E, V9 I' V6 W
if not move() then debug end
3 W" B% e# U% E) p1 o9 F! n+ }  V这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。- e8 q$ h& r& p( L8 \7 \4 d( `6 L
plant simulation中的free libraries有AGV模板,6 ~3 A6 K0 [" c/ J+ K5 I
里面也有案例。
% ]" L1 Y$ K, w8 }9 r我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。# t' d' d- K" g6 a6 J- @

# A; u% N- ]& J% U' s/ U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
- }# P8 {! n; v- `" W, A  S! u) H: t0 ^1 F4 j7 z3 `: J& P, i7 y, _
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 k/ ?# c, T  |3 _7 L这是AGV_putin中arrive的method。
  N& n; N* f0 u# x
5 w. e  _, V* V3 g9 H7 ?! s当到达物料速度越高时,这个报警更多,

+ F; ?& d' x+ `# z* g0 c另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-22 18:17 , Processed in 0.020961 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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