设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5881|回复: 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'. b- G! y$ B) _; u0 E- m
*/7 t* L1 F9 x2 x# K; t
is
) v3 w0 {7 ^; [( Y% a* m* T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
( M" p; }8 r" p% qdo3 Q8 o/ H; `. h! j& {; D
        Lan := rootfolder.Internal.Tools.AOLlanguage;9 F4 R! B$ \. _3 @0 W7 S+ S5 O
        if current = @.Destination -- else return, v. q& C( Z' k8 [0 r; S
        then
; X4 l/ K$ S- A% A% t; d                @.Destination := void;
1 G" k1 O' _/ n5 W6 |/ l6 y8 K                if @.occupied then
7 a' f9 m5 q3 x  t5 G  P                        part := @.cont;: w' x" T3 ^; [1 o% l7 v2 g$ B  M* ^
                        @.transpOrder := void;
3 |9 d& }# I# K6 h; G; n: s                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,1 @" V: D: Z' e0 ]- s) R. V% U
                                @,root.eventcontroller.simTime);9 L5 @6 z9 F+ r. ~- G% d4 q) Q
                        @.HasOrder := false;  N2 b% v( ]6 i5 V# C8 x
                        @.DrivingHome := true;# k/ ?/ O& m; h
                        rgManager.tryToStartTransOrder;
% A4 e$ t( A- R! Y                        if @.Destination = void7 ]( O( Q( }/ U3 H3 r
                        then -- no transport order for vehicle @3 J) V. b4 U) B" ^" g' f
                                @.Destination :=9 y2 {4 _5 l/ v; s
                                rgManager.nearestFreeStation(@,track.~);7 T* u/ i/ ~3 J3 p
                                newDirection(@);   6 Z4 {) E/ n" K7 }. F
                                if @.Destination /= void then1 Y& m0 H$ S- R* B; I" [. V
                                        @.Destination.NumReservation :=
6 b) T6 c/ |2 ^; E" b                                        @.Destination.NumReservation + 1;7 B8 ^2 i6 R% V  ~; q
                                end;) j0 N' F5 b. T$ F! ^  D
                                @.CurrIcon := "drivingHome";
' V5 X" o# B+ N- e$ |' M+ b9 F                                @.DrivingHome := true;
2 u4 j( g3 P; Q                        end;
7 A( e/ f' t' V                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
2 `% Y! N2 h  _1 ~; A3 j$ U4 ]                        part := @.transpOrder;! r  A7 N* C4 p
                        part.move(@);-- load part
+ R. H8 D1 {0 J/ h                        @.CurrIcon := "load";2 l0 x; R0 @1 k3 Y8 d  @
                        GlobalDistObj := part.globDestination;
+ C, d0 ]" @$ L                        assignLObj := rgmanager.rgAssignL;
6 A! \# u, @- ?3 a, e                        row := assignLObj.getRowNo(GlobalDistObj);
8 N/ y$ f( Y) Y6 X                        if Row = -1 then -- since 70% [; r1 R$ V. u3 ]8 c
                                if lan=1 then' @, f2 B" l8 T( T' A. f, n' [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
+ `* a5 n1 b/ Y5 U1 c3 b: d  o& _# W% A                                                to_str("in der Andockstation: \"",?.~.name,"\""));
$ a  D% i3 c3 O5 u! m9 y& i                                else
/ s' k2 [) w" N* g                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; }' t3 Y, R2 Z! t. y; `                                                to_str("in docking station: \"",?.~.name,"\""));                               
% B! V2 [  Y: n" t# v3 q                                end;/ a  K/ g( z( f) X
                        else: ]3 W$ q, T& f7 d  N7 i
                                @.Destination := assignLObj[1,row];
: W! D0 ]9 k; P9 f" d7 ?0 k                        end;                       
# M, t6 L2 f' l2 Y3 f                        newDirection(@);
2 _7 }! z8 Y' O- \+ [                        @.HasOrder := true;
& n7 t2 u' I% l' ?8 z7 @7 v                end;/ W. [, V' G1 Q
        end;
; |* Q( L  t+ e* D6 H( R2 s; _8 Jend;        -- of the method5 Q+ f/ E. I3 o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, E- l4 @8 w1 B9 |" K% A. h( C6 V' k, x
这是AGV_putin中arrive的method。
, }$ Z2 T; X: V9 P1 V
% g+ A5 L  d7 E6 x当到达物料速度越高时,这个报警更多,
$ _- f3 W7 g# {" ~' q0 J可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
$ S# B# ]. u3 R) W" |+ e$ J程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 u$ _. U$ u( q7 X% j+ l( x( E8 ?) y( o% O6 j  E5 Z! k
另外一个小建议,就是move,所有的move都可以这样
9 c2 S- ~+ A: O; Z  j, Zif not move() then debug end
; |. O0 H: r4 x; P# x% N4 ~1 G6 I这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  x, S$ [' V; q' |% l$ K
plant simulation中的free libraries有AGV模板,
. C6 A( {& C* L$ a  Q1 P里面也有案例。
* s' C, j0 y" h0 G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。( y' r( S5 Y1 R8 \+ |. @' b! l% Z

( d$ e! m' I4 a/ X我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / j% w2 H& \7 g* c
" O+ B' z8 q+ R, R2 @1 B
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
; \* \* U. p- ?) G6 @4 n这是AGV_putin中arrive的method。
  R$ R- O: _" X' r" n
. x* O% V: Q2 v6 D; O当到达物料速度越高时,这个报警更多,

2 |$ {+ D& _5 H4 X/ T另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-29 12:30 , Processed in 0.019154 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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