设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6229|回复: 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'
% g7 E( G( X+ l: S) z' m4 L; `  K$ ^*/
" Q  _1 L) {) j7 n3 K: G* Q: wis* ]7 M8 y" H5 G: @4 V" Y8 ]
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;- Y6 O6 t& \+ P- m# S) c/ N  ?9 C0 _! f
do
4 U: R- {  w: Q9 s8 Q        Lan := rootfolder.Internal.Tools.AOLlanguage;
$ ^' K2 h- n0 `  d- k2 N# P        if current = @.Destination -- else return3 T. L5 c2 \1 c$ o
        then4 |5 W) |& p. {- g1 t& c
                @.Destination := void;- |) b$ f0 [* p; T, A4 y
                if @.occupied then
, [' b/ @6 e6 C8 X1 G' i/ r4 \3 G                        part := @.cont;
. x$ k8 a/ h' w. P2 `3 C' r- T                        @.transpOrder := void;
" H$ Z; Z* ]7 q3 o4 m$ a                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
$ D' h2 {$ ?$ \  h5 ]  o% k                                @,root.eventcontroller.simTime);$ K& y% s/ Z. C% k
                        @.HasOrder := false;
8 ^% A! P$ B# I                        @.DrivingHome := true;4 ^5 `& U8 n) M' O: `( r5 x
                        rgManager.tryToStartTransOrder;
! J& R5 {! b8 a* h1 U8 r/ h                        if @.Destination = void/ C# @* p+ h( F- G; p
                        then -- no transport order for vehicle @
5 p) ?& i2 r" K# }4 ^                                @.Destination :=( n: h4 |1 ?6 B% C& i( y* l
                                rgManager.nearestFreeStation(@,track.~);
$ U  u1 W5 ^* s( @; z0 R                                newDirection(@);   3 C" T2 j3 G. g0 a2 p
                                if @.Destination /= void then4 `$ j7 T' v3 [. Z
                                        @.Destination.NumReservation :=! m; i) I4 }# G: Y
                                        @.Destination.NumReservation + 1;8 S4 V- d3 {% g8 T  E9 v! L
                                end;" N6 C- ?+ p3 z( ^# g! P
                                @.CurrIcon := "drivingHome";
" a! B' e; C$ \4 A- d8 q                                @.DrivingHome := true;
: l  F0 z2 |( X# @" |& `8 x                        end;7 N# Y+ |% f7 j
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
* |7 _6 D1 e& f; B( Z                        part := @.transpOrder;% j3 r# ]* H! G$ X( A
                        part.move(@);-- load part; j/ w0 C/ y7 @9 B: H$ K# ?, [
                        @.CurrIcon := "load";
) x; N, s7 k8 V3 z# u  i                        GlobalDistObj := part.globDestination;
, Y% g1 e- r# h- {& `0 t8 k5 ?                        assignLObj := rgmanager.rgAssignL;* P: F& P' Z, V9 i% J
                        row := assignLObj.getRowNo(GlobalDistObj);
2 ~9 {8 l4 }, W& e; X4 y# j                        if Row = -1 then -- since 70
" w" q3 r2 I3 k% y% r4 n                                if lan=1 then
% Y8 G# U" b5 K. a! `                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
' k$ |' }6 H" w+ d, h' ~                                                to_str("in der Andockstation: \"",?.~.name,"\""));
3 n* B- N% X8 d9 W) Y3 z2 f8 z# V) g                                else
( B4 v, A* t! {                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),4 U$ ]& G  W8 t5 x- D3 a. w/ D/ @
                                                to_str("in docking station: \"",?.~.name,"\""));                                ! q* B$ h/ d, k% Z; j" `
                                end;& H2 Z+ l# ?. V$ c
                        else; Z" |0 g( Q; @6 X9 a/ K
                                @.Destination := assignLObj[1,row];
/ c; H  w9 s9 X! I) y7 M                        end;                        ) G  j* p- [5 g. J
                        newDirection(@);: b2 p) O6 U9 [0 z: C0 k9 i
                        @.HasOrder := true;
5 v1 ~/ r, p; Z' D! Z: z, M                end;
/ c5 `' v1 t3 x; {& z. J        end;
6 q& w$ ]5 s4 s8 z, K' Mend;        -- of the method/ d7 ?. a: a$ p7 Y$ x
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
! O' s* n: [& |2 W% B
; u2 Y; K8 i* M! V+ q3 L- M这是AGV_putin中arrive的method。
& I- M; j5 E+ N6 Q6 R' T0 F: q$ P- e9 b( l3 Y* w, r
当到达物料速度越高时,这个报警更多,
# T) n4 N# x+ P8 p, t可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
- a. n# E( I( c3 f程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?2 T% Y4 j- }' s8 R7 ^9 {4 `4 a2 h
) m6 H$ s' E* `2 G4 E
另外一个小建议,就是move,所有的move都可以这样
! d8 m; N: ]2 [if not move() then debug end0 D6 L* `0 R& B5 _% I- t
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
- e4 [% {4 {. t) k; Bplant simulation中的free libraries有AGV模板,
( v. B, d% `7 r5 a# D! ^) x2 r里面也有案例。
3 S* S0 F* ~: i5 Z, a( e我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
! [3 B6 N( n9 Q$ J2 S/ B" C0 y& L! R3 u: d
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 1 i9 y2 O! M. _# b, D
: m" n0 h1 c& S3 G. ^( A
那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
( f( E5 G6 Y! G! K这是AGV_putin中arrive的method。' V( T; \% X$ k+ G, s: D

( p& L0 E5 s" e' s1 k当到达物料速度越高时,这个报警更多,
$ s1 e3 m; w( O1 o- L* J- s
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-1-26 00:46 , Processed in 0.018632 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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