设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5484|回复: 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'
: \- i5 w  m! U2 v*/% E* M$ Z( ?- U8 D9 K" H
is
! [8 E" c, J; P3 t        part, GlobalDistObj, assignLObj:object;row,Lan:integer;! o& L) F6 Q* Q: j, X+ N
do" g* E9 _7 T& P% H7 A" C$ {
        Lan := rootfolder.Internal.Tools.AOLlanguage;
& y2 G+ v/ R9 U4 [& b) W9 K        if current = @.Destination -- else return+ \" ?) k7 s2 \, X
        then
' G  |: g4 f+ X0 M" x) Q                @.Destination := void;; Q7 M) u6 T% t$ g
                if @.occupied then
+ E# z+ }7 W* @# K, ~, }: v1 p8 t$ d7 P                        part := @.cont;" T$ T- z# G5 \
                        @.transpOrder := void;
. ~5 T2 m1 w! Y2 T+ A" \                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
/ x7 d; M( ^3 p5 ?+ Q( `, l                                @,root.eventcontroller.simTime);* l  e4 c6 i& u* K; x# `6 X8 D
                        @.HasOrder := false;
1 m2 _5 `: I8 @- O+ z0 A8 x3 L# \! C                        @.DrivingHome := true;
9 \( h/ f* \- `& D& Y+ f% v                        rgManager.tryToStartTransOrder;
8 l+ l1 _5 J: a7 W                        if @.Destination = void3 w1 A; P; A9 H2 c
                        then -- no transport order for vehicle @3 L6 i' \  ~1 T* B
                                @.Destination :=6 s3 _; _9 ~7 u
                                rgManager.nearestFreeStation(@,track.~);1 P9 X/ r+ k8 C( Y% v
                                newDirection(@);   6 s& d6 s! z' I
                                if @.Destination /= void then8 s& x4 D) a# u  ?) p7 Y& h. B
                                        @.Destination.NumReservation :=
& T9 T" C2 R5 _* @                                        @.Destination.NumReservation + 1;
* ]: c+ U2 l* k1 Y, ?+ F" b                                end;' z5 H2 U! E! Q  B7 C! }
                                @.CurrIcon := "drivingHome";5 Q5 ~1 |5 A5 V+ Z
                                @.DrivingHome := true;. C" W7 ]. W0 x( q% ?6 m
                        end;
9 @/ a% @( Y" t' I2 N9 u' N0 z7 K+ X                else -- the vehicle @ is empty, both vehicle and part are in the same dock station' w. \6 y  p* }, H) E4 p& x
                        part := @.transpOrder;- [0 q! j4 b2 ^( a" [  L
                        part.move(@);-- load part
" Y' J. J% y) \  r: f                        @.CurrIcon := "load";+ V# U( t( q# f) a
                        GlobalDistObj := part.globDestination;
+ ^5 r6 ?- M  ?  A                        assignLObj := rgmanager.rgAssignL;
+ {) m6 z6 H* D6 ]1 F& k9 m; P, Z7 d                        row := assignLObj.getRowNo(GlobalDistObj);: p1 Y# Y0 b( Y& R. H* t
                        if Row = -1 then -- since 703 \+ `& R; i+ o- ?; P' @- Y% b
                                if lan=1 then
* C4 @: P* m7 p( T                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),) I6 U6 Y6 c. H. r1 Q
                                                to_str("in der Andockstation: \"",?.~.name,"\""));% |. }9 Z& V. @2 k3 e4 O
                                else) J& `" @6 T; X" [9 K9 @
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),5 C6 D. d& s& e; v6 D6 X
                                                to_str("in docking station: \"",?.~.name,"\""));                               
" g5 S( O9 v8 L/ i: G                                end;& z: h( e* j$ v6 [4 l
                        else
1 ]  S3 S8 `) a/ D. N( [; g; N                                @.Destination := assignLObj[1,row];" u; y* t* j' {0 t
                        end;                       
9 P% ?6 P8 @/ G% N8 y& R, Y                        newDirection(@);
4 }! Y' v0 [2 P1 f( ^                        @.HasOrder := true;
& o0 A: u9 J& \- }! l. v, r                end;
- t( U  T" q; Z7 t8 _        end;) [( H2 F/ M# u  G
end;        -- of the method
+ K0 Z1 u; U/ V% N- U
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
* [! S- c& {) b  `
7 z+ q' U) }0 f2 I这是AGV_putin中arrive的method。
. o" n' j% T7 E& ^* j3 J; b, J" A$ _* A6 p; H
当到达物料速度越高时,这个报警更多,
0 J6 K1 y, L$ p3 A- ]; A可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 E- q8 }& t* S3 ], S1 O/ H; r程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
  {( x! z4 z0 V0 W8 O; s- _) O$ ^. Q) m. Z+ y
另外一个小建议,就是move,所有的move都可以这样
/ t1 ?% e1 a5 Bif not move() then debug end
. |" e. t8 X8 g; @( y3 S# s( {# [这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。- k: X8 O9 }* w0 g8 l9 Q2 C
plant simulation中的free libraries有AGV模板,
: p: E4 F. Z" K$ h8 ~/ Z里面也有案例。
% Q1 N# w9 c. r6 P我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 W5 r" _/ x5 Z: ]& h! u/ r" F$ s8 f2 c2 |9 v+ Q# s3 d9 M
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : v: k6 o" ]2 X# _0 M, w& p; F

9 \. }# x" B) [; R- r; |9 n! D$ C3 W那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
. L' Y5 c, Z2 z6 S4 O' M这是AGV_putin中arrive的method。( T8 N9 W) C! P" f* v( e

% s* U4 y0 U1 B4 {, [; A' _; v当到达物料速度越高时,这个报警更多,

9 Q% H8 L- Z3 }% v. F另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-26 23:02 , Processed in 0.018644 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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