设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9660|回复: 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'
, Z7 h' i( v0 |" E, v*/
7 Q# K+ m% [6 J8 @is
; K6 U! t$ g. H3 _; k* Z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
8 }+ A: X2 O5 Z9 d. _do8 k- U/ o; P1 P( v- z+ u8 V
        Lan := rootfolder.Internal.Tools.AOLlanguage;
( y& C/ M! H9 Y1 z/ K$ p( W        if current = @.Destination -- else return
8 a, u' e9 u3 R; O, Y- g6 o6 k        then
' F6 n4 v+ E4 r% E! b( M                @.Destination := void;4 c$ T" V7 q% _: K6 I+ W" e6 G
                if @.occupied then
7 }, F1 N2 [1 J                        part := @.cont;  Z0 P& _& c/ F( j0 n
                        @.transpOrder := void;
, o2 t3 C5 X+ g( w* |" m                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
3 C0 w2 O+ \3 N& R                                @,root.eventcontroller.simTime);
2 X4 L( a1 H# T4 C1 {0 o! s                        @.HasOrder := false;
: S: |3 ~$ t! H) L' y7 q3 _                        @.DrivingHome := true;* t+ S5 h8 s' B8 Z7 }0 [
                        rgManager.tryToStartTransOrder;- [, M& p) Q" T, I2 ]6 |* M2 ~
                        if @.Destination = void
7 ?9 N, v. u' u8 [% ^* E8 |                        then -- no transport order for vehicle @6 A! h& a* w' Q6 D
                                @.Destination :=
* m  w9 P/ o! }! |3 q                                rgManager.nearestFreeStation(@,track.~);
* f5 A" a' y5 Y$ b' w; p$ `' m9 F                                newDirection(@);   
3 W2 k/ x' D" k* b4 R- Q3 a7 n                                if @.Destination /= void then( {9 I& B7 o* e0 Q3 h! {* q
                                        @.Destination.NumReservation :=4 h. Y) X  [9 l( N4 t
                                        @.Destination.NumReservation + 1;+ _  V/ W8 `" [2 u- E4 p! ^) m- ]
                                end;/ F  ]" L" k4 s4 a: P
                                @.CurrIcon := "drivingHome";5 V( Z6 `6 \: X& {
                                @.DrivingHome := true;* j7 _0 G% |/ J8 K2 C/ G0 z$ S
                        end;
5 N# w* W3 b" x; @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station  N6 i8 E$ H/ R' B& }2 V- ~- a
                        part := @.transpOrder;5 R$ _  o, o( j4 m8 M
                        part.move(@);-- load part' b! G6 @+ w7 c0 U( I" d6 ~  ^
                        @.CurrIcon := "load";5 S: I% Q# r" {( O  B! S
                        GlobalDistObj := part.globDestination;# ]6 V: k: h" C4 \: }" a
                        assignLObj := rgmanager.rgAssignL;
0 g2 ^6 ^) j# B7 n+ ]% e) \                        row := assignLObj.getRowNo(GlobalDistObj);
, `: P( t" A6 H2 f$ i                        if Row = -1 then -- since 70
) p9 [% x7 X" [9 h                                if lan=1 then! m4 N3 l3 u5 i( ^$ _8 T
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
/ ?* ]- R7 U8 |; w                                                to_str("in der Andockstation: \"",?.~.name,"\""));
/ ]" G: A. x, `0 O( D                                else. j# t( `8 u* [/ J3 w% W
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),; F/ ?2 r& K' J9 {5 U2 T
                                                to_str("in docking station: \"",?.~.name,"\""));                                0 h) e; I! u* m0 T3 J; d& N# s
                                end;
$ f0 ^* m8 m3 j                        else
% ?9 f) ?* J  |$ {                                @.Destination := assignLObj[1,row];
' R( ?6 n3 E$ U" ?. M# @  ]                        end;                        - c) ^3 Q' M0 P# X9 S  T
                        newDirection(@);2 h# d& J8 j% o0 {8 }) U, ~, ]
                        @.HasOrder := true;
  n8 `% A8 c7 y9 M                end;
) L, c  n! _) X7 `) e        end;
/ k0 S: C1 N8 Y* s8 ]end;        -- of the method+ r* t3 `% z1 u1 B! b4 t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
3 C. G. `+ M& D* Z+ v% \
& I$ M8 A6 @/ b6 o这是AGV_putin中arrive的method。
* m9 b/ i2 p1 h6 {6 i5 ?6 |: W% ?  Y# [# ?0 Y
当到达物料速度越高时,这个报警更多,/ `; X( X2 L8 C( [$ g/ N9 {
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! G3 l5 Z2 k' S
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
% F5 D, c. T) I0 V
$ G5 ~5 q6 J* p另外一个小建议,就是move,所有的move都可以这样
7 p! j$ _7 c+ o0 Sif not move() then debug end
7 D" |# r1 Z8 |! L& Z$ A% Y& t这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 V* I( G4 p0 V0 B$ T  b( U
plant simulation中的free libraries有AGV模板,1 A+ r) R/ ^4 B& l
里面也有案例。
. o; s4 w4 X) n我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
5 M5 u0 M! p( S4 P' v. |4 t# u2 C0 b/ ]- m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
( C3 X$ k" W* T$ F# S. A' F
1 @! g" I0 ]$ ]. {/ b那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 1 l% z* ~, j# u- d0 I5 H( j
这是AGV_putin中arrive的method。
; |6 W& K2 c( n, a" L. B1 ^& b# @  X
当到达物料速度越高时,这个报警更多,
' [1 n) Z) q, Y3 z5 |, {8 c
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-15 09:51 , Processed in 0.017395 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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