设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8730|回复: 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'
6 S1 Q7 J, v& @3 P) ?  z6 i*/! r2 C  o( b  c1 f) X
is
- r. X$ ^6 ?5 G; v        part, GlobalDistObj, assignLObj:object;row,Lan:integer;: D  v) B4 p+ @3 T( N  V
do  m# w; B* p: `; ]1 m
        Lan := rootfolder.Internal.Tools.AOLlanguage;
; q$ W! [( ?9 x, K2 |) {        if current = @.Destination -- else return  g/ L4 ^0 N1 A, t2 D4 F
        then6 G! X0 V+ E3 n& G  a
                @.Destination := void;+ X; R. y$ H/ s" q5 }  R& \* A
                if @.occupied then
% m. P2 V% E5 |) ]# X1 U$ G" `                        part := @.cont;$ l3 b7 y+ x- s9 x
                        @.transpOrder := void;5 P$ Y- t" M8 U5 m+ `
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,& L9 `% O3 k: E( H' ^% }
                                @,root.eventcontroller.simTime);3 H* f& ?8 t' A3 |/ o& L! G; P4 W8 }
                        @.HasOrder := false;
: J+ o. ~7 x$ y                        @.DrivingHome := true;
& W. [: N  ~; g& b. L6 `* [                        rgManager.tryToStartTransOrder;
& Y; [9 Y) R3 m7 v' Q& B5 N; U7 Z                        if @.Destination = void
: L5 d! X/ z: p/ i, F! p7 N( U                        then -- no transport order for vehicle @5 \; u6 |/ j. E- n# j% n. S% m
                                @.Destination :=: x/ F; ?- [+ X, f
                                rgManager.nearestFreeStation(@,track.~);
5 Y- e7 s# \! ]: a                                newDirection(@);   
4 a9 O- L/ D9 Q/ {% b2 d                                if @.Destination /= void then
; k2 U  @: s$ l5 T                                        @.Destination.NumReservation :=
7 R% N0 M3 B+ {, @- M9 N                                        @.Destination.NumReservation + 1;" K1 M  ^+ @) {' }# o0 g
                                end;
' }" |+ m/ Q8 T5 b7 b9 f. \                                @.CurrIcon := "drivingHome";9 V, |) x! D1 v& K; P
                                @.DrivingHome := true;
' d$ \& w8 E" F) k( m& S                        end;
4 L' D% X% s' F4 ]! y& M* n7 |                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
. K! C9 k# C) z8 \8 u( P                        part := @.transpOrder;5 m& k! |. [) i9 {0 y
                        part.move(@);-- load part
& l# ~0 w' k' B% D                        @.CurrIcon := "load";8 R+ \# K7 ?$ U/ q% i) U
                        GlobalDistObj := part.globDestination;! S7 U' ]  C1 X- a/ G
                        assignLObj := rgmanager.rgAssignL;
/ d5 j$ t) o4 _1 q                        row := assignLObj.getRowNo(GlobalDistObj);
; Y! Z8 ~. l: m4 Z                        if Row = -1 then -- since 70
* X# a/ J/ R/ O$ N' ~! n5 x                                if lan=1 then) J7 \% k- A" \$ E2 k! _. ~
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
9 w7 t$ [1 o+ ]                                                to_str("in der Andockstation: \"",?.~.name,"\""));
" i8 F: w% X+ W3 l3 n& K6 j( \                                else
$ l' i9 v" o2 Q( s: B) T2 o                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
+ U4 q& z/ H1 r) L                                                to_str("in docking station: \"",?.~.name,"\""));                                . s" e: u4 W* u: n, o
                                end;
' u) [1 H1 U! c1 p& M- A' B                        else
: [* C9 }0 S: q- [3 Y5 w: g                                @.Destination := assignLObj[1,row];( h- U; e% F+ i, P
                        end;                       
+ a" G) w) Y* U5 O( r                        newDirection(@);% v3 K! s' t3 B/ y
                        @.HasOrder := true;: |# `% [1 h" R8 Q
                end;
/ h+ e1 {* k# a: t        end;" O9 F2 F# D. A! W
end;        -- of the method8 T7 V0 N+ ?! p
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: l" k8 h. i3 N- J2 H$ P: `* C: p, g& F+ `( b/ P/ L
这是AGV_putin中arrive的method。
4 O7 G+ W4 k% D' _/ P* g  V
! o% B7 u( N; G4 Z2 O当到达物料速度越高时,这个报警更多,
0 i6 h& R# c, m可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。3 x4 c% I- m0 P
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?7 n3 {! @& n! q9 p1 }: P5 `# X
# t; W1 \- m' j; y6 b
另外一个小建议,就是move,所有的move都可以这样
* o1 W$ C4 L& ~* `3 yif not move() then debug end
& J/ _8 k8 G6 ~8 ~" w这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
; e6 Y9 @" ?) W- r( ~+ ~plant simulation中的free libraries有AGV模板,8 ^9 S2 b! ~- [% T( r
里面也有案例。- a9 \2 _& I% }, `
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
# V& r% \( J% U1 l; |* j# f
& }. u0 H& h4 n我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 8 g1 q8 \+ g/ D9 p2 `
2 w! I2 L% m# F$ B, h5 y3 N
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 ! H6 L1 K  A6 u  A. [, I0 h& B0 V
这是AGV_putin中arrive的method。
2 v4 [. q( ~- n8 o$ `- h+ H, m; Q, l3 I+ }' d9 e5 k* O' \3 h
当到达物料速度越高时,这个报警更多,

" h8 l3 e# a8 t) o# v, }, R. w另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-23 01:27 , Processed in 0.017296 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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