设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10103|回复: 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'
2 C; L- o/ F$ q+ b1 x& {  K8 Y*/) b# e# D5 z2 Y4 d0 g" F
is
$ r& f$ `" t4 M4 k/ O1 h/ f9 i        part, GlobalDistObj, assignLObj:object;row,Lan:integer;# T0 w2 ]0 Q9 k  B  l
do
8 @( L) r5 D- x5 Z        Lan := rootfolder.Internal.Tools.AOLlanguage;
' A' d6 B( E% g2 H% K9 b        if current = @.Destination -- else return
% t( J8 E* w  e8 i* Z        then
1 E$ g5 }' r8 m: q9 G! \" o                @.Destination := void;
3 z6 ~& x, R4 [5 p9 R" ]$ \* t                if @.occupied then
% O; E: E- r; p% V7 S3 @                        part := @.cont;& k1 O, ^( N9 G: G+ I1 r' i+ L
                        @.transpOrder := void;
) A; ~/ K. N8 W: ]  l% z                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
9 k9 l7 E- d3 N8 H! E! G                                @,root.eventcontroller.simTime);
  U% _8 |6 l9 c0 ]$ l                        @.HasOrder := false;: i; Y( e( }/ r7 x# [* a
                        @.DrivingHome := true;
8 G0 q$ q. f  L0 Z. ^4 \( {                        rgManager.tryToStartTransOrder;
% l& C5 v. t' V4 V: V                        if @.Destination = void
- j+ G9 U% ?: |* f( T  Q                        then -- no transport order for vehicle @
% Q0 h) L* d2 k3 L                                @.Destination :=- h  w5 J/ u# [1 O3 a/ Y- J
                                rgManager.nearestFreeStation(@,track.~);
5 M4 Z, n7 W$ \% h                                newDirection(@);     a, J" `/ H3 H! S# O7 r, y
                                if @.Destination /= void then
4 ]% g6 G* Q# ?; |/ ~+ m                                        @.Destination.NumReservation :=6 v6 v* J) l& F4 `, `) v
                                        @.Destination.NumReservation + 1;+ }+ K8 a3 F6 Y# C8 s5 s! N% n( n/ i1 X
                                end;) Y: ]- [9 R9 a0 B1 T
                                @.CurrIcon := "drivingHome";
! J) i. [( L% X) p9 `! ]# W                                @.DrivingHome := true;
* q7 E: g5 {" [; Q                        end;
1 P+ m' m( L5 n9 N: F                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. V" v& Z5 L1 S  |' [: f                        part := @.transpOrder;
. ?  O: h' H# B                        part.move(@);-- load part
$ K' V6 U# {  n+ c                        @.CurrIcon := "load";
0 z7 ^5 D" m$ }% o7 |, T& N% j                        GlobalDistObj := part.globDestination;
- Q: q: ^6 z" n+ V/ U                        assignLObj := rgmanager.rgAssignL;
" u2 c1 I: ~9 o. o% g                        row := assignLObj.getRowNo(GlobalDistObj);2 @0 U2 w3 ^' v/ I+ c! ~
                        if Row = -1 then -- since 70
2 p6 d2 D4 H' h                                if lan=1 then
4 C7 Q( {( b9 E/ C                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
6 \) ^4 I. `" M) [- k6 r                                                to_str("in der Andockstation: \"",?.~.name,"\""));0 x! Q6 s  h& f; N
                                else6 Y: w3 C& i* |9 M& K
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
# {; l2 R) k% o( A! L: F. U; H                                                to_str("in docking station: \"",?.~.name,"\""));                               
- D/ r6 Z( _" l! a# O                                end;
- x! ?2 k! i, f7 ]4 _! ?7 U                        else) l( q1 k# L5 ^; u9 Z
                                @.Destination := assignLObj[1,row];
5 X1 a+ D9 n7 W" D/ O                        end;                        3 g; R4 `: k7 m, ], E- ~* q
                        newDirection(@);
5 B' {( [) I9 d7 @. k+ |. Q& N- I                        @.HasOrder := true;" N* O# e3 _) ^
                end;% S2 U. c' P* C9 p! e2 Z
        end;8 @, u) v$ e+ Z; F5 m- V2 B
end;        -- of the method
3 c$ L' M4 P  S5 J
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
5 W& l7 v' W6 c$ j- ^: s5 P7 q/ |3 `+ |$ q, S; n
这是AGV_putin中arrive的method。
, h8 ?/ C% y) w6 [7 o# c4 ?5 a5 \8 B9 A" n6 n4 D
当到达物料速度越高时,这个报警更多,9 ^3 }1 w. Q- I+ l, p
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
4 d2 C+ }7 \  W& S5 \0 a0 c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! S0 W* s) D0 o" J9 ~1 M6 ]+ P
另外一个小建议,就是move,所有的move都可以这样
, [- v7 M' M* Q* bif not move() then debug end9 P; h; p+ A4 t& q( ^
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。( N9 n( J! J& P( h4 n2 e
plant simulation中的free libraries有AGV模板," N1 f, @* F9 V9 \3 k  {1 d
里面也有案例。& c6 s9 i+ {! ^+ q  {
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 P4 N5 y+ M1 K2 e4 C2 X9 m8 v4 v+ |% h

# ?% L# }' v3 l* R- s我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
8 n: D2 U& T; o$ K8 _1 y! d  e
8 c* J1 L, q- f! U+ c5 m5 P那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
  e, h0 i; u" ]/ y- @这是AGV_putin中arrive的method。1 n2 d2 a6 F7 ?( d) ?5 C) _
$ W" j4 a' h( h: l% s/ i( @6 n! W
当到达物料速度越高时,这个报警更多,

$ u! n/ y' a# O5 ^7 H8 ]5 E另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-13 14:50 , Processed in 0.018495 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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