设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7447|回复: 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'! J# _# M3 \; n* B9 Q  e
*// b( v$ t: }) Z0 E& P5 }! _
is
4 ^) b% t6 J8 R5 R4 q/ T1 Q& R        part, GlobalDistObj, assignLObj:object;row,Lan:integer;% B+ W: Z* `) v4 r' T& P8 k5 F  }
do
7 v/ G' ?4 u2 d2 C. n% K& f        Lan := rootfolder.Internal.Tools.AOLlanguage;1 h7 U: o- c# e
        if current = @.Destination -- else return8 j# r/ M1 m  X7 X7 z5 x5 K/ s+ r
        then) ~1 A/ z% g1 L) m9 ]" `
                @.Destination := void;( M- k+ B& K. y& Z/ P. ~% a5 Z0 T5 O
                if @.occupied then
" n; A( C4 a" n$ j1 R                        part := @.cont;
& H0 X) D3 c# `+ H                        @.transpOrder := void;
. w/ S7 S* M# k, }1 @                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
* ^. O* Q$ Q* S! y: c* l                                @,root.eventcontroller.simTime);
0 A; H5 D2 {" P' I8 p9 U( T                        @.HasOrder := false;
; I" e  D# g# G! v4 P) C                        @.DrivingHome := true;
) K, W! P" \3 I& @) J4 ^! u' {" r                        rgManager.tryToStartTransOrder;
7 m; `0 C+ j. h                        if @.Destination = void
- J: A' C! T, N2 ]+ P8 @                        then -- no transport order for vehicle @9 t: X4 f" p2 p# h& j" _. W5 _
                                @.Destination :=) P/ |! ?2 B" r! l: y
                                rgManager.nearestFreeStation(@,track.~);, ]" }) {' }7 P9 P5 c
                                newDirection(@);   , h/ F5 ~" B. W3 ?+ k/ P! o
                                if @.Destination /= void then& ]0 W, F) }6 H6 e. a; M" G# o1 q
                                        @.Destination.NumReservation :=
# {& v. p( i/ b6 D% b! Y0 c                                        @.Destination.NumReservation + 1;
# Y. a3 E% M' S# l. P0 P- N9 a  y3 B                                end;+ B# h% ^, a* F' W. ?. ]
                                @.CurrIcon := "drivingHome";
( S! g: K. d; i/ [: J                                @.DrivingHome := true;; \) Z) e: P& v; E) b) N" q
                        end;
3 }. y9 [8 W& U! G                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
! u5 u3 }; Q( I0 G7 v9 y9 m: [& y. w                        part := @.transpOrder;2 Q0 a& G4 y4 B1 A
                        part.move(@);-- load part
. G- Y3 i" x& ^; j: j                        @.CurrIcon := "load";
2 e  Q0 k' V- _5 S: X0 v9 h; [7 ~7 g* ^                        GlobalDistObj := part.globDestination;4 _- l5 Y/ }- f4 S( V6 O
                        assignLObj := rgmanager.rgAssignL;
+ `+ e3 U6 M: q" Z! y/ p5 F' t" {                        row := assignLObj.getRowNo(GlobalDistObj);1 U& o* y! J0 U3 y- b. V2 Q
                        if Row = -1 then -- since 70
* x. z, B; N' e5 b/ V/ ^2 z                                if lan=1 then; H% l/ b, Q) o* _
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
, ~1 F" z, D; n7 ?' h- j$ e                                                to_str("in der Andockstation: \"",?.~.name,"\""));
6 N- ?7 S& t0 K  h1 z/ R                                else- f: i- |  t8 e/ ?; z
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),: P. B2 {/ R, C2 c. W6 y* O3 x
                                                to_str("in docking station: \"",?.~.name,"\""));                               
3 m5 _2 B$ X" T' i4 O                                end;3 E$ F/ f% N5 j# `, t: i
                        else& g9 }$ S4 F) D
                                @.Destination := assignLObj[1,row];
% w+ G8 q7 C) [. b% _+ y4 _                        end;                       
6 P* h6 G$ \# k) b3 h% q                        newDirection(@);& J  G( e, G6 g1 r) A& p
                        @.HasOrder := true;& \! \; ?- j& m7 A; E$ r- `& V
                end;
: S9 _  |& {" l0 R        end;
( s6 ~8 y$ f6 z1 |  a6 ^/ o' zend;        -- of the method
  m  F; C5 s$ b# u
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 + E+ N; j4 Y/ r# q2 i

/ F/ e/ E+ X- \' ?这是AGV_putin中arrive的method。
5 U9 y2 o9 C( X0 ?* x: i. {$ y' d" Z) v+ |6 }
当到达物料速度越高时,这个报警更多,
1 U+ B% M  p0 A8 P可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
' Z' N; j+ l, t. t0 S; F. r+ M程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?/ t( r( s( |5 ^& ^2 a

# C5 `+ e) h+ g8 ^5 S! \) y0 c4 K# d另外一个小建议,就是move,所有的move都可以这样
5 Z/ ]( S% w4 T' S$ i) Oif not move() then debug end
$ e% k" C1 h2 n# ]6 A7 Y$ g; H$ U这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。+ W, ?4 w$ |9 p$ G, X& ]& F) t
plant simulation中的free libraries有AGV模板,/ ^5 z7 |2 i  f- `, n
里面也有案例。3 ~  t& a0 X* Z! H1 `
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。- t7 W) Y3 Z9 i8 T- L& p

8 y0 Z% _8 L0 {1 n* G% f我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 / K  o* b' Z9 p9 a2 A% M. N

/ m1 Q( @+ @! }0 m$ [那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 # u) g6 a8 a1 @$ A9 }6 G
这是AGV_putin中arrive的method。
' W: m  Y# @* t" I/ L. l
( Q7 H& f; U8 ?) i. f5 d# R1 \2 p当到达物料速度越高时,这个报警更多,

5 j* J6 b+ d7 v( T( s4 }另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-11 23:50 , Processed in 0.021893 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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