设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7466|回复: 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'
+ N1 L. x6 N: H$ d# `*/& B# h" L- t/ J" b) ?+ ?: E
is
. f" g- P1 P/ `8 |% q        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 C9 i& _6 X4 i* N/ ?7 s
do
# ~! [- [. f: f        Lan := rootfolder.Internal.Tools.AOLlanguage;; v( o8 T* K# A5 l1 E+ B* q1 c
        if current = @.Destination -- else return
+ [3 K3 R, w% z2 K        then) C; I: G& m3 q
                @.Destination := void;/ D# d% W8 c2 }% n1 N: D
                if @.occupied then- s; \, A, M  g  F
                        part := @.cont;9 u( S; ^1 Z& Y
                        @.transpOrder := void;
, r7 ?, H1 m( q; V% _                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
7 e. D* P/ }. V1 S! q- O* c9 H0 i+ k                                @,root.eventcontroller.simTime);
# e9 m' v; F7 Y9 f8 T. r                        @.HasOrder := false;) X2 u" ?7 }! n
                        @.DrivingHome := true;
* }7 `4 L# {4 r* E( Q2 z                        rgManager.tryToStartTransOrder;8 P# S# ~9 X$ P1 s
                        if @.Destination = void( c6 K$ {3 f) E/ s1 T* a
                        then -- no transport order for vehicle @$ L9 w8 ], P. h8 h
                                @.Destination :=
5 K/ ^3 O% T  l& Z% ]& \                                rgManager.nearestFreeStation(@,track.~);
/ s" M! m# w+ J% z                                newDirection(@);   
( w" P. P+ u& p  H( N  Y- U                                if @.Destination /= void then
% I9 I9 R; \3 m# |( }                                        @.Destination.NumReservation :=( y# j4 r( R* X) D1 p, {
                                        @.Destination.NumReservation + 1;
# x7 k6 t5 K& |4 V                                end;
' b5 M4 Y$ x* z% K( u                                @.CurrIcon := "drivingHome";+ j' O1 ^3 `1 ^) l1 d4 T# M! h! C
                                @.DrivingHome := true;) ~: h2 s, Y) l* [6 t& ]% H) U
                        end;
, d* y+ S! I8 c$ h( D* j                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
7 Q/ u+ p. u  `- C                        part := @.transpOrder;5 a0 ?+ u8 v4 g' v
                        part.move(@);-- load part
' e# B# m) @% |1 c0 W4 q6 {1 G                        @.CurrIcon := "load";. s& I+ ]3 ~- u% q/ u  b, |0 `
                        GlobalDistObj := part.globDestination;
, A8 \& x1 t  g' w                        assignLObj := rgmanager.rgAssignL;: v" c+ ~+ y% U5 h
                        row := assignLObj.getRowNo(GlobalDistObj);; o/ Z+ E( g. Q1 \8 w/ U
                        if Row = -1 then -- since 70! t/ t2 N- s; T$ [" L
                                if lan=1 then: U  c1 Y2 t: B
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 N6 \7 m( d& U3 g) F  M/ V) M                                                to_str("in der Andockstation: \"",?.~.name,"\""));* \6 G4 O# S1 z) r! f1 l
                                else
6 |  y5 m; Z. D: w                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),7 h3 z5 D, D% U" m
                                                to_str("in docking station: \"",?.~.name,"\""));                                - ?2 `. o3 I7 n: z
                                end;: D* q8 s3 I  Z9 j  i) k; A' s
                        else5 H! g- T, y, T( n4 h6 H
                                @.Destination := assignLObj[1,row];
0 \$ y$ n4 J: N8 ?; r+ T, p% l                        end;                        : D5 X3 q9 b, p) [4 n
                        newDirection(@);
& r! W2 R6 g- T  l  v0 E9 x                        @.HasOrder := true;' F6 ?3 |( W4 ~+ ?0 v4 z; k3 i# v
                end;! ?# w; C: Y. H
        end;
+ G/ }5 R1 k' f  Eend;        -- of the method7 f# J( F5 }0 I) D) h
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 5 J+ x5 h! B8 _' P
9 W: v0 D- x% E* n0 `
这是AGV_putin中arrive的method。  u/ p+ U  z& V# B! M
% @- S) N0 y7 X: b
当到达物料速度越高时,这个报警更多,
- B' n" ^4 x) z' f可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。. N* C5 S9 H# J  c9 G  w
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
, n$ M3 L' E# Y
3 }# {" B1 L2 ~9 e4 y另外一个小建议,就是move,所有的move都可以这样
* U* Y$ D5 \5 W% b# vif not move() then debug end' w8 _, s- t  }8 A' b$ a8 y
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。2 Q% ]+ H& Y- l$ }6 B$ `4 [) O
plant simulation中的free libraries有AGV模板,9 ~( I& A5 r# p$ j: C4 A
里面也有案例。
2 o) M+ V: n/ V/ ~# ~我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。/ F4 t( A, `  f$ H, a

' Y4 W$ e+ w5 f' Y  |我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑   ^( R( f: I0 t
$ t) I% l1 \, A' T- Q
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ; O; m7 C* [, [) ^4 i
这是AGV_putin中arrive的method。
- ?0 C2 t/ u# G5 o/ R) i6 R1 D8 o2 E. B& f5 Z$ P
当到达物料速度越高时,这个报警更多,
* R# X6 n% K, n. n6 R2 f
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-13 04:06 , Processed in 0.023633 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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