设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9977|回复: 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'$ P! t7 ^2 @8 G- w* B
*/
: W0 k) r* p/ _" C, his
- P) o0 u$ I: \, @/ j8 C$ N- O9 U# T; f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 ?0 m/ s! W- U$ ?( o5 C2 s- Pdo
  l8 X" G" t$ p1 d3 r, l        Lan := rootfolder.Internal.Tools.AOLlanguage;
. {& r$ j2 b, k        if current = @.Destination -- else return4 R& x4 G) y0 ?4 o, K+ |6 }, h! c
        then! c4 B: R8 [4 q" c9 |  E1 ?* P
                @.Destination := void;. u9 Z5 b: S, I
                if @.occupied then
2 N, s& u1 F1 y5 f- C3 U( W                        part := @.cont;. h2 B0 [5 k4 h4 L
                        @.transpOrder := void;4 v. k$ t8 ], D  J2 \# r# |1 i5 H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,! e  j! `% Q. W7 b9 w+ K1 J
                                @,root.eventcontroller.simTime);
$ z% y. E1 j2 D' ^  R) X! c2 w1 H                        @.HasOrder := false;  R5 V7 M7 U5 m  C; X5 G+ r
                        @.DrivingHome := true;+ j' d! G" [/ |! E( u/ f/ \% [/ y
                        rgManager.tryToStartTransOrder;. j, p# @+ D( I" K1 C
                        if @.Destination = void
$ r$ @3 I( i: [/ H# F) O; f6 m                        then -- no transport order for vehicle @
" Z" r+ \/ S1 Y& t  v5 y2 s  c                                @.Destination :=2 g, c! c3 |" X9 D2 _) h% [
                                rgManager.nearestFreeStation(@,track.~);
0 e, ?' T$ i5 r* d. g1 q9 ^# i                                newDirection(@);   
$ A6 a. E( e" A7 l1 T1 o& h                                if @.Destination /= void then: O5 d6 e& u' S& V9 u
                                        @.Destination.NumReservation :=3 e6 F" T1 k9 G4 k# ]
                                        @.Destination.NumReservation + 1;" y3 c6 ~' T# Z$ |! f
                                end;7 j3 J: x4 r" ]# p2 L
                                @.CurrIcon := "drivingHome";
( H5 P. t( K4 p& H& t                                @.DrivingHome := true;9 n' J$ F5 [# y- i
                        end;
+ w7 x6 M  @3 _# k                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
$ @. X5 s; ~3 _  _- u7 n% L                        part := @.transpOrder;8 ]. R2 F* Z9 A, C! [
                        part.move(@);-- load part
" O8 g4 ?5 P9 _) |7 Y/ k                        @.CurrIcon := "load";% k$ W) _, ]  F% a% n# w  B- g
                        GlobalDistObj := part.globDestination;
7 K. P' C6 N6 {; S* i5 B: X                        assignLObj := rgmanager.rgAssignL;
3 \: G) ~) o/ r  j: D                        row := assignLObj.getRowNo(GlobalDistObj);
6 d- Z' {* h, G# K                        if Row = -1 then -- since 70
3 M; J! o' q9 h6 z                                if lan=1 then+ a- c# R  J; v
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
4 A  @7 b: V' T, \% H                                                to_str("in der Andockstation: \"",?.~.name,"\""));, N) Z9 d  Q7 R4 J8 G$ }' v: ~
                                else1 Z5 V* Q, n; z% C) k* B' @* ?
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),2 B; d( X( w, M$ x; F' C6 ^
                                                to_str("in docking station: \"",?.~.name,"\""));                               
- {( @: r1 J0 W* i; P                                end;5 v; {( K! I/ m* G' Y
                        else% Z3 Y4 V. d4 g
                                @.Destination := assignLObj[1,row];1 }; g0 o1 R( ?6 s
                        end;                       
5 ^  ?: T% g" g3 N! z* F/ T$ s                        newDirection(@);/ l+ ~7 ]; \; ?& u9 ^4 h
                        @.HasOrder := true;6 [) |- `2 s% s) \' p! _7 O) E
                end;3 @+ d( f6 b6 X: g" \; |3 i* X
        end;
( t7 G1 V# Y, h# z2 v4 zend;        -- of the method
! s% P8 K: {; ^+ E5 _- G
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + _! E; p, L$ P

2 B1 Q: b; Q1 {4 f! J6 N这是AGV_putin中arrive的method。6 r# q1 X' I) u+ G% A

* `$ F* |3 y2 V9 ?  _& f) d当到达物料速度越高时,这个报警更多,% Q- R* M# L1 |0 O$ o: `
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
  @, {( h4 \4 ^8 `9 \程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
# a3 D) @% O: B$ Q! ?$ `
* Z) r/ I% E+ p另外一个小建议,就是move,所有的move都可以这样
% b% o' U7 V5 m) w/ V9 bif not move() then debug end( l" Y) b4 Z! J3 D# I
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  o$ {6 F2 [# v7 B( p
plant simulation中的free libraries有AGV模板,
3 p2 z4 z/ h# ~& X: K. [; z里面也有案例。
' q6 S" L  r, ^9 P3 `" N& i我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! }/ Z& ~; l1 M" E* j/ k; O5 _: P& {  T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 : p$ E- Y+ o5 r' C% y
) G* Q0 S1 d$ B" F% Q6 s
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 6 b7 W( r' X; e: ?
这是AGV_putin中arrive的method。3 Q/ T* f  Z+ F& L, a% I$ \
6 Z- h  Z- z' s
当到达物料速度越高时,这个报警更多,

, J, \" M: G* J0 q# _  m另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-5 13:30 , Processed in 0.013429 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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