设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5724|回复: 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'/ o* T& i" S2 J$ c2 P, H* e
*/
9 |, E- c3 v- |7 o' {1 @is
; `# Y) |! K! o- L% z        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* @+ Q8 ^; a8 h
do
, ]+ B7 m2 R3 s- q! H$ b8 ^        Lan := rootfolder.Internal.Tools.AOLlanguage;* E4 ]: k+ [! S: F8 z5 J$ f7 ^  A
        if current = @.Destination -- else return9 L+ R" T; T: ^; r- r
        then
+ x0 L4 }4 p/ a9 a3 w/ w4 q                @.Destination := void;
7 W9 D9 w3 B# d, U                if @.occupied then( a' w) ?+ w( l& k
                        part := @.cont;
5 q5 Q: q  [; z7 B  e: q                        @.transpOrder := void;
. b2 P8 ^& z# X                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
: T! ~0 d0 _) d( d                                @,root.eventcontroller.simTime);% g9 D! i2 `$ o& @: {) A
                        @.HasOrder := false;
: E6 {' J+ ]+ a/ O                        @.DrivingHome := true;; C/ I- g! U4 o% L
                        rgManager.tryToStartTransOrder;
$ ]/ Z3 @9 B$ Z0 ]4 u. l                        if @.Destination = void3 n7 o" s2 z& R* {% J9 }& i
                        then -- no transport order for vehicle @7 C7 F# l" j& j# C& [
                                @.Destination :=
7 @9 U4 H+ ^7 V" i' F                                rgManager.nearestFreeStation(@,track.~);
7 b* w9 L& B" T' N                                newDirection(@);   
7 r/ N* u( Z  x) Y                                if @.Destination /= void then
+ u2 R$ ~4 b$ E                                        @.Destination.NumReservation :=: n, Q% Q8 |6 u$ u8 s  Q9 i. B
                                        @.Destination.NumReservation + 1;
9 x" J- N# t( `$ V* q; [4 a                                end;" L7 ^9 T, p# D! s
                                @.CurrIcon := "drivingHome";
: W+ J0 A2 b) _% n/ @0 D                                @.DrivingHome := true;4 H6 I, G  t& J% n/ r9 t$ S: x* N) M
                        end;4 d, x: o3 ~+ L1 ?! O
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' T: |" Y, a3 N2 {                        part := @.transpOrder;2 S8 w7 l6 a  s/ Q3 a3 N6 d
                        part.move(@);-- load part% B" {4 A$ u7 E
                        @.CurrIcon := "load";4 ], [0 [! p9 r  r, Z  u
                        GlobalDistObj := part.globDestination;
, W" q9 d, d: H' q                        assignLObj := rgmanager.rgAssignL;2 }5 V7 J3 u% f7 ]5 c# f+ ~4 R
                        row := assignLObj.getRowNo(GlobalDistObj);2 q1 u4 i+ }2 D% Z
                        if Row = -1 then -- since 701 ^# N1 s( S4 b6 q* w' }
                                if lan=1 then
9 |7 p6 m2 {0 B9 E4 t( p6 h# X                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 J+ X, U; w8 @                                                to_str("in der Andockstation: \"",?.~.name,"\""));8 N- v" w0 J0 q# w/ A; X/ {
                                else  p& m# x  P) k+ I7 @8 e( x
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
$ M4 E' [( Y% H! Z; N                                                to_str("in docking station: \"",?.~.name,"\""));                               
1 U( [6 Z; {6 O2 ^4 a                                end;
- |; q* t% v3 @! j: C" e4 `                        else" C' x& k7 o! {& }  f- C
                                @.Destination := assignLObj[1,row];
5 C7 J- D1 j4 w- f0 m                        end;                       
0 T' l1 ]2 L* |  x/ F                        newDirection(@);
  Q# r; i+ C1 q* x, P                        @.HasOrder := true;  C) J' o8 ^6 P7 r7 |7 B/ l
                end;9 [7 [* \% p' y- \8 P/ D
        end;
$ ?9 ]9 ]: K: P5 o5 Z) Eend;        -- of the method
. `, ?& Q9 g7 K/ \6 b
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
& k5 T, A& c7 a( M# w
! t  |3 h: g2 v" ]5 G这是AGV_putin中arrive的method。
3 O& a4 h$ i& I; Q* J  M. v
, F1 ?$ |4 V, T当到达物料速度越高时,这个报警更多,
& \+ i: [. J5 S可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。, y6 |  C1 e& I1 F$ g
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
" w" |" ]8 }; ]; i( Z: {1 @# ~; I
另外一个小建议,就是move,所有的move都可以这样( d# C! ]6 Q& _- x5 n+ ?
if not move() then debug end
8 o4 `# k+ L  G9 Y6 x3 k/ H这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。1 c/ k* B# \1 s! D9 X
plant simulation中的free libraries有AGV模板,
* W3 U* [3 B. N7 y9 V) }里面也有案例。7 u+ C1 Q1 n0 v* K, O/ N! g
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。' G( O$ {+ E" Y5 {7 S5 q; y4 M

9 X. z5 t# l3 S& j1 e我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 7 }# U# Z8 f6 U. O; H; g

- s3 L7 _$ d# I; _3 y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
7 ~2 b/ B1 g' c5 P这是AGV_putin中arrive的method。
( y# l- r7 Q: t* S% U, K+ [: _4 m7 j) W/ ~4 d. v0 j
当到达物料速度越高时,这个报警更多,

3 y8 s  |( U& I0 \0 q. ^' _& G另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-15 17:01 , Processed in 0.016747 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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