设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6010|回复: 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'
4 l8 Y  z, ^* [# P*/  s  f: K4 Q. H7 Y
is
/ `. i6 X2 G9 |: Q1 P0 r) {5 h. u        part, GlobalDistObj, assignLObj:object;row,Lan:integer;5 H! Y  r. G- e/ n1 i, [: q6 ]
do
& d$ c! }7 N4 r0 Z9 a  k' b! m9 B  L        Lan := rootfolder.Internal.Tools.AOLlanguage;5 {. [3 ]7 `' T% |; J
        if current = @.Destination -- else return- L% ?- F$ `4 l0 v: I" `
        then
' f; l7 h7 N+ q+ H- A3 W( [3 x                @.Destination := void;; Y- @- y  c4 h* D( z
                if @.occupied then
7 r" T8 P/ a! L0 l; P" p7 H; Z                        part := @.cont;
( l0 ?4 T; g% z, }7 v! l                        @.transpOrder := void;
1 ^$ H, z! I+ W- B& Q" N3 U1 E                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
( z2 E) i1 ]) y' _9 L' \* H0 B                                @,root.eventcontroller.simTime);
/ w4 `7 Q3 R8 T% n3 f: v; ^% c                        @.HasOrder := false;; e9 W2 x" E/ P& |6 P
                        @.DrivingHome := true;* U& t) [( T- k' Q9 y9 u8 @
                        rgManager.tryToStartTransOrder;" K9 a( Q% Q, h' Q
                        if @.Destination = void
: [  a' c# t: V* r' }                        then -- no transport order for vehicle @
3 j# e' W$ M/ @5 {) q( {/ o                                @.Destination :=
8 h6 Z" k/ h% P                                rgManager.nearestFreeStation(@,track.~);, k4 j. k+ [1 o5 r5 l% N. P
                                newDirection(@);     l/ u6 {/ ]% B" a" T
                                if @.Destination /= void then' J1 G" q4 K4 c8 }
                                        @.Destination.NumReservation :=
4 L8 M* \; U- M% W2 `8 w5 u7 k& Z/ c                                        @.Destination.NumReservation + 1;
% p' }: s' O* b2 t( q                                end;
$ M' \  H3 n7 Y3 G- N* T7 K& `                                @.CurrIcon := "drivingHome";' C: P$ G  a8 v$ L8 u0 D
                                @.DrivingHome := true;
% @: j7 k, l7 A                        end;
3 Q2 t9 _& n$ j1 ^/ r1 B                else -- the vehicle @ is empty, both vehicle and part are in the same dock station2 r$ q& V  \  ?' D1 A& m6 F) A; h
                        part := @.transpOrder;; N# K3 y& ^: L) G' M
                        part.move(@);-- load part
3 A' ]$ s5 s1 }3 Q                        @.CurrIcon := "load";
: f- V, b& k0 s                        GlobalDistObj := part.globDestination;
9 E2 h" m. n) m, g+ @                        assignLObj := rgmanager.rgAssignL;. G$ E, \3 z$ X5 v2 R! J
                        row := assignLObj.getRowNo(GlobalDistObj);% k$ P. L- Q# V
                        if Row = -1 then -- since 70
# d7 [  B! o) m                                if lan=1 then1 _: a$ w* @& k0 t$ m
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
: r) L0 k' z0 Y1 _& v                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 M0 n* L# r+ l# J                                else; R9 l, d, \; l$ v' f
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
5 x1 C: T$ P0 r( ~$ t8 x                                                to_str("in docking station: \"",?.~.name,"\""));                                9 u; S) _, [3 n8 ~+ w
                                end;  i# J! C- j2 E4 o& w! n3 W0 x$ j6 w/ _2 ^
                        else
6 Y3 S. Z8 W8 R: h( C1 E  x                                @.Destination := assignLObj[1,row];7 r+ o% @# D: A8 q. r5 Z5 d8 i- U
                        end;                       
" w" Q, O+ P/ [; V% U+ i                        newDirection(@);4 ]9 M& b0 [- ~0 P$ j% D6 {5 u
                        @.HasOrder := true;
' C* l. x' a/ y& }6 C                end;
0 _+ O& E6 p3 n- }( N* h% e- y% J2 F        end;
5 a# x! F. n. _end;        -- of the method0 G% F, t. a$ j
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 ; n# Q, x) _( i0 @/ D

/ j# x& K4 Q- y1 n' Z# p这是AGV_putin中arrive的method。
' R6 _- h- d4 J) P. u- s2 v2 r1 j8 x* Q: H/ e- v1 U
当到达物料速度越高时,这个报警更多,/ I0 G% ]( |0 d% Y" o6 P  n8 F. f
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
7 }6 n! B) I+ A, h1 g程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
! R' }2 B, ^, c! I
; O5 l6 W6 d% ]; c/ p/ ^另外一个小建议,就是move,所有的move都可以这样
/ [. @8 d- D: G2 k! ^4 M+ Zif not move() then debug end
7 [5 q- [' T3 a9 o. `, v7 A7 d这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。6 r' y" D- R$ y
plant simulation中的free libraries有AGV模板,
8 p6 \8 }4 p  S  S/ n: I里面也有案例。
) X9 k4 E7 }: l: J) v我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" Z& x  C/ s! I6 }. D" M( s
; z( O( s& G5 z( G) V我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 5 Z4 h9 m* ~! |
. ?; O/ }, d) [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 5 y& x# d5 h8 z2 z, W/ _1 \
这是AGV_putin中arrive的method。& }9 e. r0 V: w) o/ H% k

; W9 _' T! |  n7 ^当到达物料速度越高时,这个报警更多,
; V& R3 ]0 Y! K2 W( ~0 d- n2 z) g9 i& N
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-12 18:04 , Processed in 0.018450 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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