设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6565|回复: 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'9 d9 T9 ^" Q0 b: J7 t* _9 v1 }2 g4 K
*/% Y) ]4 _: y# x" S0 ~
is
) f- E- A7 V/ n/ m/ J: a        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 Y/ r+ h! I/ g; S/ c7 a- U
do
5 V  X% A1 \' s( r: Z& _        Lan := rootfolder.Internal.Tools.AOLlanguage;
6 n2 U! N) Q, S) M' d        if current = @.Destination -- else return
6 ?0 I. r( Q$ L" \. \) V) s        then" `' G+ n$ j& h; @7 s, T
                @.Destination := void;' x* J8 i% c0 ?' M( i' x
                if @.occupied then
9 G. w  ]2 r$ q8 \                        part := @.cont;1 I( i3 ~) ]. D" q  }
                        @.transpOrder := void;
' d' f0 k( r. x# x                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
" Z7 M8 M" ^( p4 o, O3 X, V- C                                @,root.eventcontroller.simTime);3 w) B; [1 t$ K; Q) M) Y
                        @.HasOrder := false;
9 x" [( R) N. M( y, C* u                        @.DrivingHome := true;
8 o' I) b3 {: r% I% M" B                        rgManager.tryToStartTransOrder;$ v  f" y/ P  K1 {( R
                        if @.Destination = void
5 B0 a7 m! y3 u" m, d) Z, p- q                        then -- no transport order for vehicle @/ s& u( p7 G: u6 T2 O* I
                                @.Destination :=9 m6 v% t0 u5 V. Q% a1 K. g
                                rgManager.nearestFreeStation(@,track.~);& \, ]9 x; e" n2 }5 c1 y5 w- ]8 L% v
                                newDirection(@);   & M& o( B  C0 V% v6 [9 J
                                if @.Destination /= void then
! j7 m4 g; C% p. o                                        @.Destination.NumReservation :=
1 q8 Y5 Z) W; p  P7 T" w5 N6 O                                        @.Destination.NumReservation + 1;
9 J' S' J$ j1 N" K: R                                end;
$ O% Y: q) E0 G' Z( [6 w                                @.CurrIcon := "drivingHome";4 P8 w0 y, x& g- R& P
                                @.DrivingHome := true;, s4 z/ n% v; e& u2 g
                        end;1 p+ i1 t# T# `" I
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* E' ?# g" _1 m) R" X                        part := @.transpOrder;' W8 O$ ?' ^1 o; {) n4 {
                        part.move(@);-- load part
0 S# P$ r) g4 b' h3 E9 h1 I                        @.CurrIcon := "load";
* R7 f% B" _% b, X1 ^- h                        GlobalDistObj := part.globDestination;% Z5 G6 }" g' L0 J
                        assignLObj := rgmanager.rgAssignL;
: J+ j( C+ F6 Q# ~' Y! K1 I                        row := assignLObj.getRowNo(GlobalDistObj);
% t: L0 ^8 ]! `1 U( B; z                        if Row = -1 then -- since 70( P' A7 n& c% a" C/ p8 ~
                                if lan=1 then: b% m  |. ^+ J$ b8 f
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
$ d# n: H# F$ w, L: q( |" W                                                to_str("in der Andockstation: \"",?.~.name,"\""));9 K# H8 G3 H1 V2 x
                                else7 K' g. Q7 m3 J0 A# P& l. B; V) z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),6 Y: j, {3 D/ n+ ~6 |
                                                to_str("in docking station: \"",?.~.name,"\""));                                & n" E+ ?( x/ |7 E, q
                                end;- z9 P5 u1 W- {' }% i% ]. K+ I
                        else7 c; _# T6 E9 L5 p4 T* l5 Q1 g
                                @.Destination := assignLObj[1,row];9 j  A; ~9 N0 [7 {9 F! r5 U% m
                        end;                        * Z' o& N. K- c. B% k! F# V
                        newDirection(@);
  \+ X: `; w. X3 c- ]+ f                        @.HasOrder := true;
# V4 D) `5 _4 }2 }5 C2 M, V                end;2 p( H  A5 [" J4 M( B
        end;3 ^  k2 g2 i6 o$ ^3 @, K4 @
end;        -- of the method
  C$ \1 ^) P2 u8 D9 P% p; {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
" Z0 d: }0 Z0 H- M; h, n
% v0 C8 ~/ ^. z这是AGV_putin中arrive的method。
) P3 h9 D. K3 l# f& D0 w5 e  j; ]4 N9 o) y7 \8 f
当到达物料速度越高时,这个报警更多,
( y3 W4 c+ o5 |8 Z4 J" w) u可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。( w8 o0 E5 B3 ~# N4 P; s
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
; F/ l0 |' p& Y2 O+ T/ N5 ~' S% m5 K, W, U* b( s
另外一个小建议,就是move,所有的move都可以这样0 ]2 u7 Y9 h) f& r- f! F/ u
if not move() then debug end
; `1 a  b1 V1 {) t2 R) y3 Z! Q: p这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
) P9 M0 [2 K) B. |plant simulation中的free libraries有AGV模板," O: I" }  i2 e" l; {- S8 O, }
里面也有案例。1 V# L4 b. J( W( ?/ h
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! t9 _4 R% A5 {  E6 k" [' x8 Q3 q/ l
6 n( K2 p  D) [- d$ B1 i8 M4 L我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 # z4 ]+ l: I8 K. _$ c  @6 Q
" _# P! a' N, Z( r$ z! ?7 a9 R
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
$ |, b& t1 ~# U: _这是AGV_putin中arrive的method。
! }; r  G5 z; G3 }5 t7 x7 W: @# a0 J' \$ ]" ]! g. K
当到达物料速度越高时,这个报警更多,

" v7 O8 c& z# H! V- P3 s另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-13 06:43 , Processed in 0.018012 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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