设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9425|回复: 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'
1 p" M* O& d$ C/ u! l*/
4 g4 u! X0 I3 Q, |is
1 S; P( y0 Y+ v, c5 Y5 c, u6 ~- e+ m        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 S! k2 s( ~$ }* e( i
do
" d) o. ]& m' b$ M' D        Lan := rootfolder.Internal.Tools.AOLlanguage;8 a) G, g2 |" Z/ a, a* @: X. ]
        if current = @.Destination -- else return
# r' @7 O% x9 r( `) J        then
0 N' }6 ?# g* l% j5 }                @.Destination := void;
  u" r4 o: z2 }8 [0 d1 e/ j. R. n                if @.occupied then
3 P- F9 [& h$ {' G0 w                        part := @.cont;
9 w" _/ R& v8 u$ f3 _" @                        @.transpOrder := void;, j' o' g& r/ ?7 `, u  [
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
' S5 ]5 C' W  [) ~. |                                @,root.eventcontroller.simTime);
4 J" n# C+ G: s/ e1 E* @                        @.HasOrder := false;- R+ N6 J1 E9 e, u6 E5 U
                        @.DrivingHome := true;% x" L3 m. i& c  F4 X) P! r( d
                        rgManager.tryToStartTransOrder;4 ^! a$ X0 S2 ^. ~" D1 ?1 S
                        if @.Destination = void4 U. Y0 g* V* \* X& B* s, F
                        then -- no transport order for vehicle @7 T# n9 U. e" f$ ~
                                @.Destination :=
0 E9 {' x4 c6 x                                rgManager.nearestFreeStation(@,track.~);
$ r9 }% D# K- c2 [- J                                newDirection(@);   
& _6 N. v3 \- ^2 ?                                if @.Destination /= void then9 h3 D  x2 ~* W7 }; T/ n
                                        @.Destination.NumReservation :=$ e" N* u! F: A  {& \* z4 w, Y
                                        @.Destination.NumReservation + 1;# F8 L  O9 `; B
                                end;( k( l- t% S/ K8 T8 V% y1 |
                                @.CurrIcon := "drivingHome";. t4 F# Z9 A( {
                                @.DrivingHome := true;) b) o8 J$ B+ J7 P9 _1 Y
                        end;
$ k  _) |% G) V  u# ]                else -- the vehicle @ is empty, both vehicle and part are in the same dock station# T" k) K0 R$ N6 F/ _) V3 Y
                        part := @.transpOrder;
2 @- M. o+ Y; [/ b" @: A2 _                        part.move(@);-- load part3 Q+ |9 d7 Z; K, S
                        @.CurrIcon := "load";/ u/ F+ v9 _0 w; Q/ y
                        GlobalDistObj := part.globDestination;% F; K( x0 F) G! K5 [8 s: p4 y7 d
                        assignLObj := rgmanager.rgAssignL;/ L/ I  ^" i7 n. E0 U3 b# }! y& S  w
                        row := assignLObj.getRowNo(GlobalDistObj);
2 o  w$ {# i3 p- I/ R                        if Row = -1 then -- since 70' g5 M6 O+ ?- u# ]8 a: c5 T
                                if lan=1 then$ h) z7 Q9 e5 v& l9 T' ^/ K
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),1 q  `$ j, \7 O  f
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" F) P9 b1 `$ h+ M                                else# p9 d8 H2 h6 q9 h
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, `7 O4 c# c' }: ?- e6 ?6 f6 g                                                to_str("in docking station: \"",?.~.name,"\""));                                6 d! G4 V6 L0 Q
                                end;
, a0 R- D8 v. H- q                        else) N" S8 ?4 P1 E' D9 Z' z% }/ O
                                @.Destination := assignLObj[1,row];5 w! w( M# U" @% R! d2 N5 h1 a
                        end;                       
7 {* d4 s  z" L/ d% a  h$ g% F                        newDirection(@);
: |; Q7 U3 ~- @+ |% @                        @.HasOrder := true;6 W6 v/ P# q" x+ {1 k8 E& l1 n9 X8 E" E
                end;
; L& Z& L4 G3 @9 z) m        end;* ?4 e+ o+ b& s3 o6 I
end;        -- of the method
% M# h( g8 ?0 z
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
% J6 i% `: G  i+ {1 ~6 P6 k5 \% `* X
& b( t( o. q+ W; C. Q这是AGV_putin中arrive的method。- r% V; b, {, f" c- t3 [1 x

% T1 o& K/ D: e5 ^5 S9 b当到达物料速度越高时,这个报警更多,5 c+ i/ M* {% E. Q0 Y1 k
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
( ^' ]0 |& \% ]  B* w9 ?+ R% L程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" y" r7 p" m$ r+ O2 |
2 \" a6 K1 y" m* W( q另外一个小建议,就是move,所有的move都可以这样' N, v3 y5 N+ h' B: p; M
if not move() then debug end. w: Q" F9 G! Y0 h3 d3 W, z
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。0 {" }! M4 @9 S
plant simulation中的free libraries有AGV模板,+ [1 b2 ]/ g6 W# Q
里面也有案例。
, v9 U. R7 K( s7 m我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" |2 X5 h/ ~. B
0 h! r5 O7 ?1 w" ^! ?5 h我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : x6 b- f3 `+ r6 K1 `) t% G
; O- P: A* h7 W
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 O- Z  z# t- m$ L' ^: |/ a1 ]* D
这是AGV_putin中arrive的method。
8 v& z. ]% F4 t/ M) ~" G' X6 ]) {: {( A* H5 _0 I; \% D
当到达物料速度越高时,这个报警更多,
  M* [2 B4 Y/ N; H' v
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-31 15:53 , Processed in 0.028787 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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