设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7761|回复: 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'
- u2 L1 d" f4 z2 @! r*/
2 c, A+ P$ ]0 B! W3 Cis
( f' `! u6 d- J" `+ h2 T        part, GlobalDistObj, assignLObj:object;row,Lan:integer;* V7 U  e9 h+ C% ^( l4 N3 q" W! u
do
, c0 G. d0 }- z7 K7 y( V2 i1 d4 p3 N! j        Lan := rootfolder.Internal.Tools.AOLlanguage;. }. W* r4 j7 J0 ~( X+ e
        if current = @.Destination -- else return; p/ D8 a" ^3 Y! {6 j7 m
        then% o" U+ o8 J1 R6 v8 h2 e
                @.Destination := void;5 h0 O+ _9 v7 ]  @( k: }- n
                if @.occupied then- `& T; ~+ N1 q- B, P5 z
                        part := @.cont;
( ^& C; J; ^; B                        @.transpOrder := void;4 R" D- `9 a3 c
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,- W$ R+ |, k0 d4 l1 O3 \6 A: Z1 Z
                                @,root.eventcontroller.simTime);2 t; f6 |2 m1 V: i4 i
                        @.HasOrder := false;
7 U+ [/ Y! t2 F4 r2 K2 @                        @.DrivingHome := true;
" h, T" k$ r+ t( Z- q7 \                        rgManager.tryToStartTransOrder;9 y  m6 a5 g5 j9 U( v5 l0 S7 s8 T5 G1 P1 G
                        if @.Destination = void
5 R  F+ c& T1 Q7 ]# i! y; r2 h7 C                        then -- no transport order for vehicle @' u# [; [9 z# V' J; Y* |
                                @.Destination :=" _! V) D9 x4 z. ?; ]
                                rgManager.nearestFreeStation(@,track.~);& k' I. q: q7 s) e7 \
                                newDirection(@);   
- L: Z7 b" p! ]5 \( c                                if @.Destination /= void then
- I$ h( ]1 i  r                                        @.Destination.NumReservation :=
: `; p1 o5 L( [5 U  q( h; {                                        @.Destination.NumReservation + 1;1 X7 `6 Y9 u3 G6 y- O" H- q+ D2 Z5 M
                                end;) G& w: a, n9 k5 U1 D9 i& h
                                @.CurrIcon := "drivingHome";- Q0 G/ r& Z: c+ O7 U/ m" C
                                @.DrivingHome := true;
: q! M1 E$ e* z. a5 W5 z+ j                        end;8 i! n) J! y$ C$ d3 f, W4 P
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station* w7 b* m7 T; m6 K* z8 t
                        part := @.transpOrder;
' ], f; ?% d, d  ]                        part.move(@);-- load part! V; b, F- j# Q3 g( f1 g2 l% L/ e
                        @.CurrIcon := "load";
( n9 a7 G* {$ |/ P9 B& G9 M. @                        GlobalDistObj := part.globDestination;
7 h6 Z# j# p* M8 Y7 {' z5 C                        assignLObj := rgmanager.rgAssignL;7 ]* O! ?% J6 ]% p. `
                        row := assignLObj.getRowNo(GlobalDistObj);; m$ L9 K" j$ t1 ?
                        if Row = -1 then -- since 70" {7 D: \( v1 [# t* L1 G1 I
                                if lan=1 then& j' ]; G) V: _! b
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\"")," Y1 a9 ]7 c9 |  y" P' j; ^6 [
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
, J: e- Q: ^% Q0 {0 G$ i                                else
  I6 v2 F. K) v; Y9 y$ }  F                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
8 H, w3 ~& }. ]" z3 `9 t                                                to_str("in docking station: \"",?.~.name,"\""));                                & v" Z0 Z* L$ V( w
                                end;
2 b9 q% |# E% X: K                        else0 f; c- U5 W& _4 ?
                                @.Destination := assignLObj[1,row];7 q- l2 E8 ]  `; M# w' }) H
                        end;                        # M+ t! y* [2 P$ K4 E9 ]
                        newDirection(@);6 a% G) [9 k1 L/ t
                        @.HasOrder := true;
/ Z" H* J' z$ h) N* Z! f( D# Q8 z                end;% v; L7 f, B7 k3 P1 Y7 l  j7 t* X- c
        end;
2 Y6 ?& W0 s7 Rend;        -- of the method
5 L- x& o5 x' W; w0 X4 L
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: f( @& {  z( t4 K; U( `; w
8 X$ a4 R* q4 x这是AGV_putin中arrive的method。
+ [4 `  v* J; [( S% I% n- ]9 z4 |! {4 k/ z! a5 n0 M
当到达物料速度越高时,这个报警更多,+ T( F, j* V. v/ R/ l
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。7 U$ V% n4 F" l2 u6 W% d3 E
程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?! {6 L+ h0 N. C+ f' c3 J" j4 ~

0 f0 _' ~0 I. P9 S, b5 {另外一个小建议,就是move,所有的move都可以这样
$ i. y) l2 p& Z. ?# W7 `- hif not move() then debug end6 |8 a" c) X" |6 V* P% v4 ]6 S
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。& W5 c6 v$ J6 D4 f5 M
plant simulation中的free libraries有AGV模板,0 x$ M$ [" r- P& f0 R
里面也有案例。: L. n; N/ p1 ]. P, f
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
. n1 W, W* n% P7 a: c0 l0 O$ _# ]0 z" m
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
% R: s7 E  h4 [5 n6 z
% E( s- {% f6 L7 ?+ R9 F那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08 0 w4 [2 H9 T; j7 U. T& j
这是AGV_putin中arrive的method。
8 _  a* K' X1 \2 s8 o
3 d9 o+ r  ~3 u' s# g& k当到达物料速度越高时,这个报警更多,
# b+ q6 ]3 _- M! S
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-4-28 09:43 , Processed in 0.017888 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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