设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9864|回复: 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'5 O6 S* R& o  H  Y  }2 [) t
*/( o' `: w$ a! c+ C+ Q9 C" E
is0 r6 p; d5 w* {! {* c
        part, GlobalDistObj, assignLObj:object;row,Lan:integer;. |( @2 i; a. ?  i7 T
do
+ I! F* Q2 e+ ]# T: l4 o        Lan := rootfolder.Internal.Tools.AOLlanguage;
5 t* G) d2 G0 z; {        if current = @.Destination -- else return
1 x% X2 Z1 r0 R9 O  U% S; I        then
4 F' q/ m9 ]8 t: n& A4 g                @.Destination := void;4 Z: f& [: P$ C* E6 p
                if @.occupied then
6 s1 @+ L$ n" a9 T0 T                        part := @.cont;
3 _2 ^7 Z8 L$ W! x9 Y# M                        @.transpOrder := void;2 V  r6 D+ P2 C1 D& U
                        part.move(partExit);-- unload is already possible                        rgManager.freeVehL.writeRow(0,rgManager.freeVehL.yDim + 1,
& n$ \+ r  |$ ~. \2 `2 ?- S                                @,root.eventcontroller.simTime);
  [: p, a  g, [5 f6 V                        @.HasOrder := false;
, p8 L" M6 s- [8 u% Q& X6 F                        @.DrivingHome := true;) R  m5 q' l" v1 ^! Q
                        rgManager.tryToStartTransOrder;
5 q1 e9 V0 y8 I& s                        if @.Destination = void7 c. \/ ?  {5 [5 q. ^& U$ f2 ~
                        then -- no transport order for vehicle @( v( n8 S% S" b0 W0 |6 _
                                @.Destination :=
! Y) H( @* u5 K0 P% C                                rgManager.nearestFreeStation(@,track.~);7 o6 b; B0 N$ C. v2 z' m
                                newDirection(@);   
$ X& w. s+ E* i                                if @.Destination /= void then! A& U& q% @' g: W7 h& N& q
                                        @.Destination.NumReservation :=
7 \, W" R; u  ?2 u, R                                        @.Destination.NumReservation + 1;3 F/ `9 n7 I; V6 f+ W% j. D
                                end;
1 D* P8 M7 g" \5 r5 k7 T6 H/ F7 s                                @.CurrIcon := "drivingHome";" u- n1 a3 d8 p; F- P1 y
                                @.DrivingHome := true;
: D6 H$ [& \6 z" \: u5 E                        end;" i3 A, t2 w* `" w2 y# u
                else -- the vehicle @ is empty, both vehicle and part are in the same dock station
' \2 N7 \3 b) ^) h3 j: H! `                        part := @.transpOrder;# o& v" X! r; J7 q6 R
                        part.move(@);-- load part6 E" c- I' j0 u7 p
                        @.CurrIcon := "load";
! A  d- x5 Z& V/ G. E& f5 j                        GlobalDistObj := part.globDestination;
2 |1 N# H/ o+ K3 D                        assignLObj := rgmanager.rgAssignL;
9 M& c4 b6 Q6 d# o! Q                        row := assignLObj.getRowNo(GlobalDistObj);7 a0 x( M# f- n+ R. v7 e4 s' |
                        if Row = -1 then -- since 70
- K- N7 e3 N2 u" v/ J& O9 C                                if lan=1 then
$ q1 C4 I! ~/ D4 B1 _( a                                        promptmessage(to_str("Unbekanntes Ziel: \"",GlobalDistObj,"\""),
8 H' ^. k2 V' {0 l8 {                                                to_str("in der Andockstation: \"",?.~.name,"\""));
% A! z7 \1 K+ R4 A+ e                                else* S7 f# B& M: f2 d" h. o# r8 X$ ?  |
                                        promptmessage(to_str("Unknown destination: \"",GlobalDistObj,"\""),. M6 r9 j( E- D
                                                to_str("in docking station: \"",?.~.name,"\""));                               
! s3 S$ H1 x; o! R% V. L" Q% b9 b9 u, c                                end;
0 N8 V; c% c$ m) y0 Q' P4 a' R                        else2 T1 J/ j; }: X# S# J& o. ]
                                @.Destination := assignLObj[1,row];
/ T4 J7 g8 P) l& A$ z  c                        end;                        ' T" N& E& T' l# f4 ^! T" S
                        newDirection(@);+ `2 D* G  J% ]$ @, p; o$ n9 u
                        @.HasOrder := true;
/ y3 ^. F' n  T  Y2 z                end;/ k# W  h: z% y7 W. K) \! X+ A3 h9 p
        end;
/ ]: L  Z0 r9 f! }9 k4 iend;        -- of the method! r9 P$ O( y- c6 ~- o
 楼主| 发表于 2011-11-17 11:08:06 | 显示全部楼层
本帖最后由 kuka 于 2011-11-17 11:10 编辑
: C) Y0 n- Z) W8 l4 m4 j2 q5 h8 X5 k4 K. Y3 A/ H3 i" e
这是AGV_putin中arrive的method。% r0 x0 A3 l! Y1 X. w3 I: p; R

+ F7 t" b9 m5 V. m6 _当到达物料速度越高时,这个报警更多,0 b0 F) L3 H4 D4 R$ i3 J
可能是到达物料分给了小车,而小车上已有有物料不能接受,所以发生了冲突。
. J& ~- U, Y# o" T程序解决这个冲突程序是暂缓到partExit,但是AGV模板提示这个无效。
发表于 2011-11-25 19:15:24 | 显示全部楼层
是不是partexit未定义或者路径不对?& ?4 o! r7 C" U" f0 _# d" M# K* ^

0 J+ }6 J4 T& v) N; A另外一个小建议,就是move,所有的move都可以这样& Q/ q. n5 m* W9 m7 }( H& O
if not move() then debug end* |: B0 x; q9 b/ r
这样一旦move有问题就会报错 便于检查和修改
发表于 2011-11-25 19:20:37 | 显示全部楼层
另外弱弱的问一句 AGV是神马 o(╯□╰)o
 楼主| 发表于 2011-11-26 19:26:51 | 显示全部楼层
AGV(Automated Guided Vehicle)自动导引小车。  q0 J( K, J( E0 I" ?1 J* C9 K
plant simulation中的free libraries有AGV模板,0 Z- e4 e8 W' ]" V& }2 K2 n8 D! c
里面也有案例。
) R7 g% R, R0 G我运行过案例,没有发现这种报错,可能案例模型没有发生冲突,运行不到if下面这块。
  e0 ~: X6 W3 e5 z
- c) p0 s# B7 ~( G" w$ U我开了一下模板,的确没有定义partexit,它可能是一个队列对象,不知道怎么定义。
发表于 2011-11-26 20:09:15 | 显示全部楼层
因为是用的move,可以直接在模型里建立一个缓存模块,比如buffer之类的,容量定义为-1,move的目标指向这个缓存就可以了,囧。。。不过其实我个人不推荐这种解决方法,因为实际中并不存在这种缓存。。。
发表于 2011-11-26 20:10:15 | 显示全部楼层
本帖最后由 五五 于 2011-11-26 20:10 编辑
. J- [3 b( z) ]8 G4 p
* z4 x' U6 m+ [; ]那么 Automated Guided Vehicle 是不是就是小车的自动寻路系统那个呀 还是还有其他功能或者模块咩
发表于 2011-11-26 20:12:36 | 显示全部楼层
kuka 发表于 2011-11-17 11:08
5 l! |7 b6 U2 m+ O" t: o# k这是AGV_putin中arrive的method。
; I3 P& i  x. N$ G7 ~' a+ ?& d) i0 E. X' A' ]
当到达物料速度越高时,这个报警更多,

2 B6 _5 c# r2 P/ n  I6 I) P; |另外 一般对于容量有限的小车 我个人觉得还是更早引入容量控制比较好些 而不是在装运是才报警
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-30 07:18 , Processed in 0.017869 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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