设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8879|回复: 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'
  w; K$ I, L1 J* W( `+ ^*/
( Z+ o0 k  I6 B  b( Fis6 [4 E1 j0 |' V% X' c" c* J
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* s! x. F5 j* Z
do/ i. n3 W4 k! L1 y# J/ ^2 w% d
        Lan := rootfolder.Internal.Tools.AOLlanguage;: s# x- P* z$ a. y
        if current = @.Destination -- else return' a$ \6 ~* j5 ]  B, B( \4 L
        then. O0 g6 f( Z( a9 A
                @.Destination := void;
& t; i" ]2 J/ q                if @.occupied then
- F7 p# g4 _+ g( A" N! E                        part := @.cont;& c, l5 D6 c9 s$ |+ v
                        @.transpOrder := void;
2 N6 j' ^$ h& Q- b$ V7 g4 r                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
6 k1 M5 T- V8 [4 F! Y                                @,root.eventcontroller.simTime);
& n- b, x9 B# D4 ?0 L5 i                        @.HasOrder := false;6 O9 _- a( s- N. ^& E! _
                        @.DrivingHome := true;
; E. j4 V" ~2 }2 z                        rgManager.tryToStartTransOrder;
% o0 |" E+ v( U0 p  o0 s1 b                        if @.Destination = void/ e- e& L! O. J
                        then -- no transport order for vehicle @
& Q  t$ u! Q" ~1 d  }6 n% H& ~) s                                @.Destination :=3 Q3 U- P( z0 P/ V+ l4 ?, G
                                rgManager.nearestFreeStation(@,track.~);
# ^9 l% W: Z( N0 e9 e# R" T. S                                newDirection(@);   5 f5 m  U, c7 \( v( |% d
                                if @.Destination /= void then
9 E. n5 v- u9 F5 P                                        @.Destination.NumReservation :=
* o' g' h, {/ _* s# O4 [. E) H                                        @.Destination.NumReservation + 1;
. e& Q! Z. L4 e5 u3 ~9 U                                end;4 L( F# b3 U2 I* V" k/ ~5 a. o0 G
                                @.CurrIcon := "drivingHome";
3 q( c/ c9 W$ r- r' X' Z2 C                                @.DrivingHome := true;
  C' S' V6 a0 ~$ u                        end;
% \3 V9 @. ~+ L0 @                else -- the vehicle @ is empty, both vehicle and part are in the same dock station3 s# a; d3 N" Z! g' ]% }3 z
                        part := @.transpOrder;
, H% B8 C+ G5 O0 s+ s9 J0 c                        part.move(@);-- load part
8 M) \" u) o6 W6 D/ D                        @.CurrIcon := "load";
  z- T4 B* z  K6 {1 v                        GlobalDistObj := part.globDestination;; z8 U) q: j9 i& _
                        assignLObj := rgmanager.rgAssignL;
. z& f9 D9 q) \( B# O( [7 `                        row := assignLObj.getRowNo(GlobalDistObj);2 V8 R/ V% N3 o4 s8 I; c  v$ b
                        if Row = -1 then -- since 70, [/ H1 J; @- ~7 s
                                if lan=1 then+ X4 }( s; }: i) D% E
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
* T" g, c3 Q& I; B) ]" A( N% Q" g7 E# C                                                to_str("in der Andockstation: \"",?.~.name,"\""));' g; n  M) x4 ~$ J) c- w
                                else1 m7 }* V6 x$ Y4 m( a" t# i
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
; W" H3 N7 l2 u; i( }2 `. U6 a                                                to_str("in docking station: \"",?.~.name,"\""));                               
/ j% F7 o; G: T6 E                                end;
7 p/ c* K, c& p2 l0 a                        else
- h; I& K8 R: D, j( f4 u                                @.Destination := assignLObj[1,row];
" H0 ^: A( F+ I$ w                        end;                       
9 j  d* U3 ^/ D+ D, z% |* s- D                        newDirection(@);
6 R2 L9 M0 ?7 ]8 c. b- J+ u                        @.HasOrder := true;
! y" k7 @- ]+ W9 `, {5 K1 V  A                end;4 l3 T0 p1 z  I  r5 C
        end;
- Z6 m1 ~3 H! `, xend;        -- of the method* x6 ]- m" @: _
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 : ~3 W4 C7 t4 [2 |* L$ y

5 I6 [# F/ r7 e, T* A6 j" ?这是AGV_putin中arrive的method。. P9 f6 H6 v) i9 y- ]2 {/ q
* B0 [& {& n$ f9 q. ~1 C. d$ N
当到达物料速度越高时,这个报警更多,
! B- D" e% |7 a& H7 N9 H+ `; k可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。0 ]6 U, M) g. v/ g' C. W; `+ f
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
5 K( K$ m" Z1 w* N9 R" i$ J8 d) a8 {# Z9 E/ _4 U
另外一个小建议,就是move,所有的move都可以这样
" V& R' @. m% ?. u) n' a/ Xif not move() then debug end1 `8 n% I. q3 C; `8 |* P1 j1 X
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  g8 g& B1 M) ~; F$ R4 u
plant simulation中的free libraries有AGV模板,+ X' W" L, m+ |5 ^/ E; o' G. J2 E! @
里面也有案例。& l8 E: H/ o/ S5 m  c
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。0 \* y7 h/ f# K* q$ w- a. Y

5 o4 {3 y9 v6 y1 {" `% |1 A# |) v我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
) {) _4 h6 Q' B; Q" [* v3 ^5 B5 \9 x8 }, n& L6 \2 T
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 b3 ?7 y, H9 \+ c! p7 D* C这是AGV_putin中arrive的method。
$ x" U4 Q* \+ N5 ~8 ]9 ~# P7 a# W- @
+ c  N9 v. s* N+ Y7 M当到达物料速度越高时,这个报警更多,

- O1 ~4 x; h4 Y$ \7 V% O! u9 k2 U另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-2 01:37 , Processed in 0.016646 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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