设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7271|回复: 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'3 A) T; Y9 Q6 a  U+ Z) D' q( k
*/- _% l0 j! |- V
is
: W: u( }0 k, N- ?; C/ e) H! O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. w7 G3 d1 z( h8 `: K9 T' d
do
, D1 X: Z! z* l8 h" a) ]        Lan := rootfolder.Internal.Tools.AOLlanguage;9 U* A" t, E; M  N( m
        if current = @.Destination -- else return
7 Q, M$ N. s( J2 _4 C( J1 v* f        then
4 [& w: ?/ q0 D                @.Destination := void;2 ?) @0 g- c; j! w9 K, c! v
                if @.occupied then7 o. q- }, I# K& w# [! E
                        part := @.cont;
& m# M1 [- B# n8 l! U. [$ o                        @.transpOrder := void;) Q% _3 h& L9 X6 ?: z) \
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
% Y: h1 x0 a6 r' k. b                                @,root.eventcontroller.simTime);
& [! R4 H! t$ J6 s* ^                        @.HasOrder := false;
- Q8 G* D; w& b+ m! L9 q& ~. j* p                        @.DrivingHome := true;/ a6 v9 q9 N7 K3 @/ I! d* V7 z
                        rgManager.tryToStartTransOrder;" \: D; C- R. ^, t0 |; F  Z  X
                        if @.Destination = void
6 m; D! X, J9 @* C                        then -- no transport order for vehicle @
/ h0 P) f( Y5 b4 @1 ?- i  C                                @.Destination :=
$ ?$ m+ L' ^7 W" [: f* e0 r                                rgManager.nearestFreeStation(@,track.~);/ z$ m% ~# d+ N* w3 `, f
                                newDirection(@);   ; h- u" _) r! P1 R& z9 V1 O
                                if @.Destination /= void then1 {, Z# O7 \) h
                                        @.Destination.NumReservation :=$ p" H  R+ Z6 ^! G
                                        @.Destination.NumReservation + 1;
) A. R# v4 T8 k/ T9 ]                                end;; g! Q0 k9 y& `7 O  }
                                @.CurrIcon := "drivingHome";
4 c$ y# `* v% m$ @+ N                                @.DrivingHome := true;  [1 u: N0 D7 b6 }) I
                        end;8 ]$ e/ [2 E: U
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
4 G4 K9 `6 A+ v5 n  P                        part := @.transpOrder;
) v* p& b# r, ]' a! e. o                        part.move(@);-- load part4 W$ D) Y$ I9 F# a# z; G
                        @.CurrIcon := "load";% G% q9 M7 g2 A! k9 s/ }( O
                        GlobalDistObj := part.globDestination;" i. T( g7 ^2 M
                        assignLObj := rgmanager.rgAssignL;: n' l! l' E" C) N* a
                        row := assignLObj.getRowNo(GlobalDistObj);
, A2 L3 m( s; e) X: d$ E" m                        if Row = -1 then -- since 70
- L6 v9 L* S% K                                if lan=1 then4 Z% R* n5 c2 k  |" G" L
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),0 [% y7 L, c* x$ V
                                                to_str("in der Andockstation: \"",?.~.name,"\""));* C" F0 z2 K1 F
                                else
3 l9 k7 }8 ]1 y4 c; C) @                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),' T$ I/ o8 h' c& [8 ~
                                                to_str("in docking station: \"",?.~.name,"\""));                               
9 ]& \# [2 ~/ C4 p$ p) D* ^                                end;- K  Q( i+ |. n0 s/ m( d
                        else
/ |( C6 E( K& m' f                                @.Destination := assignLObj[1,row];' s* I4 \6 n+ A  C1 @( k
                        end;                        # b1 m5 g; L  P2 A' E
                        newDirection(@);$ n6 @$ Q3 `3 ^* M
                        @.HasOrder := true;
# v. Y& E. z, P( A4 P; ?                end;
# d, e2 n" `% K% Q9 R! |' P        end;
. o1 w# T8 ?) N' O! xend;        -- of the method0 [4 ^6 w& r2 U" q1 o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ o% k; `0 v8 Z. L* _
$ d7 B! ^) \. Z7 _: E
这是AGV_putin中arrive的method。% P0 ]( x$ U$ c$ C8 h

. r) y6 r. |8 e. l. N; v6 h当到达物料速度越高时,这个报警更多,
- G/ p4 I) b4 Q& F" k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。+ j+ [' [3 A+ h, B* r( f
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?8 f' H( g9 E( N' |
2 j7 S0 B& a/ ]' m5 |" [
另外一个小建议,就是move,所有的move都可以这样! E! b, h$ E$ z/ N3 n8 y5 z0 d
if not move() then debug end9 w3 R8 z6 K7 m( K: n6 n
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。7 D& d  \) U& o* G- o
plant simulation中的free libraries有AGV模板,
6 G: e. e0 ^2 B7 S9 u里面也有案例。& g6 _* F! ]1 p, t+ f% ]/ L
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。! `& ~( f3 V9 \6 ]) ~

: x; k" z2 s/ o, K# E我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 3 _6 m5 A$ ]. h5 x+ B
. h( V1 R5 z% A, Z7 t
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 O9 h- ~! f0 Q+ a1 i$ B
这是AGV_putin中arrive的method。0 T. g6 l2 b+ ^" H8 U5 \
' P$ B/ R! ~# q2 u( d$ J
当到达物料速度越高时,这个报警更多,
1 G" O- ]2 s; R# F
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-31 23:17 , Processed in 3.634834 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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