设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9695|回复: 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'
6 A$ j; n( D- f% `/ R: J*/
$ {2 A9 N# k" P) o3 a  |is
$ h& h* c, j: `1 w$ J- ]        part, GlobalDistObj, assignLObj:object;row,Lan:integer;7 d1 b$ `- P9 s# [
do
. E8 f& C/ t8 d2 |3 N4 J        Lan := rootfolder.Internal.Tools.AOLlanguage;8 s- e/ o9 T) \5 M" @
        if current = @.Destination -- else return+ G. ?4 N( Y+ u3 p  }: K* F
        then
) `8 L. S" F( C- d6 P                @.Destination := void;
% b' K! z! }" r1 W/ s) P) m                if @.occupied then9 i, A: i5 N1 j- b" r  k9 `
                        part := @.cont;
* g2 I+ o  {$ i/ [: |9 F                        @.transpOrder := void;7 K" {! z: `& l0 ~
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
, c5 k4 c( i* w+ |                                @,root.eventcontroller.simTime);
! W, P# s5 f, F6 Y9 R/ w                        @.HasOrder := false;
  H; [/ {& i2 {. B1 i1 d) R7 u3 _                        @.DrivingHome := true;
7 j) R5 X0 W6 U* _; u, e/ [+ h                        rgManager.tryToStartTransOrder;
- w: ~& S9 Z8 C; E$ G" M                        if @.Destination = void
# w# a/ ~& P5 W6 ]2 ]- J( |3 }                        then -- no transport order for vehicle @
4 F% c6 `7 b% k3 J; ~                                @.Destination :=
. k) a+ l6 x+ T0 B( A# r                                rgManager.nearestFreeStation(@,track.~);5 y# ?5 u) [1 x) x7 q- @
                                newDirection(@);   
9 Z6 Y7 h7 y# P+ {& C+ Q                                if @.Destination /= void then
% J' L9 ]' e, e) E3 k2 P& a0 {                                        @.Destination.NumReservation :=2 w% o/ d% l4 ]" q4 @9 c
                                        @.Destination.NumReservation + 1;
7 d4 g% q1 u8 I% R" f- l. ^8 X# e# Y8 e2 a                                end;
1 V7 j9 o. K! ^4 S, c% ]                                @.CurrIcon := "drivingHome";
, p# f9 i+ M- X& H  V                                @.DrivingHome := true;
6 \# q3 D' ]8 ~& O% V& M                        end;
0 p4 o( h' h- p8 ]                else -- the vehicle @ is empty, both vehicle and part are in the same dock station( s. F  w7 y3 J5 ^8 K! g$ w' i$ w
                        part := @.transpOrder;& [3 p0 e# t7 `; N; Q
                        part.move(@);-- load part' n; O" X( e8 f" B& i8 ?
                        @.CurrIcon := "load";3 z6 l& o% B8 d6 \3 C. \$ O% S2 u
                        GlobalDistObj := part.globDestination;
% W  T% B3 E: n9 z0 R: n) Y                        assignLObj := rgmanager.rgAssignL;
' l8 ]  J: I1 H                        row := assignLObj.getRowNo(GlobalDistObj);
% h0 K; a8 V: c2 V. N                        if Row = -1 then -- since 70' s$ O' O% p( J
                                if lan=1 then) a3 ?9 a9 P( ^) [
                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),. {: _3 \" ^& e8 ~1 Q5 W
                                                to_str("in der Andockstation: \"",?.~.name,"\""));
5 q+ l! j- X8 |" N8 r7 V' c                                else: }# g: Z3 z( V$ `
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),
, m  y9 I) n- K' n7 ?0 v                                                to_str("in docking station: \"",?.~.name,"\""));                               
8 G! v/ B! G0 {; F9 y4 G                                end;. B' h3 B4 U7 ]$ ?" f3 `
                        else% b2 v$ B2 b1 e; e4 o, `: ^
                                @.Destination := assignLObj[1,row];7 }; Z# o1 F# R, n4 S" P6 D
                        end;                       
0 ]% L1 I. w/ N# h& z8 x. L7 `0 p! o                        newDirection(@);% j' j* K* `  L. G, c7 H
                        @.HasOrder := true;3 F7 G" ^# H1 F8 y5 a, t
                end;
! R9 z7 h) k0 p- R$ Y        end;6 s5 {/ N. |" w8 K: v2 h- s
end;        -- of the method7 @5 V( Q3 Y$ Z3 C  m
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑 $ M# p9 F8 n# |1 z

! D( p2 B5 i! P4 b2 V这是AGV_putin中arrive的method。  x" W8 i: W7 e/ w8 U5 B% z
5 m1 i% p* R, b+ _" E' k, Y5 W2 n; C6 J
当到达物料速度越高时,这个报警更多,
0 \' \& Y" v1 ?4 f- O可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
0 |4 E" G2 s) Q0 @: R3 J1 h程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?
& N" T- @+ n4 N7 v( L, t3 e' ?2 y" T# T$ q
另外一个小建议,就是move,所有的move都可以这样! ?. j: w( W( z: B' G5 v
if not move() then debug end
% E, Y2 K: V' M6 ?1 \' c8 t! `, J( D这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。
2 Q" H& ~3 f( C. u. Oplant simulation中的free libraries有AGV模板,
7 b" t1 }9 _3 t2 ]; m里面也有案例。  Z4 {0 m. i9 q
我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
' |+ h* b- e4 {+ J. J# |3 p9 _% I7 u, T- J
我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
6 B: a9 V% S( J& d( [+ ~0 }3 {% c
2 R. x. D: x- Y那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
9 \: j) i( F* q' ]. D这是AGV_putin中arrive的method。
8 x  Z) v5 s) Q  s
' U+ k5 _2 V8 P5 E2 B4 e0 Z当到达物料速度越高时,这个报警更多,

6 o- {& O: ^  R" w% p9 l另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-18 01:04 , Processed in 0.017982 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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