设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6932|回复: 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'  d* X' L$ k* U/ g7 ]
*/
5 P5 X) F  Q: y! Q. z6 U8 h- [+ ?4 Mis" M9 H1 h0 U6 M( b/ {
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 W. P$ W. s0 ]7 M/ g0 o
do3 k' `6 h& A4 l8 L/ ]4 x8 d% b
        Lan := rootfolder.Internal.Tools.AOLlanguage;! U% E& p1 K" }1 `' U
        if current = @.Destination -- else return, h% s4 C% }* e1 \$ o  S
        then
2 r2 a- h* [0 \9 K8 j1 j9 m; _0 R                @.Destination := void;, A0 r/ h0 V3 b, t8 q& c
                if @.occupied then+ m: h2 I4 m" T* {! T9 j
                        part := @.cont;* a% q  U2 r/ M1 }7 t/ M: \
                        @.transpOrder := void;; W3 O$ A* G3 @3 q' G. N2 {
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 [3 v: [2 i, s5 |+ g/ A                                @,root.eventcontroller.simTime);
  p/ c  O, i' ~4 |! C                        @.HasOrder := false;
: n1 G/ ?3 i" M; V. E& Q                        @.DrivingHome := true;' i* R) W! M" {' B/ _/ l0 ?
                        rgManager.tryToStartTransOrder;
3 l& q) I$ j; y4 \                        if @.Destination = void4 K4 B& m7 A8 c6 F4 E+ E' l
                        then -- no transport order for vehicle @0 v+ `: T6 p0 U0 `! A& H3 C
                                @.Destination :=
' }" E) o# O! D! n+ d+ \  q, U                                rgManager.nearestFreeStation(@,track.~);  o, N* R* b3 Z% M
                                newDirection(@);   4 F! `% a/ C$ r9 \
                                if @.Destination /= void then
" n* |& S" l+ L  z' }                                        @.Destination.NumReservation :=2 L' j4 L' _8 I: E) m4 s
                                        @.Destination.NumReservation + 1;
% }* {/ i; g) M& U# c                                end;
. k. X+ |+ Q" @4 b' E9 V, D: ?                                @.CurrIcon := "drivingHome";
1 J& F, |1 A* l# p! @  c; y                                @.DrivingHome := true;6 p: |; c1 _' R# o
                        end;+ u" N0 U% l1 c& M$ n
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station6 W3 \4 V9 F! B/ G1 i5 `* z  @
                        part := @.transpOrder;( }2 v6 F+ g) b8 S* \  \
                        part.move(@);-- load part
2 U! }. D0 r9 M3 R& W                        @.CurrIcon := "load";
# b' p+ ^8 F( @' D                        GlobalDistObj := part.globDestination;
3 a( \- v8 N1 P, \5 T# f                        assignLObj := rgmanager.rgAssignL;
3 A# T' {/ t# l1 f0 k* e2 c8 E+ Q                        row := assignLObj.getRowNo(GlobalDistObj);$ [3 e5 f' P9 Q
                        if Row = -1 then -- since 70* @$ L: u/ E1 {0 k+ F3 E
                                if lan=1 then
  C7 h% ^$ E& W4 @$ o8 t                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),3 ~" _; f$ d- ~4 B0 V- R2 W6 d
                                                to_str("in der Andockstation: \"",?.~.name,"\""));+ a/ R$ D4 l, {  {1 U3 h3 Z
                                else
. O# l  }* i& D, A                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
: s. y% j1 w; P                                                to_str("in docking station: \"",?.~.name,"\""));                                0 N! b) [) I8 f& H
                                end;
& G6 S7 B9 \& H2 z/ Y                        else
8 r. T/ C0 s4 p% L1 s# L                                @.Destination := assignLObj[1,row];
1 u: e9 B: f8 w                        end;                        . O6 c8 a1 A& p. p
                        newDirection(@);8 J: f1 j. A. o4 ?! h0 X) ~6 o
                        @.HasOrder := true;* ]' |& d) e2 u  g6 x) V/ V# \' N
                end;. R' v4 I- R' I
        end;
0 [# o* P7 K6 N+ bend;        -- of the method
" D! A! m% l  H4 C" Q9 f
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 F: R2 P2 ^& R5 i: P- k

- i5 B0 a0 H  r8 a# z1 K( m; ^- W这是AGV_putin中arrive的method。0 ?, w+ v$ G2 D9 Y1 X6 y0 s) p

, a  K  c( F3 H) l# s/ j6 A( I当到达物料速度越高时,这个报警更多,5 t. {2 ]% `7 a+ W
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。) ?- @1 M& c8 z3 ~( J2 P2 R6 p
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
0 \7 a8 S( j0 A8 [4 Y8 O5 [' {: e3 V$ U. |
另外一个小建议,就是move,所有的move都可以这样
( e1 [4 \  c! P& M; i: l; x! kif not move() then debug end0 D0 ^; E! `/ W/ ]  {
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。# R0 v4 ^. F7 b* G$ C+ j
plant simulation中的free libraries有AGV模板,
. G) k% S& G) s' i7 E' L) B里面也有案例。$ q4 {# g5 [  X
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
- O+ ?, H0 g" R" {) |+ G* Y( p- o& j( Q) {% |, K+ N7 x2 I' ]  }( u% [
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 X# m1 i5 K2 C' }8 j% Q0 R& w1 E7 d  l5 B

2 `/ q+ C( G% p9 C那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
2 x$ O& _- ^% V这是AGV_putin中arrive的method。9 [" Z5 A- c8 l8 y2 v

- Y5 [/ k( K' M# q$ c) x当到达物料速度越高时,这个报警更多,
( }& G& p  |, {+ F/ |6 ^
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-7 07:46 , Processed in 0.018143 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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