设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9816|回复: 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'
5 ?4 A6 r9 e4 W# C. Z; T*/+ G- p  |% N' q" z
is
" o  Z. \3 g3 Y& P+ l3 Y* B7 \' l        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
6 |" ?" L) _+ Q) x) Edo* e  M' S- r: ^1 }
        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 J. U, o1 @/ ~7 N( W+ z2 l+ i        if current = @.Destination -- else return7 F1 s4 |% U! ]
        then
9 S; H9 H/ m$ ]/ C                @.Destination := void;
7 k. ?$ Y+ K9 N8 h7 @7 G* G                if @.occupied then
8 `) q: N& J2 m7 j1 }7 `! |                        part := @.cont;
8 ?  j: o+ y& C. J8 D, h                        @.transpOrder := void;
* U' [6 M2 Q) n: K  J& N( C* b2 x                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ p% c5 l) f6 z                                @,root.eventcontroller.simTime);& Y% B* Q, ~  _" T1 P: g
                        @.HasOrder := false;* l+ b0 M* n5 G3 J( |6 x
                        @.DrivingHome := true;  u1 r/ h9 Z1 j1 l
                        rgManager.tryToStartTransOrder;
7 w. d) p% z& y  n9 t( t# {9 v                        if @.Destination = void5 F) U/ W* z$ i# Z1 E
                        then -- no transport order for vehicle @
7 K# H1 ~5 H* K* Q9 t. A                                @.Destination :=
' V/ x1 t8 N7 V0 z9 K                                rgManager.nearestFreeStation(@,track.~);+ h1 m" A/ M8 ?! M
                                newDirection(@);   4 ^" x3 g  i4 b* z& n/ T# d+ E
                                if @.Destination /= void then
, A0 M9 s  O+ \- u3 ?! Y! x2 P+ e                                        @.Destination.NumReservation :=
, h5 ]7 Y2 r) d7 V1 y' _* J                                        @.Destination.NumReservation + 1;
, f9 d2 l$ P  r# T                                end;
% @; i! m* g7 D+ T( `  @                                @.CurrIcon := "drivingHome";
) T# @; ^7 K! `( i                                @.DrivingHome := true;: A* p# A9 |# L( c$ x3 h" o
                        end;
9 A8 V/ g; J# i. {                else -- the vehicle @ is empty, both vehicle and part are in the same dock station& l) c  N  E. q! |1 }
                        part := @.transpOrder;
3 T: z3 N  G% G, T                        part.move(@);-- load part
" Y' s1 ~; C: J, u- V                        @.CurrIcon := "load";' i5 g6 `$ k! ^
                        GlobalDistObj := part.globDestination;
7 |4 `% |, h. b' Y                        assignLObj := rgmanager.rgAssignL;  W3 U: r+ }: x& V
                        row := assignLObj.getRowNo(GlobalDistObj);/ ]: Q; k7 [4 M' r2 [# P
                        if Row = -1 then -- since 70
" e0 I5 T6 d' Y  m( F9 y! v                                if lan=1 then
8 s2 K1 F1 |+ r/ q                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
( x) O6 O. B' [+ Y, \8 D. q& B                                                to_str("in der Andockstation: \"",?.~.name,"\""));3 |- b( O) K. T' q2 ^' i
                                else1 O% r$ }' j+ g0 ]3 ]5 }
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
* M8 o* ^( Z. f& ^+ Y( M# U                                                to_str("in docking station: \"",?.~.name,"\""));                                & I- p- f$ s" z" b
                                end;# A7 c$ U& @* P2 S, R  L
                        else1 {% F0 |1 W4 y  j
                                @.Destination := assignLObj[1,row];
! O/ ]- z% X" P9 n6 F0 \* y8 N+ K5 I* S                        end;                       
# i0 K6 N/ k/ E+ e( _                        newDirection(@);
: @! D4 O; k# D                        @.HasOrder := true;4 A/ i/ x# D- E9 W/ f1 o& A4 L
                end;
% J4 B, `' q0 m: o9 l        end;
  F" Y* K, K8 ?, vend;        -- of the method
7 ?: p  w! ^+ Q* I& w' Y9 j% h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 " K- |1 X& U* Y$ @2 g4 j) l
1 c6 D  H, I% b9 O7 h+ Q
这是AGV_putin中arrive的method。
1 A) ~  w2 O( s! K
) z) t4 ^9 Q  |# @7 H" ~当到达物料速度越高时,这个报警更多,; v/ ], ^$ f& t* D, Z3 c# H- Y1 }8 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
& o3 w7 r6 P' v# Q4 x# F程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 ?- {. e/ X$ `6 C& Z" J2 [" }: v4 \9 {4 ^
另外一个小建议,就是move,所有的move都可以这样2 G" R9 K/ T4 Z% ^: U
if not move() then debug end" ]& ^/ V5 v1 x4 [2 e- y2 r0 Q
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
. L$ v0 C5 A: H) u; _plant simulation中的free libraries有AGV模板,
. x  O! x9 V$ \- N1 `# v里面也有案例。2 ~7 g# Z9 b; r1 F
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
7 Z7 C9 i# S+ c/ B# l1 @
0 Q5 C0 P/ |) p% t: B% e我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 * d5 P7 K7 x9 y# D

. g! _* J0 t1 U5 w% _; Z3 p那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
4 c& X' p2 _" Y, v) d% I& O) P2 {这是AGV_putin中arrive的method。( E+ Y6 c( P3 D. K- B
$ E3 \- s5 T& E4 C/ [
当到达物料速度越高时,这个报警更多,

, A: w( X3 e8 Y2 S0 M0 g9 D# m另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-27 04:30 , Processed in 0.021039 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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