设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6700|回复: 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'
% O1 R+ l7 h; b! G& X: v& K! G% ]! q*/
5 K) P6 k9 {4 yis6 S2 u' a0 T$ w/ m. ~/ f
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
+ v& f6 d; y8 W5 K, m" V+ [* F; Ldo
: D% k& L9 H9 L0 D* r3 g        Lan := rootfolder.Internal.Tools.AOLlanguage;2 ~3 D! W3 d) I" M3 i
        if current = @.Destination -- else return
5 n. {7 Z) J3 `$ C0 x' o        then
2 q9 R. H* F) M5 v( L8 ?& c. e                @.Destination := void;
1 Y# o1 p* h3 X' |& |+ B                if @.occupied then, [7 z$ z3 L$ U! p' Q9 \! Y; |
                        part := @.cont;
/ Q" z- P# H1 }$ ?                        @.transpOrder := void;# |, g. |7 n$ m$ |3 ~$ n
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: ]0 P" B& b1 P0 f/ s                                @,root.eventcontroller.simTime);
) \  G8 o7 L6 b5 u                        @.HasOrder := false;0 a( P$ s+ A2 p- A& v3 x
                        @.DrivingHome := true;
: M- }, o" d1 a" Y: b                        rgManager.tryToStartTransOrder;- Z6 M. p4 H4 b# P2 {4 X' f# S
                        if @.Destination = void
% V: O0 y3 Z! c7 b/ b                        then -- no transport order for vehicle @& I  |8 j' \2 q/ p7 X
                                @.Destination :=
% H' F& l) a: B4 m3 I. Z                                rgManager.nearestFreeStation(@,track.~);
& l/ Q& h; d* e, C% |9 p; S                                newDirection(@);   % r/ Z0 D8 u. k2 K8 r0 A
                                if @.Destination /= void then
- T" A- ~3 @( I& I0 H2 q                                        @.Destination.NumReservation :=
0 y& _% F; l7 Z/ C* T                                        @.Destination.NumReservation + 1;6 L0 x3 y, e; ^2 N
                                end;) \6 N+ ]; ?4 ~& ]  N
                                @.CurrIcon := "drivingHome";
# w) i' @: F( w: S) t5 x                                @.DrivingHome := true;1 F$ w! M9 F$ D, r$ f
                        end;
# b% D6 u( H* _( i% o                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
+ ?* T* u) ?6 N: J                        part := @.transpOrder;4 m# G+ X! `$ @2 L
                        part.move(@);-- load part
8 L% B2 d5 P# N" w' o, w                        @.CurrIcon := "load";4 q% _, u; Z  G) G/ s0 V* t9 {4 @+ \
                        GlobalDistObj := part.globDestination;$ d" T& \; ^1 \- Z
                        assignLObj := rgmanager.rgAssignL;% f+ F# C  D( P# m1 V
                        row := assignLObj.getRowNo(GlobalDistObj);5 r1 ?( f7 h, B
                        if Row = -1 then -- since 70" y# k. n% u* R( O; |4 {; }+ p
                                if lan=1 then, O. z( W4 U: Y! ?! ?* E
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),2 m6 a  a9 G0 w+ Y4 d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));1 L* J- }. L1 Z7 q9 f% K
                                else1 L4 @+ ^5 t7 s. c
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),8 A4 I6 h+ O3 y; {
                                                to_str("in docking station: \"",?.~.name,"\""));                                6 a+ z+ Q4 D  ~( c
                                end;
; H* D/ `0 f! ]  @2 ]/ }                        else
6 ^$ m) L9 a2 H7 c& f) Z! ?( |                                @.Destination := assignLObj[1,row];
& t/ B* V. p* o3 M/ O  t                        end;                        8 A8 j1 x* _3 t' u$ O; r, W: s
                        newDirection(@);
* [) ~7 i2 i& z) F' H                        @.HasOrder := true;) F' l5 X2 t) R0 z
                end;
9 U& _2 k5 K9 h. Z+ X9 ?        end;1 K8 ^5 k& B( r9 ]$ `# R: T
end;        -- of the method
: ~  W% U) U7 ^' G) E9 b( x% I0 Z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 - {5 J/ [2 k9 b! \+ E
+ h7 X3 n( N) x6 Y" S7 q, V
这是AGV_putin中arrive的method。  {$ h9 p1 K, J+ m6 a4 _+ ^" \
% ?2 X# t- \' R: W+ T6 j  b' N
当到达物料速度越高时,这个报警更多,2 L" R3 D5 p4 y8 B3 y7 P, b
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
! u0 i: Q/ Y# Q* [& e* c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
7 e5 x/ e: E; P* K* m- o0 [9 f# c) o; A$ U# h
另外一个小建议,就是move,所有的move都可以这样
/ f/ T4 X% k  c5 E6 r9 O% f9 iif not move() then debug end
- \/ `/ H9 A4 I! Q这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( c3 p; X8 F6 K6 j" p- r, A
plant simulation中的free libraries有AGV模板,! y8 _4 h/ w4 z$ R8 L3 O
里面也有案例。" y8 N, j# C' w- k
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
6 O# H! ]2 J* ~# w" Y
2 ~% v) w- t8 d4 |9 v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 2 e6 h- q3 O- Z, F% y! Z  D! B) u

) ]  N* ^$ i& ^* l8 Q1 E$ o; e9 _) R& i$ Q那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 W2 r: _, R7 t  i
这是AGV_putin中arrive的method。% a1 S7 ^# t; ~& D/ [& z0 y# r
9 P6 l3 s7 b& V' A0 r
当到达物料速度越高时,这个报警更多,
4 e. ^9 J. b5 @' A6 Z
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-21 15:30 , Processed in 0.019013 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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