设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7956|回复: 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'
) s( }& a0 T, }8 n1 E3 z6 q*/
0 N, o% k- b& ~% m. l* iis
7 S1 L, Q8 W: O        part, GlobalDistObj, assignLObj:object;row,Lan:integer;
2 \1 v& T( w8 G, _- X' v$ o, cdo
/ g2 P: m, I8 ]. C/ }' W0 K        Lan := rootfolder.Internal.Tools.AOLlanguage;) [# \3 }6 X$ t+ E9 M! [
        if current = @.Destination -- else return
3 c5 A. f3 _, C  I1 R8 \/ Y        then
# g4 p. s& I3 y% V                @.Destination := void;3 J1 t7 i9 y$ R
                if @.occupied then
" K/ s, ^$ _  z/ K/ c                        part := @.cont;; d9 \, G1 D$ X( w) n4 i. [
                        @.transpOrder := void;. g5 O5 O6 F( o4 ?! q+ H
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
2 _- W) `# O5 ~9 Q7 E% Y/ x                                @,root.eventcontroller.simTime);- i4 Z6 `9 f/ K3 x3 R
                        @.HasOrder := false;6 u! _* U$ |5 Y2 v) {
                        @.DrivingHome := true;; f# @- S! j5 P" q% O
                        rgManager.tryToStartTransOrder;6 ^" w/ i1 X+ Z7 Q: X
                        if @.Destination = void% M3 P  l% b# f+ t& M4 `
                        then -- no transport order for vehicle @$ G3 l; K' `$ e& ^
                                @.Destination :=+ ^- o6 t; u* Q* Y) V8 I$ Z; q+ Y
                                rgManager.nearestFreeStation(@,track.~);
! A9 d$ N# G2 R+ Z. Y' `( @                                newDirection(@);   8 ?9 q, ?; F+ C; I. l: _
                                if @.Destination /= void then
( A3 M) s) K+ r                                        @.Destination.NumReservation :=
4 |: X7 |. H) l' B/ i% L  {5 C                                        @.Destination.NumReservation + 1;
; F8 D, V: e. L. `4 Z6 f                                end;5 z6 t6 g& A; }. A! S5 p
                                @.CurrIcon := "drivingHome";6 X' K  F; O# L
                                @.DrivingHome := true;
! L3 ?( b: w0 E: Q) p                        end;; S; x6 S' J0 q9 ~! E  B& ?& ~
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station; m$ {3 Y3 t: E7 q
                        part := @.transpOrder;
+ Y' F& l7 S4 F& l7 E                        part.move(@);-- load part
' v* N, i- V6 f                        @.CurrIcon := "load";- m$ h2 M! _! F- s" [
                        GlobalDistObj := part.globDestination;( _* r" K3 H/ F2 |1 w" S! F% Y1 W
                        assignLObj := rgmanager.rgAssignL;
+ a/ }4 K4 Q. v0 T                        row := assignLObj.getRowNo(GlobalDistObj);
$ R6 Y1 m# _; {2 J6 ~# _. O                        if Row = -1 then -- since 70
; |$ G( H) e' x& {$ H0 M" j" O: T                                if lan=1 then
. J: L" ~, ?0 q( B. K                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 \6 s$ W: q/ f# }9 k; b6 N& R+ `                                                to_str("in der Andockstation: \"",?.~.name,"\""));
+ Q; d+ p; Y1 {+ r( M- M$ U! r                                else
+ Q2 o6 z  S2 L7 \! X  m( Y7 c                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),9 r# b8 z0 l- M  v3 J5 K! T# x
                                                to_str("in docking station: \"",?.~.name,"\""));                                $ Z5 ?" m$ G$ n2 P7 n* _2 n
                                end;* Y# h; y$ G- ^  j- q
                        else
, D% l. }* G! T, U$ W7 B( v                                @.Destination := assignLObj[1,row];3 t5 |$ |: v+ w& n1 @: s
                        end;                        " x! J, J& X  g# P/ I3 A2 M' s+ U
                        newDirection(@);1 @4 e8 K5 N( W# [2 t
                        @.HasOrder := true;
4 j0 K  Z- @8 Y- m                end;
( I7 t. f- x& F. X4 O        end;" }; Y, D9 U/ K4 l" |$ q
end;        -- of the method
+ }% @3 |! H& n
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: G* W5 N  d+ L0 I' A
* q5 D4 e# h, H( N# V" `6 Z, d这是AGV_putin中arrive的method。, ]. u! s! Y+ K- v7 x
5 |7 E) W" Z% o/ h$ B5 a7 U8 \
当到达物料速度越高时,这个报警更多,
% x9 n( j( `; ~% H: F- B4 a1 X可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 s5 D  ]2 q- c程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?* i  ^" K: w# M+ w
+ C3 d; p3 l. Z, N( V
另外一个小建议,就是move,所有的move都可以这样8 [3 E9 E  t0 P. D/ o. w
if not move() then debug end
- ~( D9 q: v, x这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。. ]: g2 b5 u7 F. e  P. u3 V/ F
plant simulation中的free libraries有AGV模板,, g; B# k& U; h8 b. I7 \
里面也有案例。
; u. G/ |3 Q4 H  Q4 b9 `" c我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# Y. ^0 d& J4 ~' ^. y( m! A7 u2 x7 o6 d$ A
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 4 n% g) O- h0 f, P9 e* u. j

/ [# q, m/ {3 P. f& e那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 3 A$ R" E. |4 G$ t
这是AGV_putin中arrive的method。0 U. X# e* L+ [* w! D+ [; `6 t! Y  Y

' ^, I' f' {& G当到达物料速度越高时,这个报警更多,

8 g) |1 x6 y7 x, p: @# a另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-7 12:11 , Processed in 0.020207 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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