设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5356|回复: 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'
, A- b  A' E, m9 G9 h9 b*/$ R2 o7 C* t& e  C- ~1 ]
is! C: q+ E4 y4 Q3 K' w- L4 [
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: _0 Z% e8 h& R" W0 X: n9 I
do
  h% i0 y( @% {9 D& g" n0 k2 e. j        Lan := rootfolder.Internal.Tools.AOLlanguage;# @& R  h3 V2 c* o6 \/ d
        if current = @.Destination -- else return
+ r: c' g9 k+ o: K% U        then4 T. e* b; t: E/ x2 f4 |
                @.Destination := void;+ I6 X' w; E! n: p# @
                if @.occupied then( Q' R# L2 q( K" d: z" g
                        part := @.cont;
% k8 q3 e" ]% h" I& z. d; f                        @.transpOrder := void;
; G  A( c0 D9 m( W. P5 D                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,4 L; c5 x8 N* h
                                @,root.eventcontroller.simTime);& T* X6 o4 {# f& Y1 z4 }( H1 |
                        @.HasOrder := false;
: d- O4 z& ?3 [3 u) R% n0 k                        @.DrivingHome := true;3 I+ ]: v) e* j
                        rgManager.tryToStartTransOrder;/ q/ g0 X. D! c4 e
                        if @.Destination = void! B% o7 E% ]$ ^' g
                        then -- no transport order for vehicle @
' M+ R/ ?8 c2 J& X" d, U                                @.Destination :=
/ o- ?; u; ^9 q: d, T                                rgManager.nearestFreeStation(@,track.~);& D5 u7 j: g. k/ g* |
                                newDirection(@);   ' b1 y+ \" `: H  [  T6 F( ]
                                if @.Destination /= void then% a5 O5 Q7 U3 P  f& N6 v
                                        @.Destination.NumReservation :=6 V7 e5 p: f7 a6 W( t
                                        @.Destination.NumReservation + 1;
- n( p$ i! \  `/ E                                end;! k1 `6 J3 n6 Z
                                @.CurrIcon := "drivingHome";; k: ~# F8 u  A0 Z. d; d5 b' H
                                @.DrivingHome := true;
4 ^" V* T% z* O! O! k- S                        end;# }, f7 m- e- Q' \: W3 ?# \2 i; R
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
8 `8 m% i/ M. N                        part := @.transpOrder;9 c7 v  ^/ t$ ?8 b3 }
                        part.move(@);-- load part
% b0 M2 h/ O5 I0 s% C' L                        @.CurrIcon := "load";
1 y& W. Y5 Z1 u2 {                        GlobalDistObj := part.globDestination;
9 u2 `3 m% z3 \+ k2 S: t% `                        assignLObj := rgmanager.rgAssignL;* j" ~0 A& K6 d+ v: J- p# Z$ A
                        row := assignLObj.getRowNo(GlobalDistObj);
2 u' x: B; s. b4 n  c7 R5 ?                        if Row = -1 then -- since 700 V' g: T+ [2 V5 c
                                if lan=1 then4 p) v. C9 ^4 _5 v
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),+ V7 p7 _/ ~+ b9 Q% k
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
. P8 B6 T- D9 j/ D* ?                                else' S: i5 T# x& F( n) {1 y- j
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
! B8 r& J* P# n" q& i                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 Z4 D7 u0 x4 w& h                                end;
: m7 c  Z/ h+ r  z) j! U8 y                        else4 Q2 n, G, m& _$ n5 D) ~
                                @.Destination := assignLObj[1,row];
, D" X6 S' j, l2 G# ~% S  `3 A# M                        end;                       
" d; ~! Z& H% l$ M                        newDirection(@);* t% ?* ?# e! I2 Y
                        @.HasOrder := true;1 M5 ~! ?: X& k
                end;0 v; e/ \3 i# [6 J2 Y0 Z' S3 W7 W
        end;
1 k3 B8 F  |) nend;        -- of the method
/ N8 Z5 }" }. F: h: u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! v& `' \1 n  b( u
2 ^# U2 F% l) M6 J  L$ A/ Z$ {) q这是AGV_putin中arrive的method。- e, d: w6 j7 C& K) ^# f" D; g

4 Y) K$ X* A. F当到达物料速度越高时,这个报警更多,$ C! C# q# x+ |  y7 m5 L
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。! q& |$ D: t7 A" v# R- ]: w9 b
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
9 T( |* j. u* A/ H" y* H5 Y4 z- h$ B, q- U! Q  g3 I
另外一个小建议,就是move,所有的move都可以这样
- J% b! m1 G2 o, Y0 @: c! W. X& hif not move() then debug end
9 R8 g2 V  B1 m- f" G9 }4 l0 M这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- U1 c/ t  o: V" ^plant simulation中的free libraries有AGV模板,: [9 `! E! x$ _' N
里面也有案例。3 D: w6 u5 m9 R: C- N! W
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 U/ m( X3 I* P; Y2 a7 _. R$ `% E

( }& y. {7 g1 U9 G3 F2 ?# y/ X, o我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
; {% T6 F6 T; X5 l! N2 V7 E: Y  Z' ?2 X0 N$ k: }2 d
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 9 k1 r2 C3 I( W9 M7 A1 z. J- k
这是AGV_putin中arrive的method。' a: t5 L- N& _1 B9 F) z4 M( v. }

5 ?8 o( s$ _9 u当到达物料速度越高时,这个报警更多,
5 n( b* U0 [% ~2 e# H1 e& D3 e0 d
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-15 06:18 , Processed in 0.016577 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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