设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9423|回复: 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 f9 E# @. C% b
*/
; E2 k  A* s$ i8 N- `5 kis9 v) S" @- }" x- @
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* r* W6 [5 |2 W  H$ C" W
do
# G9 T& H+ i9 |( Z3 }5 [        Lan := rootfolder.Internal.Tools.AOLlanguage;
. a$ l, v: G$ z, u( h! ^, r- s        if current = @.Destination -- else return$ r/ S$ m4 d. H. I1 p) v# w! N) ]
        then% P; i  W  K8 {2 C% g& v
                @.Destination := void;, {" T$ L/ I1 G+ E7 l; D: F
                if @.occupied then9 Z& l3 h* d$ {. Y, o
                        part := @.cont;
' Q% z: I5 m' \4 Q* C7 U9 u0 I5 v                        @.transpOrder := void;
; g$ ~2 t0 @* S+ \* m6 L# b! P                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,% [6 j; e: Z+ b8 j5 ^
                                @,root.eventcontroller.simTime);
4 b  R2 S& d& ~+ Z# q                        @.HasOrder := false;
* z2 h  v  u2 K- Z4 ~  ?                        @.DrivingHome := true;/ A. }, w( T! {, s+ ?8 Y
                        rgManager.tryToStartTransOrder;6 ]1 r( y0 Y" A; u' x
                        if @.Destination = void
' j3 f& s- |) M5 [3 ]2 T: m3 j" u1 j                        then -- no transport order for vehicle @
( s* H$ }/ `2 q4 f2 f                                @.Destination :=# p7 \8 x! {9 d6 p1 t- P% b8 M7 C4 j
                                rgManager.nearestFreeStation(@,track.~);
3 _/ J5 o; A3 I+ L6 B. v3 W" p) N: [6 S                                newDirection(@);   
% u  J3 P. g8 D9 V5 d9 ~( X                                if @.Destination /= void then
$ ^" J2 e8 G. L( X                                        @.Destination.NumReservation :=
; h9 V5 O2 z- [- Y                                        @.Destination.NumReservation + 1;
3 x* j6 J  U. J8 v* G2 w                                end;
0 V0 K! h) ~# |7 w1 u5 x                                @.CurrIcon := "drivingHome";/ F8 T% Z, D; P; C7 D7 s
                                @.DrivingHome := true;: P# E5 Y% p1 G$ K- V
                        end;
: T: e0 [/ g0 p                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 Q% z, Y$ u, {1 D3 I! B
                        part := @.transpOrder;$ m. [) }/ L2 r, S+ Z/ p, X
                        part.move(@);-- load part3 O+ H6 @; L9 r
                        @.CurrIcon := "load";
; K, I$ N$ D, a/ s( L                        GlobalDistObj := part.globDestination;" x8 P. k# T7 y  J& ~
                        assignLObj := rgmanager.rgAssignL;' {4 A( @! c8 a) ~7 m2 I2 |
                        row := assignLObj.getRowNo(GlobalDistObj);% C" {; L8 H5 j
                        if Row = -1 then -- since 70
- ?7 z; {: l8 `8 v: Q# [- f                                if lan=1 then, Y3 S) o3 Q  t' I7 V- T
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
- s( P* R0 v5 C! F0 ]* \! J                                                to_str("in der Andockstation: \"",?.~.name,"\""));# ?- x" U# O+ |7 N2 X
                                else' l: O, r) s1 K5 ^* t
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),/ ?2 [* S5 n; o/ D& {
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 q6 i+ v! k8 M  X( T% h                                end;- R+ C9 C) q: v5 t
                        else" ~. A$ B. ~7 m# d  c  m0 N7 k
                                @.Destination := assignLObj[1,row];
1 k: [  ~& D( w& t! A7 E                        end;                        2 `( g" E9 T: {( R$ L5 ~% V
                        newDirection(@);
2 N# d" z6 K# a, ]; O. R$ r                        @.HasOrder := true;
* _2 E1 r  p5 g6 V& W+ `, q                end;* y# i. A9 p6 Q. t- B
        end;2 e' C& k1 H5 x- m: X
end;        -- of the method; ^& P! B  I' q
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
; U" ?1 K" a! `) P" G. B  w" Y5 {- z- ^
这是AGV_putin中arrive的method。
* H+ t" K. J3 X/ ^8 V1 c
$ u; n# z5 F1 a当到达物料速度越高时,这个报警更多,
# F5 n8 ~3 K8 \( ^7 ?' r- S7 c可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 ]+ m4 h6 e( `. Q" o! P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?6 ^% w9 }* }; p% i

/ R2 N' _  g3 \! r另外一个小建议,就是move,所有的move都可以这样! b8 O6 T  f$ J& l
if not move() then debug end" f! g5 J; d. \% R
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# L5 u6 u+ a" S- {+ G+ V0 s
plant simulation中的free libraries有AGV模板,
7 Y3 c/ E1 ?& d8 c2 y1 `里面也有案例。$ `* t% c" f0 F+ Z1 \
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。; n7 q4 R. a/ @) C5 O5 Q0 L0 \6 s. N
8 ^3 L. b) Z  R& ]
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
5 X& i8 B  ~7 N( ~0 g% `% n* U0 O) k& s- I# D; M' e: ]  P( b& C
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 _; V. g) f) B- n这是AGV_putin中arrive的method。& f1 S1 b6 S* h0 y) M- ~
. K- I8 Y$ r' V1 M" \1 F5 _
当到达物料速度越高时,这个报警更多,
: g2 G$ i7 f6 m  P- B& v% U2 A
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-31 10:09 , Processed in 0.019257 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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