设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10128|回复: 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'
& I) g/ g; r0 f/ C: ~' E7 u1 T! ]( |*/5 K' m: h' y2 V
is
! V; Y! I7 y& F# t3 s8 n: h9 f        part, GlobalDistObj, assignLObj:object;row,Lan:integer;' Q' _9 i7 F4 C1 {& t4 s% |
do% o4 A7 c8 H0 d. q/ [
        Lan := rootfolder.Internal.Tools.AOLlanguage;! z. n4 f7 B! q$ m
        if current = @.Destination -- else return' Y( ~' J; T" [' u" E5 Y% R+ E
        then
0 H, T. i! m$ }# a1 n( h! I                @.Destination := void;
& B$ J! [0 _4 F; C! t                if @.occupied then( i: a5 x  {' n! F0 X. d
                        part := @.cont;' P2 ~6 P4 _# S
                        @.transpOrder := void;6 K3 J; ~( E3 ?3 I2 f. {, t
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
. m. j3 h  N$ r+ i5 r                                @,root.eventcontroller.simTime);
/ ~) b! J! F* k                        @.HasOrder := false;
: _# G( h' k) u                        @.DrivingHome := true;
; K$ a- c! m! Z5 c- [  ^0 C" L                        rgManager.tryToStartTransOrder;% p9 o7 v2 l0 f' X
                        if @.Destination = void* H+ X# u7 v& C  U9 w
                        then -- no transport order for vehicle @
9 @. a4 r  ^+ C0 N. |' H6 y' |                                @.Destination :=; L, o, c. j6 j& |
                                rgManager.nearestFreeStation(@,track.~);
4 ?6 N* U3 ]( H                                newDirection(@);   
5 P7 k7 C$ w9 T( u9 L                                if @.Destination /= void then* n0 y" y; y4 Q$ L! O# w
                                        @.Destination.NumReservation :=
! Q: l1 \7 |- n$ [. J                                        @.Destination.NumReservation + 1;2 F7 {. D3 |* Q" h+ [
                                end;
9 B3 f& P6 B$ G( r; H                                @.CurrIcon := "drivingHome";7 k! ^+ q% Y6 v4 D3 x% Z  d
                                @.DrivingHome := true;
! i/ Y- r& V0 Q, O/ x) |8 E. f: e                        end;
: |' N# Y) m1 L                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
& t2 C& k+ o/ j; f* b' d6 U2 x2 U                        part := @.transpOrder;; `' n: k% R+ s* H# R/ `4 y7 E
                        part.move(@);-- load part5 k) J, m9 L! {; ]
                        @.CurrIcon := "load";( ~- c% H6 t4 f9 [; K
                        GlobalDistObj := part.globDestination;- v: u, S% o" P8 M' D
                        assignLObj := rgmanager.rgAssignL;
8 n: @% c1 `# r6 y. f% ?                        row := assignLObj.getRowNo(GlobalDistObj);1 S5 N( t6 Y! b2 d3 d% _
                        if Row = -1 then -- since 70
% a! H% G+ y0 o% i4 G( ~/ E/ D                                if lan=1 then8 I+ ^- t; [, ^8 G" n
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),: f8 Q2 {" X1 \( F8 j/ z
                                                to_str("in der Andockstation: \"",?.~.name,"\""));5 a: v+ f5 T' g, L; h2 X
                                else! p7 u, M/ E$ s! e/ i
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
6 B. L9 ]) Z* P/ k5 A                                                to_str("in docking station: \"",?.~.name,"\""));                               
( @, k3 n" Z8 F' `8 q                                end;
$ M( L) s% \% O                        else9 j& n  o/ N% X7 L! m* f% b
                                @.Destination := assignLObj[1,row];! y. r/ z/ O6 v) F, t6 h
                        end;                       
3 w" f8 z: v6 \$ }: @! F* f  E( H                        newDirection(@);
0 Z' J  p! G" ~( H6 m6 z  z                        @.HasOrder := true;7 L7 H: `% T5 `% `% l  |6 b* u
                end;' t4 [- U% U% x7 L0 w+ K5 F
        end;# H3 b/ n& Z3 I  Y
end;        -- of the method
. e! U1 b# I* m1 `9 L, T
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 6 q3 e+ D/ L: v$ S! O
/ h( e3 ?- }6 h6 I' ^2 O; [
这是AGV_putin中arrive的method。! T7 {& }' _4 J; @  ?5 L
0 d3 D$ q9 Z8 c- |1 G0 }! F4 o
当到达物料速度越高时,这个报警更多,
" S0 _& y, H. h% g7 _8 F可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
3 O8 l- c0 K# }8 k' x- j  Q/ c% H程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?5 }$ U8 l/ n5 j: o

/ J' K6 h, w3 U- S* t& X- h+ ]另外一个小建议,就是move,所有的move都可以这样& u8 e2 i# N0 X1 Z5 L9 C
if not move() then debug end( ?* N, T% X- a3 s  S4 x9 G3 P
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。$ Q* N6 E! j1 ?
plant simulation中的free libraries有AGV模板,
* A; T; `1 C/ n! v( r; L% w; h4 V里面也有案例。
' s  Z0 m* Y  @我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
" Y/ f) r/ c5 n+ A$ {& W6 U+ O1 I! @6 V
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 - P" W+ P2 |3 z6 h* l& E
& B0 z1 C+ y2 E. p4 R" [
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 % n8 [/ \1 |) v; e* m
这是AGV_putin中arrive的method。
8 T' r6 q# Z$ {$ ^3 \. o* u
( ?3 K% w. q! S% X/ @当到达物料速度越高时,这个报警更多,

+ O2 f1 R& a, ~9 H! y另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-14 17:37 , Processed in 0.018466 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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