设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8585|回复: 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'
+ @$ L; D! m: l+ Y4 ~# n2 Y*// [' ^1 h4 U! G( ^2 L3 Z
is
2 }) r9 A  j7 Z9 Q& \        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. t8 a+ z! c% U
do
  [' H0 a* o2 d; g) X        Lan := rootfolder.Internal.Tools.AOLlanguage;
1 {# F9 |: V/ Z        if current = @.Destination -- else return6 N6 f/ K: F) x+ d* X0 b# N
        then9 e- I% t" l9 H, \# d* {7 x
                @.Destination := void;9 d4 n% {/ N3 j0 V
                if @.occupied then
0 Y% N, j$ ^/ Y$ _/ B$ O  P/ U% k. F                        part := @.cont;
6 f% S- b+ I8 G" y' c" s9 O                        @.transpOrder := void;
" x" h. Q6 l- _/ s3 j                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1," G: U  m$ j& j( K8 D
                                @,root.eventcontroller.simTime);
) |$ w; i2 z$ K& V( S" v6 |                        @.HasOrder := false;
9 ^9 m1 Q9 Y9 r0 ?( {7 Q                        @.DrivingHome := true;- G( Z( {' I! I- w- x/ U$ `
                        rgManager.tryToStartTransOrder;! s, I$ v% [! f( v  w! V
                        if @.Destination = void
& E5 M) a. ~8 m7 o/ R+ @                        then -- no transport order for vehicle @
" Q6 ~. ~! f9 _! g% A. W                                @.Destination :=
4 E, L+ h! Y* K* q! h                                rgManager.nearestFreeStation(@,track.~);0 T+ P1 h/ K5 S  c- r0 H
                                newDirection(@);   
7 }& g# i- K5 A: Q                                if @.Destination /= void then8 m$ W2 A# w. h
                                        @.Destination.NumReservation :=
/ _- a. k! U) c% H! i4 w                                        @.Destination.NumReservation + 1;
7 K* H% M: o# M5 L0 t6 @( c                                end;1 X: J; N' R) s, O- @7 Q
                                @.CurrIcon := "drivingHome";
* y- |, ~' f' A* d! ^- F2 D1 o                                @.DrivingHome := true;
  e$ F* T' x$ v# n2 p$ E& ~% P* X                        end;- F9 S7 a) u3 ^) z/ b
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station- q) U) w2 k* U+ ~7 w
                        part := @.transpOrder;
# ^( T6 c4 R! |                        part.move(@);-- load part( i  U. i! d$ k- P% n) A
                        @.CurrIcon := "load";0 |0 G; b" E8 ^* x7 P
                        GlobalDistObj := part.globDestination;2 N  r3 ?* e, n% W
                        assignLObj := rgmanager.rgAssignL;
( k6 U. b: G/ [4 O; e# J                        row := assignLObj.getRowNo(GlobalDistObj);" o) _8 |) [1 K) k  i! J
                        if Row = -1 then -- since 70
! ~2 J$ D- E7 j6 C5 v& c4 V                                if lan=1 then
4 Y( c* ?' B$ N( ]5 J6 b3 j                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),; }1 s; Z# E( g- [. y  {
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
9 U1 K) y/ w: f  s" K6 G1 J                                else% F7 r  q+ |8 w0 q
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
& Q8 C7 a7 X) A9 ^0 v                                                to_str("in docking station: \"",?.~.name,"\""));                                  ]& i) T0 x+ h, C/ j- |! P$ F
                                end;
1 M# L9 K4 B0 @9 z! I                        else7 w! H' ?4 x$ h
                                @.Destination := assignLObj[1,row];! `1 l' b! Z* O
                        end;                        " I" v4 H* c; I' `
                        newDirection(@);
% _/ O" N" l( G; ~                        @.HasOrder := true;6 _+ D& @6 S& q5 f( ]8 [& w* A4 x+ r& c
                end;
/ }! z; |0 @% X0 {( L, l2 b        end;! ~6 N( v, q0 ?1 D* ]
end;        -- of the method' D3 j  u1 _4 ]: Y( {
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 , H" s4 T& ~$ n1 R! q* [+ a
% D) `6 \1 G. b* L; E. G
这是AGV_putin中arrive的method。
  H2 e1 J2 b9 p% ^' X" l+ V7 c3 T" P2 U$ Z
当到达物料速度越高时,这个报警更多,
% o6 n# s* Q. a: t可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 @+ Q( X! m# w1 W7 c! a. m程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?- W# H4 o9 [& B- r
+ Y- [6 L6 t" C: z8 Y8 t; F
另外一个小建议,就是move,所有的move都可以这样
2 E' [& s  l/ N3 k# G( s& }) |) Qif not move() then debug end/ ~: @: a! t. H5 \2 p6 n
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
3 Z0 z+ n8 d" r2 \) G$ x& Zplant simulation中的free libraries有AGV模板,! s- E; u- ^) f& s
里面也有案例。
6 [7 [4 H6 _! o我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。9 s6 `# o1 j+ K! X2 U
8 g1 k3 D* W; Q# \/ S2 T
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑 0 w; c! s# i/ `  S* y  A

# H$ p8 C! u3 ?8 N那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
' l: ~6 q. W3 s. `6 c这是AGV_putin中arrive的method。
% v+ R0 h$ k, \& w9 J: Z7 ^# J+ r; y8 h4 z2 m, O& z. Q# p/ X
当到达物料速度越高时,这个报警更多,
1 B0 x% W- |! H! M" w
另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-13 20:58 , Processed in 0.020108 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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