设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9830|回复: 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'
8 a) o" Z3 Y$ X/ P$ u5 M: j*/1 d9 K# S9 ~# ]5 F
is
7 r- b  v1 G% g9 j" Z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;+ W- W' Z* p* O% X% q
do3 p7 P4 s. U! V9 l' M8 v" T
        Lan := rootfolder.Internal.Tools.AOLlanguage;. T+ `% m5 l( K$ \' _) q0 ]
        if current = @.Destination -- else return
: U, \* \) U$ _' j        then
& }! `: G. I) C4 W# j( U0 t                @.Destination := void;5 T$ }" f1 m, d, @
                if @.occupied then
8 a- L, C+ U9 G# T( r, A! ~                        part := @.cont;
2 F9 z9 f7 x5 q$ S4 I$ O* L                        @.transpOrder := void;
1 I2 \0 E7 T$ d, @+ g- k* F9 X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
8 C+ b% |0 O. ]8 e/ H( J                                @,root.eventcontroller.simTime);
3 L6 G7 V* ?) A# c# n                        @.HasOrder := false;
5 ^# [( R2 [1 b* S" ]$ [& K' r- m& B                        @.DrivingHome := true;* q' `* Z! c% ]/ O0 l- z
                        rgManager.tryToStartTransOrder;3 }" P4 E9 D( O4 k! z" e
                        if @.Destination = void
3 k1 U6 ]: \9 K/ L0 B                        then -- no transport order for vehicle @
, |5 a1 p3 |/ f! {$ _* ^                                @.Destination :=( j( k7 G3 J( ~, P
                                rgManager.nearestFreeStation(@,track.~);
) B7 ^9 G' p  b; e" q3 g                                newDirection(@);   6 a$ _6 [' p  Q% i/ R. g3 R1 m
                                if @.Destination /= void then
1 `  B, B+ L  f4 f) A7 a) |% i; h                                        @.Destination.NumReservation :=+ `# N. z& E+ ?( K7 B4 @
                                        @.Destination.NumReservation + 1;
& r6 j3 a$ C# n& y9 p                                end;1 X( T$ U4 `% V1 a- K
                                @.CurrIcon := "drivingHome";) k4 X" F/ n) Y- c: r5 O! z
                                @.DrivingHome := true;
7 U$ c; m/ S$ Y# ^8 @                        end;  h) p8 G0 T: G$ d
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station1 k4 u4 {! C. D7 ^8 j7 |5 w
                        part := @.transpOrder;1 L1 w) c; q3 v) F1 l1 m5 w0 V: D
                        part.move(@);-- load part
- q! u( X) k0 e) q- g4 L7 t* Y- O+ a1 d# K                        @.CurrIcon := "load";
6 ^) G' a$ e( V& O! J9 D                        GlobalDistObj := part.globDestination;  t$ B% x4 j* d6 d8 I
                        assignLObj := rgmanager.rgAssignL;
: I) c! }5 _+ o! B                        row := assignLObj.getRowNo(GlobalDistObj);
7 ]( |3 C& q! V+ T1 a6 ?                        if Row = -1 then -- since 707 d9 D5 z& G( T. }
                                if lan=1 then
. u* O6 d7 ]" o4 H% P( t- n                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 w& j0 {8 w5 ~7 I                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 e) m$ S: N. R. N; I& {1 H
                                else
( Z+ c  M% X( Q9 Z# j                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),# r( A; x0 m! r0 \# Q
                                                to_str("in docking station: \"",?.~.name,"\""));                                1 e% O4 K! p: `8 M8 ]& O) L
                                end;: M# }" q( e7 ~0 R( J
                        else
- s4 X) {8 z8 A  s& x6 `! b/ w) q0 D                                @.Destination := assignLObj[1,row];3 e( t7 i  F* A* c1 L3 @" }
                        end;                        2 n' {' f& e6 k  T* ^& K6 f' L1 c* _1 Y
                        newDirection(@);3 d3 a) k% _& p% D' O
                        @.HasOrder := true;
( B9 o' d9 s& l2 D' G) F                end;9 I$ f+ C* K! M; S: A( H
        end;
4 o7 J' _$ J$ D" t! }$ P  qend;        -- of the method
3 o; V7 p% Q& X1 l' i6 t
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
, m- c* }* D3 [
2 {: d1 K9 t. A. z这是AGV_putin中arrive的method。: n6 \4 N. O* D
9 b& Q" N- E  ]$ G0 z
当到达物料速度越高时,这个报警更多,
, J; j8 A/ _# {3 Q9 \: {+ b可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
9 t+ m; ^) F4 t) r程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
6 z( p+ d* i3 w5 L6 @" q: @& Q) L7 N& S  A  w/ _
另外一个小建议,就是move,所有的move都可以这样' _( ~3 F. D0 z$ s7 b0 U
if not move() then debug end% G9 Z0 Y3 y" X3 ^) P7 E7 {
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。' s, G' X" C. Q: `( ^
plant simulation中的free libraries有AGV模板,* ]+ R* W8 k4 s2 j2 n
里面也有案例。6 \& P3 j$ T. i: c4 p$ I
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。. Y; y: D7 ^2 K6 v( R
2 P6 [* k! y( Y* u- ~2 b- A
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
9 e3 [0 Q/ \" m* N, e& X
4 G8 F" E& }3 v# F, @- Z那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
& o9 R% k1 N( _) j" Y这是AGV_putin中arrive的method。' ?, n; U+ v* F9 L# R2 o
6 f$ C6 Q# t; y' f! ?8 t( M
当到达物料速度越高时,这个报警更多,

: a+ r. O* _' r7 M$ V0 [) b$ ^另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-27 23:00 , Processed in 0.021454 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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