设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8816|回复: 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'
% }$ h. F; n  ~/ C: l7 g*/
1 m* P) \6 `/ ?  p: X3 v" w/ {# S% iis' c. R& K2 v' Z
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
3 l7 y) a4 h9 z7 X/ Ido
+ E: ~; @/ }0 l: s: V3 u/ c  n8 j        Lan := rootfolder.Internal.Tools.AOLlanguage;
  g1 @6 R, ~: e8 \7 k1 w+ B        if current = @.Destination -- else return  j7 N1 a! A1 |4 t
        then
7 K9 }- M' X/ }& R                @.Destination := void;
, F7 |5 j4 r8 K" q) \. h( v0 J                if @.occupied then
" T( j* z6 ?) E2 C% ?! M                        part := @.cont;
" H4 `$ n2 l- c/ J                        @.transpOrder := void;8 E7 W+ D. R2 a0 H* c
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,$ p% B3 c; ]4 M0 l' U
                                @,root.eventcontroller.simTime);, _. w8 r2 h6 @: w7 u8 y
                        @.HasOrder := false;+ h5 [$ }" x0 o. N2 {$ t: a9 Q
                        @.DrivingHome := true;" U( o2 W3 |' n% d4 q5 u
                        rgManager.tryToStartTransOrder;0 T$ s& ]9 p1 k! V6 z& I) U; g5 t" T
                        if @.Destination = void
# y" H: E" {  q# p                        then -- no transport order for vehicle @& _+ x+ p/ W' L$ }# P
                                @.Destination :=7 K$ {* _0 B9 ^7 p. T% y$ y! }
                                rgManager.nearestFreeStation(@,track.~);+ e6 Z8 l  p0 v4 Q
                                newDirection(@);   , ?) e: i- x/ x+ q' C0 ~6 I
                                if @.Destination /= void then) G9 [- E4 f) N1 S
                                        @.Destination.NumReservation :=* j) ~$ `9 ~) A9 H
                                        @.Destination.NumReservation + 1;
0 v7 l- ~1 F0 `  A                                end;4 X) L( f  Q* x' \' u% ^
                                @.CurrIcon := "drivingHome";0 o0 c$ b' X& ~5 R* {. a
                                @.DrivingHome := true;
2 G9 G0 k7 G* W$ J                        end;+ S" l1 r6 }, C. m0 y+ u$ Q
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- p/ O. x9 T5 @+ h1 e) i' q# c
                        part := @.transpOrder;
6 a: w; ]( F; M1 d1 B, M' U                        part.move(@);-- load part
, j: b+ F+ H$ h3 k4 ?                        @.CurrIcon := "load";
( M: g4 L% @) i. |: K                        GlobalDistObj := part.globDestination;
4 _% r6 _4 r* e! `' `" m* b                        assignLObj := rgmanager.rgAssignL;
5 R# W2 X2 }2 M2 V8 Y. r6 W                        row := assignLObj.getRowNo(GlobalDistObj);
. N, k  T# r/ e& S0 L& d                        if Row = -1 then -- since 70
/ L$ T2 |2 k6 D- F2 w                                if lan=1 then
/ ]) M- r& g( Q# r                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),4 F3 T; d- |' T, s$ p3 y' ]6 a! l
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
' l: W4 w6 k' w- N, w# `6 x* L! m                                else' Y- k" m0 {) s2 r2 M
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 @, Z% Q' {' O- h" O2 v7 s                                                to_str("in docking station: \"",?.~.name,"\""));                                1 R+ ^5 C+ p* Z5 i3 F: J% H
                                end;7 ~% t1 s* M! G5 T  R
                        else
( s# Z7 [2 _" {4 |( H                                @.Destination := assignLObj[1,row];
; H& w- V  @. e% N' `                        end;                       
9 s; G" r- p( B7 M4 B$ L                        newDirection(@);5 a/ @$ H. l! l1 w
                        @.HasOrder := true;2 [, D- `7 F& |* G
                end;3 h5 M- x8 b6 w) W- z4 U
        end;
) n1 j3 g" v# D; K% h0 dend;        -- of the method
( p5 V1 z2 p3 G- L7 d- _6 {( y- {7 N
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 I0 f  X# F; L# P3 {2 \! h

5 n- l/ K( x1 z* r  o这是AGV_putin中arrive的method。
4 S4 r. M% T5 x, u- J" t/ E+ o" f' F0 D
当到达物料速度越高时,这个报警更多,
1 V9 J" s: d; W1 q0 p1 E" Z5 o- N可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' u1 p! H7 K7 d# X程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 v! a5 h: F! `# D% I# ^( E/ [
& p( z* j7 z2 V8 V另外一个小建议,就是move,所有的move都可以这样) ^9 T3 h( w4 ?0 n9 Z; Y
if not move() then debug end8 A& h# E: e/ q$ c2 R: y) f* n1 s
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。3 E/ s& s/ ~+ u! Y7 |, C. c
plant simulation中的free libraries有AGV模板,
. s) r' u* E# ]% m& H- i1 A里面也有案例。
& G4 k7 E; r2 y6 t* f我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
4 Q: b0 J, N+ _' O7 A* E! Q3 b9 d  i$ q0 W8 x% d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
3 R1 i- l2 o5 C3 t' D
( s' Y6 v5 R# K7 c6 D3 M9 {那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 v  Z5 V5 c' K这是AGV_putin中arrive的method。
" U/ r8 \6 P( b( [( S/ d& G
: t+ V  c, T) L当到达物料速度越高时,这个报警更多,

7 G4 b" U$ C8 p, n6 U5 n# K/ M# k另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-28 00:32 , Processed in 0.013674 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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