设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5856|回复: 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'
$ q9 ~- l8 l5 C: Z" S*/
, ?# r" b: X' v6 Y* g! `is
4 f( z! e0 w+ f# G. ~4 _        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 m; E2 N. C: }
do7 x; w; ^8 H# r0 X' Y: z3 f0 _
        Lan := rootfolder.Internal.Tools.AOLlanguage;- k9 }8 V/ A! T$ M
        if current = @.Destination -- else return
3 @/ t$ G5 _) C& L2 {        then. p5 _! T  |) H: H  W5 l' K
                @.Destination := void;
7 Z5 i  l: x  t3 G0 k/ Y                if @.occupied then
  l) v+ F4 p6 D. a* I: N8 f3 D! ^                        part := @.cont;9 H2 x8 c/ U; f/ C. H8 P) e
                        @.transpOrder := void;
3 {. [1 V* q0 i) l2 W: H+ S                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,5 u8 a* A% L9 f% a
                                @,root.eventcontroller.simTime);9 b  H4 g! c- e, v9 c6 H6 S
                        @.HasOrder := false;
. N/ h, n  i" v& `                        @.DrivingHome := true;" }$ Z7 D4 z8 i( H( d
                        rgManager.tryToStartTransOrder;
4 \4 b  z9 u- p+ q8 R                        if @.Destination = void1 o- @* w3 Y9 b& k, |7 }! [
                        then -- no transport order for vehicle @# U2 `- X% d: k$ D( j' V2 b
                                @.Destination :=. V3 H) C: W9 @* c
                                rgManager.nearestFreeStation(@,track.~);$ \. U" S: r$ F/ ?0 X' [# I
                                newDirection(@);   9 H9 s' Q% t9 O: }0 t/ I: D
                                if @.Destination /= void then' L; T1 o* G% \6 v2 B( B2 y
                                        @.Destination.NumReservation :=5 C3 F1 u! }+ l3 ?3 B
                                        @.Destination.NumReservation + 1;
9 m5 Y; k6 [1 q                                end;
/ L! p- B& q( x" V5 O! V                                @.CurrIcon := "drivingHome";; d7 u+ S0 S# K6 |+ C! V# z
                                @.DrivingHome := true;+ \$ U1 L; R+ i% O! v+ d
                        end;, D  E9 P) v/ M% y5 C4 ]
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
5 o/ h4 q. ^) C                        part := @.transpOrder;
# i. o% p5 S! s8 J+ H$ X: q                        part.move(@);-- load part4 x$ ]% b3 D+ t3 i6 H3 D2 Q
                        @.CurrIcon := "load";) i- ]. n$ y* P$ b) a1 d
                        GlobalDistObj := part.globDestination;* H2 C) G0 R5 Y: Z, l
                        assignLObj := rgmanager.rgAssignL;; f1 K# j9 A' h- D8 z2 [& F1 n% A1 O; j
                        row := assignLObj.getRowNo(GlobalDistObj);
# ~2 Q, @9 G1 a5 Q+ G1 c( g2 n$ g/ j                        if Row = -1 then -- since 708 B1 S+ O! S4 O# {% @- [% P8 ]; P5 c
                                if lan=1 then# Z+ t8 W0 Q! x  C% F/ h
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' O4 Y0 e9 c. x$ @* E0 u) Z2 n                                                to_str("in der Andockstation: \"",?.~.name,"\""));% d6 r0 v: ?5 p  b- c
                                else: m' |; h- v, Q2 h+ J& [& X
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
' n6 B2 e( g% c( F                                                to_str("in docking station: \"",?.~.name,"\""));                                - o. P& E6 t9 N; y* G! H
                                end;- O9 ]6 e. o& ]1 g* ?8 L* p
                        else
  J* S, q+ V& R6 R0 j3 P                                @.Destination := assignLObj[1,row];% M  o; F+ R; t. v5 U. J7 q1 K0 P
                        end;                        . A& |+ }" X3 R" P$ R
                        newDirection(@);
( W0 d: U$ z7 ~* O% l7 |# t                        @.HasOrder := true;& w8 e% U/ _& O) N9 f
                end;: V4 _5 u5 V- X8 J' |5 o$ s
        end;/ D- c) e6 a2 v9 b# V  B2 U" F+ g4 p" R
end;        -- of the method
" K& A- c2 r, C
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" H/ w1 }) P- {/ ~$ H* p- Z% b* v% b' A* d7 b( }* O- W, z& }' M; L
这是AGV_putin中arrive的method。
% H- {1 j- B+ `8 d/ F$ Z( L8 k
* y5 b4 [% c7 V3 d& e: V当到达物料速度越高时,这个报警更多,% Q& m  i2 y" A$ W5 J, K
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. d# Z$ t: a4 b- f' X程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?$ @4 L- |% Z. Z: z
( o! X- ~, i/ Q* f% S0 q
另外一个小建议,就是move,所有的move都可以这样
) i. P$ C* C1 B4 }if not move() then debug end
( F2 T3 w' ?* W' h5 A6 L- J/ ~这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ W8 \. S$ x, E4 L
plant simulation中的free libraries有AGV模板,4 W9 q1 W8 y% B
里面也有案例。' N! X" X5 G+ h$ I+ U, X- o
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. r6 S) `, r' W( U1 f0 e+ n- j+ @8 ^: Z. ^+ k: G1 _) n
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / l; {& L) z4 S7 \) R5 X* q& \
/ j% v9 E! T% `. W
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 E  `* Q, \6 H5 W7 }这是AGV_putin中arrive的method。
+ T2 S) g( W/ ], n8 z8 U% A
: x' R' g% r2 O  _) U! A当到达物料速度越高时,这个报警更多,

* g* X& E+ J0 X& Z1 ^  U7 V另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-26 23:05 , Processed in 0.019168 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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